时间:2021-07-01 10:21:17 帮助过:20人阅读
数据定义:CREATE,DROP,ALTER
数据操纵:INSERT,UPDATE,DELETE
数据控制:GRANT,REVOKE
数据定义:
操作对象 | 操作方式 | ||
创建 | 删除 | 修改 | |
模式 | CREATE SCHEMA | DROP SCHEMA | |
表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
视图 | CREATE VIEW | DROP VIEW | |
索引 | CREATE INDEX | DROP INDEX | ALTER INDEX |
CREATE SCHEMA <模式名>
AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
例:
CREATE SCHEMA Test --SQL SERVER 2008 创建模式Test
DROP SCHEMA <模式名> <CASCADE|RESTRICT>
删除模式的同时把该模式中所有的数据库对象全部删除
如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。
仅当该模式中没有任何下属的对象时才能执行
例:
DROP SCHEMA Test; --SQL SERVER不支持级联删除,要想删除架构必须首先删除架构所包含的表。
CREATE TABLE <表名> /* 基本表的名称*/
(<列名> <数据类型>[ <列级完整性约束条件> ] /*组成该表的列*/
[,<列名> <数据类型>[ <列级完整性约束条件>] ]
…
[,<表级完整性约束条件> ] );
例:
1、建立“学生”表Student。学号是主码,姓名取值唯一
CREATE TABLE Test.Student(
Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件,Sno是主码*/
Sname CHAR(20) UNIQUE, /* Sname取唯一值*/
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
2、建立一个“课程”表Course
CREATE TABLE Test.Course(
Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Test.Course(Cno) /*表级约束*/
);
3、建立一个学生选课表SC
CREATE TABLE Test.SC(
Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),
/* 主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY (Sno) REFERENCES Test.Student(Sno),
/* 表级完整性约束条件,Sno是外码,被参照表是Student */
FOREIGN KEY (Cno)REFERENCES Test.Course(Cno)
/* 表级完整性约束条件, Cno是外码,被参照表是Course*/
)
ALTER TABLE <表名>
[ADD[COLUMN] <新列名> <数据类型> [ 完整性约束] ]
[ADD <表级完整性约束>]
[DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]
[DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]
[ALTER COLUMN <列名><数据类型> ] ;
如果指定了CASCADE短语,则自动删除引用了该列的其他对象
如果指定了RESTRICT短语,则如果该列被其他对象引用,关系数据库管理系统将拒绝删除该列
例:
ALTER TABLE TEST.STUDENT ADD Birthday DATE; --添加新列
ALTER TABLE TEST.COURSE ADD UNIQUE(Cname); --添加完整性约束
ALTER TABLE TEST.STUDENT DROP COLUMN Birthday; --删除列
ALTER TABLE TEST.SC ALTER COLUMN GRADE TINYINT; --修改选课表中的分数类型
/*添加主键约束*/
ALTER TABLE TEST.SC ADD CONSTRAINT add_pk PRIMARY KEY(Sno, Cno)
/*添加外键约束*/
ALTER TABLE TEST.SC ADD CONSTRAINT add_fk FOREIGN KEY (Sno) REFERENCES Test.Student(Sno);
ALTER TABLE TEST.SC ADD CONSTRAINT add_fk2 FOREIGN KEY (Cno)REFERENCES Test.Course(Cno);
/*删除约束,必须在添加约束时指定约束名称才能删除*/
ALTER TABLE TEST.SC DROP CONSTRAINT add_fk;
DROP TABLE <表名>[RESTRICT| CASCADE];
欲删除的基本表不能被其他表的约束所引用
如果存在依赖该表的对象,则此表不能被删除
在删除基本表的同时,相关的依赖对象一起删除
例:
/*SQL Server不支持级联删除,如果存在依赖该表的对象,则此表不能被删除*/
DROP TABLE TEST.Course;
SQL基础
标签:用户名 删除表 log 16px 组成 nbsp reference sele bsp