文章目录
一.索引的建立与删除
(一)建立索引
CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>]]...);
<表名>:要建索引的基本表的名字
索引:可以建立在该表的一列或多列上,各列名之间用逗号分隔
<次序>:指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC
UNIQUE:此索引的每一个索引值只对应唯一的数据记录
CLUSTER:表示要建立的索引是聚簇索引
88页【例3.13】为学生-课程数据库中的Student、Course和SC 三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
ASC表示升序,DESC表示降序。缺省值:ASC。
CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
先对Sno进行升序排序,对某个Sno对Cno进行降序排序
(二)修改索引
ALTER INDEX <旧索引名> RENAME TO <新索引名>;
89页【例3.14】将SC表的SCno索引名改为SCno。
ALTER INDEX SCno RENAME TO SCSno;
原因:alter不能改变索引名,如若改变索引名就需要调用存储过程。
调用存储过程代码如下:
EXEC sp_rename @objname = 'student.stusno1', @newname = 'stusno2', @objtype = 'index'
/*或者如下*/
EXEC sp_rename '表名.旧索引名', '新索引名', 'INDEX'
调用存储过程时会出现:
注意: 更改对象名的任一部分都可能会破坏脚本和存储过程。
这时命令已经成功执行了。
EXEC sp_rename N'SC.SCno',N'SCSno',N'INDEX' ;
GO
(三)删除索引
DROP INDEX <表名.索引名>;
89页【例3.15】删除Course表的Course索引。
DROP INDEX Course;
书上的代码有误
正确代码:
DROP INDEX Course.Course;
二.插入数据
1.插入元组
INSERT