书目:SQL sever 实用教程(第五版)(SQL server 2008版)
本实验使用数据表为实验3中创建的employees、departments、salary表![283b460133704b5ca5d82e8623c840cd.jpg](https://i-blog.csdnimg.cn/blog_migrate/59d59c6aa0434ac44894432ee7c6a95b.jpeg)
1.建立索引
(1)使用create index语句创建索引
①对YGGL数据库的Employees表中的DepartmentID列建立索引
②在Employees表的Name列和Address列上建立复合索引
③对Departments表上的DepartmentName列建立唯一非聚集索引
- 索引创建后在“对象资源管理器”中查看表中的索引
- 了解索引的分类情况
不同数据库中提供了不同的索引类型, SQLServer 中的索引有两种:聚集索引和非聚集索引。聚集索引和非聚集索引的区别是在物理数据的存储方式上。
聚集索引:
聚集索引基于数据行的键值,在表内排序和存储这些数据行。每个表只能有一个聚集索引,应为数据行本分只能按一个顺序存储。
在聚集索引中,表中各行的物理顺序与索引键值的逻辑(索引)顺序相同。聚集索引通常可加快UPDATE和DELETE操作的速度,因为这两个操作需要读取大量的数据。创建或修改聚集索引可能要花很长时间,因为执行这两个操作时要在磁盘上对表的行进行重组。
非聚集索引:
因为一个表中只能有一个聚集索引,如果需要在表中建立多个索引,则可以创建为非聚集索引。表中的数据并不按照非聚集索引列的顺序存储,但非聚集索引的索引行中保存了非聚集键值和行定位器,可以快捷地根据非聚集键的值来定位记录的存储位置。
无论是聚集索引,还是非聚集索引,都可以是唯一索引。在 SQL Server 中,当唯一性是 . 数据本身的特点时,可创建唯一索引,但索引列的组合不同于表的主键。例如,如果要频繁查询表 Employees (该表主键为列 Emp_id )的列 Emp_name ,而且要保证姓名是唯一的,则在列 Emp_name 上创建唯一索引。如果用户为多个员工输入了相同的姓名,则数据库显示错误,并且不能保存该表。
- 使用create index语句能创建主键吗?
不能。
(2)使用界面方式创建索引
启动“SQL Server Management Studio”在“对象资源管理器”中展开数据库 YGGL,展开表 Employees,右击“索引”,在弹出的快捷菜单上选择“新建索引”菜单项。在新建索引的窗口中填写索引的名称和类型,单击“添加”按钮,在列表框中选择要创建索引的列。选择完成后单击“确定”按钮即完成创建工作。
-
在Employees表的表设计窗口中选择Adress列,右击后选择“索引/键”菜单项,在新窗口中为Adress列创建一个唯一索引
注:关闭表设计窗口后要点击面板上的“保存”按钮。
- 使用索引和不使用索引的区别
1)不使用索引,数据会全表扫描,直到找到对应的数据。
2)使用索引后,会索引页中先找到数据对应物理地址,直接获取对应的数据。
2.重建索引
重建表Employees中的所有索引
- 重建表Employees中EmployeeID列上的索引
3.删除索引
使用drop index语句删除表Employees上的索引depart_ind
- 使用drop index一次性删除Employees表上的多个索引
- 使用界面方式删除表Departments上的索引
①打开表设计窗口删除(注:关闭表设计窗口后要点击面板上的“保存”按钮)
②直接在“对象资源管理器”中找到索引右键删除