修改基本表

来源:互联网 发布:淘宝用红包退款 编辑:程序博客网 时间:2024/06/03 19:35
ALTER TABLE <表名>[ ADD <新列名> <数据类型> [ 完整性约束 ] ][ DROP <完整性约束名> ][ ALTER COLUMN <列名> <数据类型> ]; <表名>: 要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 ALTER COLUMN子句:用于修改列名和数据类型[例8]向Student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE Student ADD S_entrance DATE; 不论基本表中原来是否已有数据,新增加的列一律为空值。[例9]将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。 ALTER TABLE Student ALTER COLUMN Sage INT;[例10]增加课程名称必须取唯一值的约束条件。 ALTER TABLE Course ADD UNIQUE(Cname);DROP TABLE <表名>[ RESTRICT| CASCADE];RESTRICT: 删除表是有限制的。 欲删除的基本表不能被其他表的约束所引用 如果存在依赖该表的对象,则此表不能被删除CASCADE:删除该表没有限制。 在删除基本表的同时,相关的依赖对象一起删除如果选择CASCADE时可以删除表,视图也自动被删除DROP TABLE Student CASCADE;--NOTICE: drop cascades to view IS_StudentSELECT * FROM IS_Student;--ERROR: relation “ IS_Student ” does not exist建立索引语句格式CREATE [UNIQUE] [CLUSTERS] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…); 用<表名>指定要建索引的基本表名字 索引可以建立在该表的一列或多列上, 各列名之间用逗号分隔 用<次序>指定索引值的排列次序, 升序: ASC, 降序: DESC。 缺省值: ASCUNIQUE表明此索引的每一个索引值只对应唯一的数据记录 CLUSTERS表示要建立的索引是聚簇索引为学生-课程数据库中的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, CnoDESC);建立聚簇索引后, 基表中数据也需要按指定的聚簇属性值的升序或降序存放。 也即聚簇索引的索引项顺序与表中记录的物理顺序一致例:CREATE CLUSTERS INDEX Stusname ONStudent(Sname);在Student表的Sname( 姓名) 列上建立一个聚簇索引, 而且Student表中的记录将按照Sname值的升序存放在一个基本表上最多只能建立一个聚簇索引 聚簇索引的用途:对于某些类型的查询,可以提高查询效率 聚簇索引的适用范围 很少对基表进行增删操作 很少对其中的变长列进行修改操作删除索引DROP INDEX 表名 .索引名 删除索引时,系统会从数据字典中删去有关该索引的描述。[例7] 删除Student表的Stusname索引。 DROP INDEX Student.Stusname;
原创粉丝点击