数据库应用基础 Fundamental and Application of Database 第四讲 测控技术与自动化教研中心冯仁剑
Fundamental and Application of Fundamental and Application of Database Database 数据库应用基础 数据库应用基础 第四讲 测控技术与自动化教研中心 测控技术与自动化教研中心 冯仁剑
331定义、修改和删除表 1、定义(创建)表 CREATE TABLE〈表名>( 〈列名〉(数据类型〉[列级完整性约束条件ˉ [,<列名入(数据类型〉列级完整性约束条件]] ,〈表级完整性约束条件》]); BI: CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE Sname CHAR (20) Ssex CHAR (1) Sage INT, Sdept CHAR (15)) 3.3数据定义
3.3 数据定义 3.3.1 定义、修改和删除表 定义、修改和删除表 1、定义(创建)表 CREATE TABLE ( [列级完整性约束条件 列级完整性约束条件] [,[列级完整性约束条件 列级完整性约束条件]]… [,]); 例:CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex CHAR(1), Sage INT, Sdept CHAR(15));
2、修改表 ALTER TABLE〈表名 [AD〕] LMODIFY<列名入数据类型》); 例2向 Student表增加“入学时间”列,其数据类型为目期型 ALTER TABLE Student add scome date 例3将年龄的数据类型改为半字长整数 ALTER TABLE Student moDiFY Sage SMALLINT 例4删除关于学号必须取唯一值的约束 ALTER TABLE Student DROP UNIQUE (Sno) 3.3数据定义
2、修改表 ALTER TABLE [ADD [完整性约束]] [DROP ] [MODIFY); 例2 向Student Student表增加“入学时间”列,其数据类型为日期型 列,其数据类型为日期型 ALTER TABLE Student ADD ALTER TABLE Student ADD Scome DATE; 例3 将年龄的数据类型改为半字长整数 将年龄的数据类型改为半字长整数 ALTER TABLE Student MODIFY Sage SMALLINT; ALTER TABLE Student MODIFY Sage SMALLINT; 例4 删除关于学号必须取唯一值的约束 删除关于学号必须取唯一值的约束 ALTER TABLE Student DROP ALTER TABLE Student DROP UNIQUE(Sno UNIQUE(Sno); 3.3 数据定义
3、删除表 DROP TABLE〈表名〉 例5删除 Student表 DROP TABLE Student 3.3数据定义
3、删除表 DROP TABLE 例5 删除Student Student表 DROP TABLE DROP TABLE Student Student 3.3 数据定义
3.3.2建立索引 ●语句格式 CREATE[NOUE[ CLUSTER] INDEX({次序指定要建索引的基本表名字 索引可以建立在该表的一列或多列上,各列名之间用逗 号分隔 用指定索引值的排列次序,升序:ASC,降序 DESC。缺省值:ASC UNIQUE表明此索引的每一个索引值只对应唯一的数据 记录 CLUSTER表示要建立的索引是聚簇索引
z 语句格式 CREATE [UNIQUE] [CLUSTER] INDEX ON ([][,[] ]…); – 用指定要建索引的基本表名字 – 索引可以建立在该表的一列或多列上,各列名之间用逗 号分隔 – 用指定索引值的排列次序,升序:ASC,降序: DESC。缺省值:ASC – UNIQUE表明此索引的每一个索引值只对应唯一的数据 记录 – CLUSTER表示要建立的索引是聚簇索引 3.3.2 建立索引
例题 例6为学生课程数据库中的 Student, Course,SC三个表建立索引。其中 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)
例题 [例6] 为学生 - 课程数据库中的 Student , Course,SC三个表建立索引。其中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);
建立索引(续) ●唯一值索引 对于已含重复值的属性列不能建 UNIQUE索引 对某个列建立 UNIQUE索引后,插入新记录时 DBMS会自动检查新记录在该列上是否取了重复 值。这相当于增加了一个 UNIQUE约東
建立索引 (续) z 唯一值索引 – 对于已含重复值的属性列不能建UNIQUE索引 – 对某个列建立UNIQUE索引后,插入新记录时 DBMS会自动检查新记录在该列上是否取了重复 值。这相当于增加了一个UNIQUE约束
建立索引(续) ●聚簇索引 建立聚簇索引后,基表中数据也需要按指 定的聚簇属性值的升序或降序存放。也即 聚簇索引的索引项顺序与表中记录的物理 顺序一致 例 CREATE CLUSTER INDEX Stusname ON Student( Sname 在 Student表的 Sname(姓名)列上建立一个聚簇索引,而 且 Student表中的记录将按照 Sname值的升序存放
建立索引 (续) z 聚簇索引 – 建立聚簇索引后,基表中数据也需要按指 定的聚簇属性值的升序或降序存放。也即 聚簇索引的索引项顺序与表中记录的物理 顺序一致 例: CREATE CLUSTER INDEX Stusname ON Student(Sname); 在Student表的Sname(姓名)列上建立一个聚簇索引,而 且Student表中的记录将按照Sname值的升序存放
建立索引(续) 在一个基本表上最多只能建立一个聚簇索引 聚簇索引的用途:对于某些类型的查询,可 以提高查询效率 聚簇索引的适用范围 很少对基表进行增删操作 很少对其中的变长列进行修改操作
建立索引 (续) – 在一个基本表上最多只能建立一个聚簇索引 – 聚簇索引的用途:对于某些类型的查询,可 以提高查询效率 – 聚簇索引的适用范围 z 很少对基表进行增删操作 z 很少对其中的变长列进行修改操作
删除索引 DROP INDEX; 删除索引时,系统会从数据字典中删去有关 该索引的描述。 例刀删除 Student表的 Stusname索引 DROP INDEX Stusname
删除索引 DROP INDEX ; – 删除索引时,系统会从数据字典中删去有关 该索引的描述。 [例7] 删除Student表的Stusname索引。 DROP INDEX Stusname;