SQL 基本表(TABLE)

  1. 基本表的创建
CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束条件]
                    [,<列名><数据类型>[列级完整性约束条件]] 
		    ...
		    [,<表级完整性约束条件>]);

例:

--学生表
create table Student
		(Sno char(9) primary key,--主码
		Sname char(20) unique,--唯一
		Ssex char(2),
		Sage smallint,
		Sdept char(20)
		);
--课程表
create table Course
		(Cno char(4) primary key,
		Cname char(40) not null,--非空
		Cpno char(4),
		Ccredit smallint,
		foreign key (Cpno) references Course(Cno)--表级完整性约束条件,Cpno是外码,被参照表是Course中的Cno列
		);
--选课表
create table SC
		(Sno char(9),
		Cno char(4),
		Grade smallint,
		primary key(Sno,Cno),--Sno和Cno都是主码
		foreign key(Sno) references Student(Sno),--表级完整性约束条件,Sno是外码,被参照表是Student中的Sno列
		foreign key(Cno) references Course(Cno)--表级完整性约束条件,Cno是外码,被参照表是Course中的Cno列
		);

其中,主码只有一个时,直接在后面直接加上primary key,而大于一个时,使用表级完整性约束条件primary key( , )

  1. 基本表的修改
ALTER TABLE<表名>
[ADD [COLUME]<新列名><数据类型>[完整性约束]]
[ADD<表级完整性约束>]
[DROP [COLUME]<列名>[CASCADE|RESTRICT]]
[DROP CONSTRAINT<完整性约束名>[RESTRICT|CASCADE]]
[ALTER COLUME<列名><数据类型>];

例:

--向学生表(Student)中添加类型为日期型的“入学时间”列
alter table Student add S_entrance date;

--将年龄的数据类型由字符型改为整数
alter table Student alter column Sage int;

--增加课程名称必须取谓一致的约束条件
alter table Student add unique(Cname);
  1. 删除基本表
DROP TABLE<表名>[RESTRICT|CASCADE]

其中,CASCADE(级联)表示删除该表时,相关依赖的比如视图等,都将被删除。
RESTRICT(限制)表示如果该表已经被其他表约束(FOREIGN KEY),则不能被删除。

例:

drop table Student cascade;--出错,因为Student已经被表SC引用

Student已经被表SC引用,只有SC表删除之后,才能删除表Student

猜你喜欢

转载自blog.csdn.net/sinat_41909065/article/details/84104466