SQL server 实验6.1 索引

书目:SQL sever 实用教程(第五版)(SQL server 2008版)
本实验使用数据表为实验3中创建的employees、departments、salary表283b460133704b5ca5d82e8623c840cd.jpg


 

 

1.建立索引


(1)使用create index语句创建索引

①对YGGL数据库的Employees表中的DepartmentID列建立索引061d87d3989c45288531bb68ebe9d5de.png

 ②在Employees表的Name列和Address列上建立复合索引2249ec044fce4d02b298417f572a3097.png

 ③对Departments表上的DepartmentName列建立唯一非聚集索引

13bcf452591b48859356ceae77cd702d.png

  •  索引创建后在“对象资源管理器”中查看表中的索引4ff77ee683904c70ace61292f60b7a1f.png
  •  了解索引的分类情况

不同数据库中提供了不同的索引类型, SQLServer 中的索引有两种:聚集索引和非聚集索引。聚集索引和非聚集索引的区别是在物理数据的存储方式上。

聚集索引:

聚集索引基于数据行的键值,在表内排序和存储这些数据行。每个表只能有一个聚集索引,应为数据行本分只能按一个顺序存储。

在聚集索引中,表中各行的物理顺序与索引键值的逻辑(索引)顺序相同。聚集索引通常可加快UPDATE和DELETE操作的速度,因为这两个操作需要读取大量的数据。创建或修改聚集索引可能要花很长时间,因为执行这两个操作时要在磁盘上对表的行进行重组。

非聚集索引:

因为一个表中只能有一个聚集索引,如果需要在表中建立多个索引,则可以创建为非聚集索引。表中的数据并不按照非聚集索引列的顺序存储,但非聚集索引的索引行中保存了非聚集键值和行定位器,可以快捷地根据非聚集键的值来定位记录的存储位置。

无论是聚集索引,还是非聚集索引,都可以是唯一索引。在 SQL Server 中,当唯一性是 . 数据本身的特点时,可创建唯一索引,但索引列的组合不同于表的主键。例如,如果要频繁查询表 Employees (该表主键为列 Emp_id )的列 Emp_name ,而且要保证姓名是唯一的,则在列 Emp_name 上创建唯一索引。如果用户为多个员工输入了相同的姓名,则数据库显示错误,并且不能保存该表。

 

  • 使用create index语句能创建主键吗?

       不能。

 

(2)使用界面方式创建索引

启动“SQL Server Management Studio”在“对象资源管理器”中展开数据库 YGGL,展开表 Employees,右击“索引”,在弹出的快捷菜单上选择“新建索引”菜单项。在新建索引的窗口中填写索引的名称和类型,单击“添加”按钮,在列表框中选择要创建索引的列。选择完成后单击“确定”按钮即完成创建工作。 

ca00e3dd2c9f484bbe97f1c3bf66300a.png

 

  • 在Employees表的表设计窗口中选择Adress列,右击后选择“索引/键”菜单项,在新窗口中为Adress列创建一个唯一索引c8cc79aa7270411dbaae6a805692fb42.png1143e09fe7d249379a92197a2b279781.png注:关闭表设计窗口后要点击面板上的“保存”按钮。

 

  • 使用索引和不使用索引的区别

1)不使用索引,数据会全表扫描,直到找到对应的数据。

2)使用索引后,会索引页中先找到数据对应物理地址,直接获取对应的数据。


 

 

2.重建索引


重建表Employees中的所有索引

4034042c186a40d9a31fa2f5980cb077.png

  •  重建表Employees中EmployeeID列上的索引8402fb2677464e6a977a92b964803e5c.png

 


 

 

3.删除索引


使用drop index语句删除表Employees上的索引depart_ind

0fd525cf15e54a728b3b667c14c6332c.png

  •  使用drop index一次性删除Employees表上的多个索引7e7311297d7342d19256c2e177d946e7.png
  •  使用界面方式删除表Departments上的索引

①打开表设计窗口删除(注:关闭表设计窗口后要点击面板上的“保存”按钮)

ce085aeafe8c427d86d88b6c9567ef6d.png

 ②直接在“对象资源管理器”中找到索引右键删除c8c97e85d20947f9b45fa1d5724baab6.jpg


 

以上内容仅供参考

  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值