数据库原理与应用(SQL Server)笔记 第五章 索引和视图
Posted 晚风(●•σ )
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库原理与应用(SQL Server)笔记 第五章 索引和视图相关的知识,希望对你有一定的参考价值。
前言
本次内容,我们主要掌握数据库的索引和视图,主要介绍索引和视图的概念、索引和视图的操作。
一、索引
(一)索引的概念
索引是与表相关联的存储结构,用于提高表中数据的查询速度,从而加快从数据库中取得所需的数据。索引包含由表中的一列或多列生成的键,以及映射到指定表行的存储位置的指针,这些键存储在一个结构(B树)中,使得快速查找与键值关联的行。在建立索引后,不仅可以加快数据查询,还可以加快排序和分组操作等等。
(二)索引的分类
1、根据结构,可分类为聚集索引
和非聚集索引
。聚集索引中索引的顺序决定数据表中记录行的顺序,每个表中只能有一个聚集索引,其正文内容本身按照一定规则排列的目录;非聚集索引中索引的结构独立于数据行的结构,一个表中可以有多个非聚集索引,其正文内容纯粹是正文的排序方式。
2、根据实现的功能,可分类为唯一性索引
和非唯一性索引
。唯一性即要求组成该索引的字段在表中有唯一值。
(三)索引的操作
接下来将会从索引的创建、索引的查看、索引的修改以及索引的删除来分别介绍索引的具体操作。(可使用图形界面方式和T-SQL语句实现操作,以下皆通过T-SQL语句实现。)
1、创建
使用CREATE INDEX
语句来创建索引,格式如下:
CREATE (UNIQUE)/(CLUSTERED / NONCLUSTERED)INDEX <索引的名称>
/*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
测试结果:
结语
以上就是本次数据库原理与应用的全部内容,感谢您的阅读和支持,若有表述或代码中有不当之处,望指出!您的指出和建议能给作者带来很大的动力!!!
以上是关于数据库原理与应用(SQL Server)笔记 第五章 索引和视图的主要内容,如果未能解决你的问题,请参考以下文章
数据库原理与应用(SQL Server)笔记 流程控制语句系统内置函数
数据库原理与应用(SQL Server)笔记 第十章 用户定义函数
数据库原理与应用(SQL Server)笔记 第三章 连接查询
数据库原理与应用(SQL Server)笔记 第十一章 游标