数据库SQL归纳(二)
数据定义功能
对象 | 创建 | 修改 | 删除 |
---|---|---|---|
架构 | CREATE SCHEMA | DROP SCHEMA | |
表 | CREATE TABLE | ALTER TABLE | DROP TABLE |
视图 | CREATE VIEW | ALTER VIEW | DROP VIEW |
索引 | CREATE INDEX | ALTER INDEX | DROP INDEX |
说明:
-
方括号 [ ] 中的内容表示可选的(即可出现0次或1次)
-
花括号 { } 与省略号…一起,表示其中的内容可以出现0次或多次。
-
竖杠 | 表示在多个选项中选择一个
1. 定义架构
架构(schema,也称为模式)是数据库下的一个逻辑命名空间。
CREATE SCHEMA {
<架构名>
| AUTHORIZATION <所有者名>
| <架构名> AUTHORIZATION <所有者名>
} [{ 表定义语句 | 视图定义语句 | 授权语句 | 收权语句 | 拒绝权限语句 }]
2. 删除架构
DROP SCHEMA <架构名> { <CASCADE> | <RESTRICT> }
CASCADE:删除架构的同时将该架构中所有的对象一起删除。
RESTRICT:如果被删除的架构中包含对象,则拒绝删除此架构。
3. 定义表
CREATE TABLE [<架构名>.]<表名>(
<列名> <数据类型> [列级完整性约束定义]
{, <列名> <数据类型> [列级完整性约束定义] … }
[, 表级完整性约束定义 ]
)
在列级完整性约束定义处可定义的约束:
-
NOT NULL:限制列取值非空。
-
DEFAULT:给定列的默认值。
-
UNIQUE:限制列取值不重。
-
CHECK:限制列的取值范围。
-
PRIMARY KEY:指定本列为主键。
-
FOREIGN KEY:定义本列为引用其他表的外键。
[ FOREIGN KEY (<列名>) ] REFERENCES <外表名>(<外表列名>)
4. 修改表结构
ALTER TABLE [<架构名>.]<表名> {
ALTER COLUMN <列名> <新数据类型>
| ADD <列名> <数据类型> [约束]
| DROP COLUMN <列名>
| ADD [constraint <约束名>] 约束定义
| DROP [constraint] <约束名>
}
5. 删除表
DROP TABLE <表名> {,<表名>}
6. 定义视图
CREATE VIEW <视图名> [ ( 列名 [, …] ) ]
AS
SELSECT 语句
7. 修改视图
ALTER VIEW <视图名> [ ( 列名 [, …] ) ]
AS
SELSECT 语句
8. 删除视图
DROP VIEW <视图名>
9. 创建索引
CREATE [UNIQUE] [ CLUSTERED | NONCLUSTERED ]
INDEX <索引名> ON <表名> ( 列名 [, …] )
10. 删除索引
DROP INDEX <表名>.<索引名>