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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 数据库原理与应用(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。

1667022243659.jpg


2、查看


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

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


例2、查看上例1的所建索引IX_Salay的属性。

sql语句:


USE YGGZ EXEC sp_helpindex Salay

测试结果:

1667022289645.jpg


3、修改


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

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


4、删除


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

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


例3、删除例1所创建的索引。

sql语句:

USE YGGZ DROP INDEX IX_Salay ON Salay

测试结果:

1667022356383.jpg


二、视图


(一)视图的概念


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


(二)视图的分类


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


(三)视图的操作


接下来将会从视图的创建、视图的查询、视图的修改以及视图的删除来分别介绍视图的具体操作。(也是可使用图形界面方式和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的所有女员工。

1667023507701.jpg

sql语句:

USE YGGZ GO CREATE VIEW v_Employee AS SELECT* FROM Employee WHERE Sex='女' AND DeptNo='102' WITH CHECK OPTION

测试结果:

1667023521800.jpg


2、查询


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


例5、查询例4中所创建的视图v_Employee。

sql语句:

USE YGGZ SELECT * FROM v_Employee

测试结果:

1667023542011.jpg

与查询的结果是相同的。

1667023551346.jpg

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

测试结果:

1667023672050.jpg

查询结果:

1667023680251.jpg


4、删除


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

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


例7、删除例4中创建的视图v_Employee。

sql语句:

USE YGGZ DROP VIEW v_Employee

测试结果:

1667023707422.jpg


结语


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


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
12天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
62 6
|
2月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
88 11
|
2月前
|
存储 缓存 数据库
数据库索引采用B+树不采用B树的原因?
B+树优化了数据存储和查询效率,数据仅存于叶子节点,便于区间查询和遍历,磁盘读写成本低,查询效率稳定,特别适合数据库索引及范围查询。
49 6
|
2月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
2月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
3月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
5月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
7月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
169 13
|
7月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。