目录
1 创建数据库
CREATE DATABASE <数据库名>
ON
(NAME = <数据库名>_dat,
FILENAME = ‘driver:\ path\ <数据库名>.mdf’
)
LOG ON
(NAME = <数据库名>_log,
FILENAME = ’ driver:\ path \ <数据库名>.ldf’
);
2 创建表
CREATE TABLE <表名>
(<列名> <数据类型> [<列级完整性约束条件>],
[<列名> <数据类型> [<列级完整性约束条件>],]
[<表级完整性约束条件>]
);
2.1 列级完整性约束
唯一:UNIQUE
不为空:NOT NULL
满足条件:CHECK (条件)
2.2 表级完整性约束
定义主码:CONSTRAINT <名字> PRIMARY KEY(列名),
定义外码及参照:FOREIGN KEY(列名)REFERENCES 表名(列名),
满足条件:CHECK (条件)
3 修改表
3.1 修改原有列定义
ALTER TABLE <表名>
ALTER [COLUMN] <列名> <数据类型>;
3.2 增加列
ALTER TABLE <表名>
ADD [COLUMN] <新列名> <数据类型> [完整性约束];
3.3 增加表级完整性约束
ALTER TABLE <表名>
ADD <表级完整性约束>;
3.4 删除列
ALTER TABLE <表名>
DROP [COLUMN] <列名> [CASCADE级联|RESTRICT非级联];
3.5 删除完整性约束
ALTER TABLE <表名>
DROP CONSTRAINT <完整性约束名> [CASCADE级联|RESTRICT非级联];
3.6 删除表
DROP TABLE <表名> [CASCADE级联|RESTRICT非级联];
3.7 插入数据
INSERT
INTO <表名> [(<属性列1>[,<属性列2 >…)]
VALUES (<常量1> [,<常量2>]);
或
INSERT
INTO <表名> [(<属性列1>[,<属性列2 >…)]
<子查询>
例:将学生的平均成绩存入A表
INSERT
INTO Sno,A(Grade)
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno;
3.8 修改数据
UPDATE <表名>
SET <列名>=<表达式> [ , <列名>=<表达式>]…
[WHERE <条件>];
或
UPDATE <表名>
SET <列名>=<表达式> [ , <列名>=<表达式>]…
WHERE <子查询>;
例:将计算机科学系全体学生的成绩置零。
UPDATE SC
SET Grade=0
WHERE Sno IN
(
SELECT Sno
FROM Student
WHERE Sdept=’CS’
);
注:UPDATE后只能跟一个表的名字。
3.9 删除数据
DELETE
FROM <表名>
[WHERE <条件>];
或
DELETE
FROM <表名>
WHERE <子查询>;
例:删除所有学生的选课记录。
DELETE
FROM SC;
例:删除年龄为19的学生记录。
DELETE
FROM Student
WHERE Sno IN
(
SELECT Sno
FROM Student
WHERE Sage=19
);
4 建立索引
CREATE [UNIQUE唯一] [CLUSTERED聚簇|NONCLUSTERED] INDEX <索引名>
ON <表名> (<列名>[<次序>][,<列名>[<次序>] ]…);
4.1 升序
默认或ASC
4.2 降序
DESC
4.3 修改索引(重命名)
ALTER INDEX <旧名> RENAME TO <新名>;
4.4 删除索引
DROP INDEX <表名.索引名>;
5 建立视图
CREATE VIEW <视图名>[(<列名>[,<列名>]…)]
AS <子查询>
[WITH CHECK OPTION]