数据库笔记08:实现索引

网友投稿 648 2022-05-28

/********************

第八单元:实现索引

********************/

/*

参看教材P162页

1、索引的用途:优化查询,提高查询速度(采用二分查找方法)

2、索引的分类:聚集索引(物理排序)和非聚集索引(逻辑排序)

3. 创建索引的语法格式

CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX 索引名

ON 表名|视图名 (字段名) [WITH DROP_EXISTING]

*/

/* 任务:创建索引 */

--1. 按姓名查询学生记录,为了优化查询,给StuName创建非聚集索引

CREATE   NONCLUSTERED   INDEX   IX_StuName

ON   Student   ( StuName )   WITH   DROP_EXISTING ;

-- 加上WITH DROP_EXISTING,存在索引时,执行不会报错;但是索引不存在时,执行就会报错。

--2. 针对Course表,课程名不允许重复,创建一个非聚集的唯一索引

CREATE   UNIQUE   INDEX   IX_CouName

ON   Course   ( CouName );

--3. 验证关于唯一索引IX_CouName是否起作用

/* 最后一条记录:019 电子出版概论 */

INSERT   INTO   Course   VALUES   ( '020' , '电子出版概论' , '工程技术' , 3 , '罗小刚' , '02' , '周四3-4节' , 25 , 34 , 25 );

/* 错误信息:不能在具有唯一索引 'IX_CouName' 的对象 'dbo.Course' 中插入重复键的行。*/

/* 任务:重命名索引 */

--1. 将Student表上的索引IX_StuName改名为IX_StuNameNew

sp_rename   'Student.IX_StuName' , 'IX_StuNameNew'

--2. 验证:打开“索引/键”对话框,查看索引名是否已经修改

--3. 将Student表上的索引IX_StuNameNew改名为IX_StuName

sp_rename   'Student.IX_StuNameNew' , 'IX_StuName'

/* 任务:删除索引 */

--1. 删除Student表中的索引IX_StuName

DROP   INDEX   Student . IX_StuName ;

--2. 删除Course表中的唯一索引IX_CouName

DROP   INDEX   Course . IX_CouName ;

--3. 删除Student表的主键索引PK_Student

DROP   INDEX   Student . PK_Student ;

/* 任务:分析索引 */

--1. 对Student表的StuName创建非聚集索引IX_StuName

CREATE   INDEX   IX_StuName

ON   Student   ( StuName );

--2. 显示查询计划:如果一张表上有多个索引,查询时系统会采用哪个索引。

SET   SHOWPLAN_ALL   ON ;   -- 显示查询计划

数据库笔记08:实现索引

--(1) 查找姓张的学生记录

SELECT   StuNo , StuName

FROM   Student

WHERE   StuName   LIKE   '张%' ;

--(2) 查找学号以“02”结尾的学生记录

SELECT   StuNo , StuName

FROM   Student

WHERE   StuNo   LIKE   '%02' ;

--(3) 查找学号“00000002”的学生记录

SELECT   StuNo , StuName

FROM   Student

WHERE   StuNo = '00000002' ;

SET   SHOWPLAN_ALL   OFF ;   -- 不显示查询计划

--3. 显示磁盘活动量

SET   STATISTICS   IO   ON ;   -- 显示磁盘读取信息

SELECT   *

FROM   Student

WHERE   StuName   LIKE   '林%' ;

数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:鲲鹏云服务器移植mieDeep2
下一篇:能让你的Intellij IDEA 起飞的几个设置(设置背景 字体 快捷键 鼠标悬停提示 提示忽略大小写 取消单行显示)
相关文章