INDEX
【例3.13】为学生—课程数据库中的Student、Course和SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
索引建立时可利用关键字修饰,asc代表升序,desc代表降序,未加修饰时默认为升序。
CREATE UNIQUE INDEX Stusno ON Student(Sno);
在Sudent表中按Sno升序建立名为Stunsno的索引。
CREATE UNIQUE INDEX Coucno ON Course(Cno);
在Course表中按Cno升序建立名为Coucno的索引。
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
在SC表中按Sno升序,Cno降序建立名为SCno的索引。
此时建立索引的依据多于一个,先按第一个建立索引,若建立后有排序相同的部分,那么同序部分按照第二个建立索引。
【例3.15】删除Student表的Stusname索引。(由于解决3.14中的一个错误需要使用删除语句,所以先对3.15进行说明)
DROP INDEX Stusno;
这条语句有错误(不得不吐槽一下错误真多(╯‵□′)╯︵┻━┻)
从上面建立索引的过程就可以得知,索引的操作要指明所在的表,删除操作也是同样的道理。
修改为
DROP INDEX Stusno on Student;
【例3.14】将SC表的SCno索引名改为SCSno。
ALTER INDEX SCno RENAME TO SCSno;
这条语句的执行会出现语法错误,ALTER语句不能用于修改索引名。
解决方法:可以利用下面的语句删除原有索引后,再建立新的索引
DROP INDEX SCno ON