创建基本表
CREATE TABLE course(
Cno CHAR(4) PRIMARY KEY, -- Cno是主键
Cname CHAR(40) NOT NULL, -- Cname不能为空
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY(Cpno) REFERENCES course(Cno) -- 外键
)
修改基本表
1.向student表增加“入学时间”列,其数据类型为日期类型
ALTER TABLE student ADD s_entrance DATE;
2.将年龄的数据类型由字符型改为整数
ALTER TABLE student ALTER COLUMN Sage INT;
3.增加课程名称必须采取唯一值的约束条件
ALTER TABLE course ADD UNIQUE(Cname);
删除基本表
DROP TABLE <表名> [RESTRICT|CASCADE];
若选择RESTRICT,则该表删除的是有限制条件的。欲删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器等等
若选择CASCADE,则该表删除的没有有限制条件。再删除基本表的同时,相关的依赖也一同删除(如外键、视图等等)
若选择CASCADE,则该表删除的没有有限制条件。再删除基本表的同时,相关的依赖也一同删除(如外键、视图等等)
索引的建立与删除
常见索引类型:B+树索引,hash索引
1.建立索引
CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>]...]
UNIQUE是唯一索引,CLUSTER是聚簇索引
次序默认是ASC
次序默认是ASC
例题:
给student表按学号升序建立唯一索引,course表按照课程号升序建立唯一索引,sc表按照学号升序和课程号降序建立唯一索引。
CREATE UNIQUE INDEX Stusno ON student(Sno);
CREATE UNIQUE INDEX Coucno ON course(Cno);
CREATE UNIQUE INDEX SCno ON sc(Sno Asc, Cno DESC);
1.修改索引
ALTER INDEX <旧索引名> RENAME TO <新索引名>
例题
将sc表的SCno 索引名改为SCSno
ALTER INDEX SCno RENAME TO SCSno;
3.删除索引
DROP INDEX <索引名>
例题
删除student表的Stusname索引
DROP INDEX Stusname;