目录

  • 前言
  • 一、索引
    • (一)索引的概念
    • (二)索引的分类
    • (三)索引的操作
      • 1、创建
      • 2、查看
      • 2、修改
      • 3、删除
  • 二、视图
    • (一)视图的概念
    • (二)视图的分类
    • (三)视图的操作
      • 1、创建
      • 2、查询
      • 3、修改
      • 4、删除
  • 结语

前言

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

一、索引

(一)索引的概念

索引是与表相关联的存储结构,用于提高表中数据的查询速度,从而加快从数据库中取得所需的数据。索引包含由表中的一列或多列生成的键,以及映射到指定表行的存储位置的指针,这些键存储在一个结构(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)笔记 第五章 索引和视图相关推荐

  1. 传感器原理与检测技术复习笔记第五章-电容式传感器

    第五章 电容式传感器 文章目录 第五章 电容式传感器 电容式传感器工作原理 变面积型电容式传感器 变极距型电容式传感器 变介质型电容式传感器 电容式传感器的测量电路 调频电路 运算放大器 变压器式交流 ...

  2. SQL SERVER 2012 第五章 创建和修改数据表 の CREATE语句

    CREATE <object type> <object name> CREATE DATABASE <database name> 比较完整的语法列表: 日志文件 ...

  3. oracle的优化适用于mysql吗_性能优化之数据库优化,适用于Sqlite、Mysql、Oracle、Sql server,详细介绍了索引和事务及部分针对Sqlite的优化...

    本文为性能优化的第一篇--数据库性能优化,原理适用于大部分数据库包括Sqlite.Mysql.Oracle.Sql server,详细介绍了索引(优缺点.分类.场景.规则)和事务,最后介绍了部分单独针 ...

  4. SQL Server笔记心得(持续更新)

    SQL Server笔记 一.数据库基础 二.企业管理器 三.查询分析器 四.SQL Server 数据管理 五.数据基本查询 六.数据高级查询 七.连接查询 八.查询的实际应用 一.数据库基础 1. ...

  5. 2.SQL SERVER笔记——SQL SERVER系统概念

    2.SQL SERVER笔记--SQL SERVER系统概念 系统数据库 数据库管理员(DBA)的一项基本的技能是对SQL数据库引擎的系统数据库的深刻理解.数据库开发人员了解SQLSERVER自带的系 ...

  6. 把Oracle数据库移植到Microsoft SQL Server 7 0

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 把Ora ...

  7. sql创建计算机用户,2015年计算机四级数据库复习要点:SQL Server 登录账户

    2015年计算机四级数据库复习要点:SQL Server 登录账户 系统内置的登录账户 1. BUILTIN\Administrators:是一个Windows组账户,表示所有的Windows Adm ...

  8. C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)

    C#连接4种类型数据库(Access.SQL Server.Oracle.MySQL) 1.C#连接连接Access using System.Data; using System.Data.OleD ...

  9. mysql数据库的分离_数据库分离和附加 (SQL Server)

    数据库分离和附加 (SQL Server)Database Detach and Attach (SQL Server) 06/30/2020 本文内容 适用于:Applies to: SQL Ser ...

最新文章

  1. iptables 过滤条件(Matches)
  2. 树莓派3B 安装中文输入法谷歌输入法途中碰到的各种问题
  3. Labview 2017安装教程
  4. c语言源程序最多可能由组成,一个C语言源程序由若干函数组成,其中至少应含有一个()。...
  5. 刘兴亮印象中的李开复
  6. 大数据,TB、PB、EB
  7. 在ie中关于ajax请求获得数据缓存问题的解决办法
  8. elementUI中登录页form表单重复跳转登陆页
  9. 如何求地球上两点之间的最短距离_高三数学这样复习“最高效”,稳稳120+!...
  10. PHP 相关 收藏
  11. 好友管理系统 Python
  12. [原创开源项目]EPUBBuilder一款在线的epub电子书编辑工具
  13. vsode 编译报错:main.c:4:10: fatal error: iostream: 没有那个文件或目录
  14. 世界五大著名黑客,你都认识吗?
  15. WebRTC 系列2--双摄像头同时预览
  16. 【FPGA 学习笔记】sof文件和jic文件的区别,程序固化(将sof文件装换位jic文件)
  17. XCOM Enemy Unknown
  18. 线阵相机的线扫描速率的计算方法
  19. 车桥耦合非线性振动运动方程求解
  20. 图像兴趣点检测与描述 的深度学习方法总结

热门文章

  1. 一件重要的事想要告诉大家
  2. Linux 思维导图整理(建议收藏)
  3. 在业务系统中寻求技术含量
  4. 【线上分享】互动协作白板与音视频实时同步技术实践
  5. 鹅厂程序员在家撸码的十大姿势
  6. 腾讯数字生态大会倒计时4天:请收下这份最全的TEG参会攻略~
  7. alias--linux
  8. 游戏通讯技术:帧同步技术
  9. Apollo 2.0发布前 试乘百度L3、L4级自动驾驶汽车
  10. Electron通过ffi调用DLL