SQL中索引的建立和删除及数据字典

在SQL中,使用索引可以减少搜索的时间。
什么是索引呢?
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
建立索引的目的:加快查询速度。
关系数据库管理系统中常见索引:
①顺序文件上的索引
②B+树索引
③散列(hash)索引
④位图索引
数据库管理员 或 表的属主(即建立表的人)可以建立索引。
关系数据库管理系统自动完成维护索引的工作。
关系数据库管理系统自动选择合适的索引作为存取路径,用户不必也不能显式地选择索引。
建立索引
语句格式
CREATE [UNIQUE] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

<表名>:要建索引的基本表的名字
索引:可以建立在该表的一列或多列上,各列名之间用逗号分隔
<次序>:指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC
UNIQUE:此索引的每一个索引值只对应唯一的数据记录
例:为学生-课程数据库中的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);

修改索引
ALTER INDEX <旧索引名> RENAME TO <新索引名>

例:将SC表的SCno索引名改为SCSno

ALTER INDEX SCno RENAME TO SCSno;

删除索引
DROP INDEX <索引名>;

删除索引时,系统会从数据字典中删去有关该索引的描述。

例:删除Student表的Stusname索引

 DROP INDEX Stusname;

数据字典
数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有定义信息:
关系模式定义
视图定义
索引定义
完整性约束定义
各类用户对数据库的操作权限
统计信息等
关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。

你可能感兴趣的:(数据库)