如何生成构架图(结构图生成)
628
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 ; -- 显示查询计划
--(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小时内删除侵权内容。