数据库原理与应用(SQL Server)笔记——第十章 索引和视图


前言

本次内容,我们主要掌握数据库的索引和视图,主要介绍索引和视图的概念、索引和视图的操作。

一、索引

(一)索引的概念

索引是与表相关联的存储结构,用于提高表中数据的查询速度,从而加快从数据库中取得所需的数据。索引包含由表中的一列或多列生成的键,以及映射到指定表行的存储位置的指针,这些键存储在一个结构(B树)中,使得快速查找与键值关联的行。在建立索引后,不仅可以加快数据查询,还可以加快排序和分组操作等等。

(二)索引的分类

1、根据结构,可分类为聚集索引非聚集索引。聚集索引中索引的顺序决定数据表中记录行的顺序,每个表中只能有一个聚集索引,其正文内容本身按照一定规则排列的目录;非聚集索引中索引的结构独立于数据行的结构,一个表中可以有多个非聚集索引,其正文内容纯粹是正文的排序方式。
2、根据实现的功能,可分类为唯一性索引非唯一性索引。唯一性即要求组成该索引的字段在表中有唯一值。

(三)索引的操作

接下来将会从索引的创建、索引的查看、索引的修改以及索引的删除来分别介绍索引的具体操作。(可使用图形界面方式和T-SQL语句实现操作,以下皆通过T-SQL语句实现。)

1、创建

使用CREATE INDEX语句来创建索引,格式如下:

CREATEUNIQUE/CLUSTERED / NONCLUSTEREDINDEX <索引的名称>  
/*UNIQUE表示该索引唯一;CLUSTERED / NONCLUSTERED表示该索引的组织方式*/
ON <表的名称(列1,列2...>

例1、在数据库YGGZ中Salay表的EmpNO列和Wages列,创建一个唯一聚集索引IX_Salay。
sql语句:
USE YGGZ CREATE UNIQUE CLUSTERED INDEX IX_Salay ON Salay(EmpNo,Wages)
测试结果:
可以在左侧对象资源管理器,找到Salay表中索引下创建的唯一聚集索引IX_Salay。
在这里插入图片描述

2、查看

使用sp_helpindex存储过程来查看所创建的索引的属性,格式如下:

EXEC sp_helpindex <表的名称>
/*EXEC表示调用存储过程的函数*/

例2、查看上例1的所建索引IX_Salay的属性。
sql语句:
USE YGGZ EXEC sp_helpindex Salay
测试结果:在这里插入图片描述

2、修改

使用ALTER INDEX语句来修改索引的属性,格式如下:

ALTER INDEX <索引的名称>
ON <表的名称>
REBUILD 
/*重建索引*/
WITH (...)
/*重建索引选项*/

3、删除

使用DROP INDEX语句来修改索引的属性,格式如下:

DROP INDEX
<表的名称.索引名称,...> / <索引名称 ON 表的名称,...>

例3、删除例1所创建的索引。
sql语句:
USE YGGZ DROP INDEX IX_Salay ON Salay
测试结果:在这里插入图片描述

二、视图

(一)视图的概念

视图简单的来说,是给用户观察数据库的一种机制,通过视图浏览表中有关的数据,其数据的物理存放地址仍在表中,就是说并未将其真实提出来,只是一个虚拟表。称用来导出视图的表为基表,导出的视图称为虚表

(二)视图的分类

视图可分为三种,分别是标准视图索引视图分区视图。索引视图是创建了唯一聚集索引的视图;分区视图在一台或多台服务器间水平连接一组成员表的分区数据。

(三)视图的操作

接下来将会从视图的创建、视图的查询、视图的修改以及视图的删除来分别介绍视图的具体操作。(也是可使用图形界面方式和T-SQL语句实现操作,以下皆通过T-SQL语句实现。)

1、创建

使用CREATE VIEW语句来创建视图,格式如下:

CREATE VIEW <视图的名称>(列1...AS
SELECT语句
	(WITH CHECK OPTION/*WITH CHECK OPTION指在视图上进行的修改都要符合SELECT语句中所指定的准则*/

例4、根据以下所给数据,在YGGZ数据库中创建s视图v_Employee,该视图选择员工表Employee中部门编号为102的所有女员工。
在这里插入图片描述
sql语句:
USE YGGZ GO CREATE VIEW v_Employee AS SELECT* FROM Employee WHERE Sex='女' AND DeptNo='102' WITH CHECK OPTION
测试结果:
在这里插入图片描述

2、查询

查询视图时跟以前查询表一样,使用SELECT语句。

例5、查询例4中所创建的视图v_Employee。
sql语句:
USE YGGZ SELECT * FROM v_Employee
测试结果:
在这里插入图片描述
与查询的结果是相同的。在这里插入图片描述

3、修改

使用ALTER VIEW语句来修改视图,格式如下:

ALTER VIEW <视图的名称>(列1...AS
SELECT语句
	(WITH CHECK OPTION

例6、将例4中定义的视图v_Employee进行修改,取消对部门编号的要求,并查询该视图。
sql语句:
修改:
USE YGGZ GO ALTER VIEW v_Employee AS SELECT* FROM Employee WHERE Sex='女' WITH CHECK OPTION
查询:
USE YGGZ SELECT * FROM v_Employee
测试结果:
在这里插入图片描述
查询结果:
在这里插入图片描述

4、删除

使用DROP VIEW语句来删除视图,格式如下:

DROP VIEW(表的名称.<视图的名称,...>
/*可使用该语句删除一个或多个视图*/

例7、删除例4中创建的视图v_Employee。
sql语句:
USE YGGZ DROP VIEW v_Employee
测试结果:
在这里插入图片描述

结语

以上就是本次数据库原理与应用的全部内容,感谢您的阅读和支持,若有表述或代码中有不当之处,望指出!您的指出和建议能给作者带来很大的动力!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风(●•σ )

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值