SQL数据定义
创建表
Student
CREATE TABLE Student(
Sno CHAR(9) PRIMARY KEY, /*列级完整性约束,Sno为主码*/
Sname CHAR(20) UNIQUE, /*列级完整性约束,Sname唯一*/
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
手动插入数据
Course
CREATE TABLE Course(
Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Ccredit SMALLINT,
/*表级完整性约束,Cpno为外码,被参照表为Course(自身),被参照列为Cno*/
FOREIGN KEY (Cpno) REFERENCES Course(Cno)
);
手动插入数据
SC
CREATE TABLE SC(
Sno CHAR(20),
Cno CHAR(4),
Grade SMALLINT,
/*表级完整性约束,主码为Sno和Cno两列*/
PRIMARY KEY (Sno, Cno),
/*表级完整性约束,Sno为外码,被参照表为Sno*/
FOREIGN KEY (Sno) REFERENCES Student(Sno),
/*表级完整性约束,Cno为外码,被参照表为Course*/
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
手动插入数据
修改表
语法
ALTER TABLE < 表名 >
[ ADD < 新列名 > < 数据类型 > [ 完整性约束 ] ]
[ DROP < 完整性约束名 > ]
[ MODIFY COLUMN< 列名 > < 数据类型 > ];
实例
在student表中添加新列S_entreance
入学时间,类型为DATE
ALTER TABLE `student` ADD S_entrance DATE;
修改Studen表中Sage列数据类型为INT
ALTER TABLE `student` MODIFY COLUMN Sage INT;
增加课程名唯一的约束
ALTER TABLE `course` ADD UNIQUE(Cname);
删除表
语法
DROP TABLE <表名> [ RESTRICT| CASCADE ];
-
CASCADE
级联,删除表的同时,相关依赖对象一起删除
-
RESTRICT
限制,删除时存在依赖该表不能被删除
实例
删除sc
DROP TABLE `sc` CASCADE;