修改基本表

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_Student
SELECT * 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, Cno
DESC);

建立聚簇索引后, 基表中数据也需要按指定的聚簇属性值
的升序或降序存放。 也即聚簇索引的索引项顺序与表中记
录的物理顺序一致
例:
CREATE CLUSTERS INDEX Stusname ON
Student(Sname);
在Student表的Sname( 姓名) 列上建立一个聚簇索引, 而
且Student表中的记录将按照Sname值的升序存放

在一个基本表上最多只能建立一个聚簇索引
 聚簇索引的用途:对于某些类型的查询,可以
提高查询效率
 聚簇索引的适用范围
 很少对基表进行增删操作
 很少对其中的变长列进行修改操作
删除索引
DROP INDEX 表名 .索引名
 删除索引时,系统会从数据字典中删去有关该
索引的描述。
[例7] 删除Student表的Stusname索引。
 DROP INDEX Student.Stusname;
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值