SQL Server 使用学习笔记
SQL Server应用笔记
SQL命令
SQL命令概括
SQL命令类型.由以下个部分组成
功能 | 命令 | 描述 |
---|---|---|
数据定义语言DDL | CREATE,ALTER,DROP | 定义数据库,定义表,视图,索引等等 |
数据查询语言DQL | SELECT | 对表中数据进行查询 |
数据操纵语言DML | INSERT,UPDATE,DELETE | 对表中数据进行增加,删除,修改 |
数据控制语言DCL | GRANT,REVOKE,COMMIT,ROLLBACK | 授予用户权限,收回权限,事务的提交,回滚等 |
数据定义语言DDL(Data Definition Language)
功能 | 命令 | 描述 |
---|---|---|
数据定义语言DDL | CREATE,ALTER,DROP | 定义数据库,定义表,视图,索引等等 |
数据库 :
数据库的创建:
方法1 :
直接创建,并自动生成数据文件,以及日志文件,并使用默认的名称和默认的的存储空间分配方案。
create database 数据库名称
方法2:
自定义创建
create database 数据库名称
ON --关键字,表示数据库是依照以下参数创建的
(
NAME = 自定义名称 --逻辑文件名
FILENAME = '存放位置以及逻辑上的文件名' --Eg: c:\program files\microsoft SQL server\mssql\date\文件名.mdf '
size = 10 --指定数据库文件的初始大小,默认mb,可以加kb等
MAXSIZE = 50 --指定数据库文件的最大大小,默认mb 可以加上mb,kb等
FILEGROWTH = 5 --用于指定数据库文件的增加量,可以加上Mb KB % 等符号,默认为mb。省略此项表示不自动增长。
)
LOG ON --同上
(
NAME = 自定义名称 --逻辑文件名
FILENAME = '存放位置以及逻辑上的文件名' --Eg: c:\program files\microsoft SQL server\mssql\date\文件名.ldf '
size = 10 --指定数据库文件的初始大小,默认mb,可以加kb等
MAXSIZE = 50 --指定数据库文件的最大大小,默认mb 可以加上mb,kb等
FILEGROWTH = 5 --用于指定数据库文件的增加量,可以加上Mb KB % 等符号,默认为mb。省略此项表示不自动增长。
)
数据库的删除:
DROP DATABASE 数据库名称1,数据库名称2,n
注意:被删除数据库不能是当前正在使用的数据库
表:
表中关键字:
在使用表的创建前要熟悉数据类型以及约束
以下即为数据类型:
- 准确型数据类型
SQL SERVER 数据类型 | 说明 |
---|---|
BIGINT | 8字节(从-263 到 263-1) |
INT | 4字节(从-231 到 231-1) |
SMALLINT | 2字节(从-2615 到 215-1) |
TINYINT | 存储从0到255之间的整数 |
BIT | 存储1或0 |
NUMERIC(p,q)或DECIMAL(p,q) | 定点精度和小数位数,使用最大精度时有效值从-1038 +1到1038-1, 其中p是精度,指定小数左边和右边一共可以存储的十进制数的最大个数。q是小数位数,指定小数点右边可以存储的十进制数字的最大个数。 |
- 近似型数据类型
SQL SERVER 数据类型 | 说明 |
---|---|
FLOAT | 8字节(从-1.79E 到1.79E+308范围内的浮点型数字 ) |
REAL | 4字节(从-3.40E 到3.40E+38范围内的浮点型数字 ) |
- 字符串型
SQL SERVER 数据类型 | 说明 |
---|---|
CHAR(n) | 固定长度的字符串类型,n表示字符串的最大长度,取值范围为1~8000 |
VARCHAR | 可变长度的字符串类型,n表示字符串的最大长度,取值范围为1~8000 |
NCHAR | 固定长度的Unicode数据,n表示字符串的最大长度,取值范围为1~4000 |
NVARCHAR | 可变长度的Unicode数据,n表示字符串的最大长度,取值范围为1~4000 |
TEXT | 可存储231 -1个字符的大文本 |
NTEXT | 最多可存储230 -1个字符的统一字符编码文本 |
BINARY | 固定长度的二进制字符数据,n表示最大长度,取值范围为1~8000 |
VARBINARY | 可变长度的二进制字符数据,n表示最大长度,取值范围为1~8000 |
IMAGE | 大容量的,可变长度的二进制字符数据,可以存储多种格式的文件,比如:word,excle,bmp,gif,jpeg等文件数据,最多可存储231 -1约为2GB |
- 日期类型
SQL SERVER 数据类型 | 说明 |
---|---|
DATETIME | 占用8字节空间,存储从1753.1.1到9999.12.31日的日期和时间数据,精确到百分之3秒(3.33毫秒) |
SMALLDATETIME | 占用4字节空间,存储从1900.1.1到2079.12.31日的日期和时间数据,精确到分钟 |
- 货币型
SQL SERVER 数据类型 | 说明 |
---|---|
MONEY | 8字节,存储的货币数据值介于-263 ,与263-1之间,精确到货币单位的千分之一,最多包含19位数 |
SMALLMONEY | 占用4字节空间,存储从1900.1.1到2079.12.31日的日期和时间数据,精确到分钟 |
以下即为约束:
约束名称 | 含义 |
---|---|
PRIMARY KEY | 主码,也称主关键字,是表中属性或属性组,用以唯一的确定一个元组,比如学号 |
FOREIGN KEY | 外码,也称外键或外关键字。可以设置表中的一个(或多个)属性,让它引用某个表的主码,使表中属性集的取值受它引用的属性集取值的约束。这个受约束的属性集称为外码 |
DEFAULT | 设定列的默认值。使用形式为:DEFAULT 常量 |
CHECK | 用于限定列的取值范围,使用形式是:CHECK(约束表达式)Eg:CHECK(年龄>10 and 年龄<60) |
NOT NULL | 非空约束,限定某列的取值不允许为空。 |
UNIQUE | 限定某一列的取值唯一,换句话说列的取值不能重复 |
表的创建:
我们再来看表的创建
CREATE TABLE 表名
(
列名 该列的数据类型 该列的约束,
列名 该列的数据类型 该列的约束,
.
.
.
列名 该列的数据类型 该列的约束 --在最后一行前的每一行都要有逗号
Eg:
CREATE TABLE BOOK
(
BOOK_ID CHAR(10) PRIMARY KEY,
NAME VARCHAR(30) NOT NULL,
AUTHOR VARCHAR(10),
PRICE DECIMAL(6,2) CHECK(PRICE>0),
)
CREATE TABLE BORROW
(
BOOK_ID CHAR(10),--当外码做主码时其约束类型要一致
READER_ID char(10),
PRIMARY KEY(BOOK_ID,READER_ID),--表示两个外码共同做主码
FOREIGN KEY(BOOK_ID) REFERENCES book(BOOK_ID)--表示外码的来源
FOREIGN KEY (READER_ID) REFERENCES READER(READER_ID)
)
表的删除:
DROP TABLE 表名 --删除单个表
DROP TABLE 表名,表名 --删除多个表
注意:当表中列被参照时,表不能被删除,比如reader表的reader_id被borrow表中的reader_id参照时,就不能直接删除reader表,要先将参照的关系去除掉,在删除读者表,或先将borrow表删除掉,再删除reader表
表结构的修改:
下面是SQL 的 ALTER TABLE语句的格式:
- 表中列的修改:
ALTER TABLE 表名
(
ALTER COLUMN 列名 新数据类型
ADD 列名 数据类型 约束
DROP COLUMN 列名
)
- 表中约束的修改:
ALTER TABLE 表名
(
--WITH CHECK --WITH NOCHECK
ADD CONSTRAINT 约束名称 约束定义
DROP CONSTRAINT 约束名称
)
添加约束时可以选WITH CHECK 可以设定是否对表中原有数据进行检查,若有存在不满足约束的数据,那约束将