SQL学习笔记——数据定义之一:
1、表的建立和删除:
建立:CREATE TABLE <表名>
(<列定义>……[<完整性约束>])
例1:建立教学管理数据库中包括学号、姓名、年龄、性别、地址的表STUDENTS
Create table students
(SNO numeric(6,0) not null,
SNAME varchar(20) not null,
SEX char(2),
BPLACE varchar(20),
PRIMARY KEY(SNO))
注:not null表示该列不允许出现空值,primary key定义主关键字
例2:根据例1建立的students表,建立一个只包含学号、姓名和年龄的女学生表
CREATE TABLE GIRL
AS SELECT SNO,SNAME,AGE WHERE SEX='女'
2.删除表
DROP CREATE <表名>{CASCADE|RESTRICT]
使用CASCADE时,在删除表时,该表中的数据、表本身和该表上所建的视图和索引将全部随之消失
使用RESTRICT时,只有在先清除了表中全部记录行数据,以及在该表上所建的索引和视图后,才能删除一个表。
3.表的扩充和修改
增加列:ALTER TABLE <表名> ADD (<列名><数据类型>)
例:在Students表中增加地址列
ALTER TABLE STUDENT ADD (ADDR VARCHAR(20))
删除列:ALTER TABLE <表名> DROP <列名>
例:在STUDENTS表中删除BPLACE列,并把引用该列的所有视图和索引一起删除
ALTER TABLE STUDENT DROP BPLACE CASCADE
补充定义主关键字或删除主关键字:ALTER TABLE <表名> ADD PRIMARY KEY(<列名表>)
ALTER TABLE <表名> DROP PRIMARY KEY
例:补充添加GIRL表的主关键字
ALTER TABLE GIRL ADD PRIMARY KEY(SNO)
删除students表的主关键字:ALTER TABLE STUDENT DROP PRIMARY KEY
补充或删除外来关键字:
补充:ALTER TABLE <表名1> ADD FOREIGN KEY[<外来关键字名>](<列表名>)
REFERENCES <表名2>
[ON DELETE {CASCADE|RESTRICT|SET NULL}]
说明:表名1为当前修改定义的表名;表名2为外来关键字出处的表名;
[ON DELETE {CASCADE|RESTRICT|SET NULL}]说明当表中被引用的关键字被删除时,为了保证完整性可以采用的三种处理方法:1、CASCADE即当主表(表名2)中的某个关键字被删除时,在本基本表(表名1)中引用了该外来字段的对应行也随之删除;2、RESTRICT即被本基本表的外来关键字所引用的表名2中的主关键字不得删除;3、SET NULL即主表2中某个关键字被删除时,在本基本表1中引用了该外来关键字的对应行的外来关键字设为空值。
例:补充定义ENROLLS表中外来关键字SNO、CNO
ALTER TABLE ENROLLS
ADD FOREIGN KEY(SNO) REFERENCES STUDENT(SNO) ON DETELE CASCADE,
ADD FOREIGN KEY(CNO) REFERENCES COURSE(CNO) ON DETELE CASCADE
删除外来关键字:ALTER TABLE ENROLLS DROP SNO