SQL Server数据库学习教程Word文档下载推荐.docx
《SQL Server数据库学习教程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SQL Server数据库学习教程Word文档下载推荐.docx(43页珍藏版)》请在冰豆网上搜索。
只有整数值才能作为标识列——int、decimal(18,0)
BIT数据类型中,在视图界面输入,必需要’true’’false’,但是在脚本界面,输入1、0也可以,但是在使用if语句中只输入true、false不行,只能输入1=1或者true=true
Char类型的具体特征
SQL语句入门
--1.在sql中没有“”,所有的字符值都使用‘’包含
print'
1'
--输出文本
select1--输出结果集
--2.任何类型的值都可以使用‘’包含
print0+'
+'
2'
--+首先是一个算术运算符,只有+两边都是字符串+才是是一个连接符,如果有一边是数值类型,那么系统会:
将另外一个值做隐式的类型转换,如果可以转换就进行转换,如果不可以转换就报错
--3.不区别大小写--对关键字,对于值也不区分
pRiNt'
aaa'
Select*fromAdminwherename='
a'
--4.没有==,赋值和逻辑相等都是使用=
if(1=2)
print'
aaaa'
代码创建数据库
--使用sql语句创建数据库和表
--语法
--createdatabase数据库名称
--onprimary--在那个文件组上创建.默认是在主文件组上创建主数据文件
--(
----当它不是一句可以独立执行的sql命令的时候,同时它是一个结构中的某一句。
就需要添加逗号,
--name='
逻辑名称_data'
,--逻辑名称一般会有一个后缀,数据文件--data日志文件--log
--size=初始大小,数值不应该包含在’‘以内
--fileGrowth=增长方式,--也不能添加’‘包含
--maxsize=最大容量,
--filename='
全路径'
--最后一句不添加,扩展名:
mdf
--)
--logon--日志文件
逻辑名称_log'
ldf
--先切换当前数据库
usemaster
判断数据库是否存在,存在就删除
--先判断数据库是否存在,如果存在就先删除
----exists就是判断()里面的语句是否返回值,如果有值就返回true,否则就是false
ifexists(select*fromsysdatabaseswherename='
TestSchool'
)
--删除数据库
dropdatabaseTestSchool
go
其中,先查找sysdatabases系统数据库中有没有这种数据库,有就删除
自动创建文件夹
--自动创建文件夹调用存储过程xp_cmdshell,让其帮助我们创建一个文件夹d:
\mydir\database
executesp_configure'
showadvancedoptions'
1
RECONFIGURE
xp_cmdshell'
1
go
executexp_cmdshell'
mkdird:
\mydir\database'
mkdir
命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
使用xp_cmdshell,xp_cmdshell扩展存储过程将命令字符串作为操作系统命令shell执行,并以文本行的形式返回所有输出。
这时会出现报错,需在左上角右键单击连接,选择方面,外围应用配置器,将xpcmdhellenabled改成true
(——cmd是command,命令提示符,shell是指用户与操作系统对话的一个接口,我们发出一个命令,通过shell告诉系统让系统执行)
(xp是扩充存储过程、sp是系统存储过程)
使用sp_configure(系统配置)更新配置选项,选择其中的‘showadvancedoptions’开启高级选项,给1开启,运行RECONFIGURE语句进行安装,之后继续开启cmdshell,也给1开启,运行RECONFIGURE语句进行安装。
以下创建数据库例子
createdatabaseTestSchool
onprimary--primary可以省略
(
name='
TestSchool_data'
size=5mb,
filegrowth=10%,
maxsize=100mb,
filename='
d:
\mydir\database\TestSchool_data.mdf'
),
filegroupuserDe
TestSchool_data1'
E:
\aa\TestSchool_data1.ndf'
--次数据文件
logon
TestSchool_log'
size=1mb,
--maxsize=100mb,--日志文件一般不限制最大容量
\mydir\database\TestSchool_log.ldf'
TestSchool_log1'
\mydir\database\TestSchool_log1.ldf'
其中Filegroup创建文件组。
可以创建多个数据文件、日志文件(要以逗号隔开),有两个数据文件,将其中一个称为次数据文件——ndf
创建数据表
--创建数据表
--语法:
--createtable表名
--字段名称字段类型字段特征(是否非空标识列默认值主键唯一键check约束),
--字段名称字段类型字段特征(是否非空标识列默认值主键唯一键check约束)
----创建老师表TeacherId、Name、Gender、Age、Salary、Birthday
useTestSchool
ifexists(select*fromsysobjectswherename='
Teacher'
droptableTeacher
createtableTeacher
Idintidentity(1,1),--设置标识列identity(标识种子,标识增量)
Namenvarchar(50)notnull,--notnull标记字段不能为null值.字符类型如果没有指定长度,那么默认就是1
Genderbitnotnull,
ClassIdint,
Ageint,
Salarymoney,--当一个字段可以为null的时候可以不写也可以写null
Birthdaydatetimenotnull
其中,标识列identity(自增),
check约束,比如ageintcheck(age>
0andage<
=100),
默认值default(默认),比如birthdaydatetimenotnulldefault(‘2000-9-9’)
要先查找sysobjects系统对象(里面不仅放了表,还有存储过程,还有视图,还有索引,约束)中有没有该表,有就删去
数据插入
--数据插入--
方法调用(一一对应顺序对应,数量对应,类型对应)
--insert[into]表名(字段列表)values(值列表)
--说明:
标识列值不管什么时候都不可能插入值,同时插入的值需要满足表的所有完整性约束
--1.为表的所有字段添加值--如果不指定字段列表,那么就默认需要为所有字段添加值
insertintoTeachervalues('
张感动1'
1,1,20,5000,'
1990-8-15'
张感动2'
张感动3'
--2.值不能违反表的约束
张三'
1,5,200,5000,'
--3.1.也可以指定为那一些列插入值-列名或所提供值的数目与表定义不匹配。
insertintoTeacher(Name,Gender,ClassId,Birthday)values('
张四'
1,6,'
--3.2INSERT语句中列的数目大于VALUES子句中指定的值的数目。
VALUES子句中值的数目必须与INSERT语句中指定的列的数目匹配
1,6)
--4.非空字段一定需要插入值,除非它有默认值
insertintoTeacher(Name,ClassId)values('
张五'
6)
--如果一个字段可以为null或者有默认值,那么在插入的时候也可以:
可以为空字段赋值null,默认值字段赋值default
张6'
1,6,null,null,'
张7'
1,6,null,null,default)
--所有值都可以使用’‘包含,如果字段的类型是数值,那么系统会自动的类型转换
insertintoTeachervalues(N'
张8'
'
6'
30'
3000'
--如果字符类型的字段值没有使用