数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记7

前言

在前面文章的介绍中,已经介绍了数据定义、数据更新、数据查询,关于SQL语句的标准语言已经基本上介绍完毕,本文接下来将介绍另外两种便于操作的操作模式——视图与索引。其大致的语句代码与前文其实并无大的区别,在了解基本语句之外,还应该了解视图与索引所发挥的作用,这也十分重要。

本文结束之后,关于SQL的基本语言已经全部介绍完毕,大家可以进行简单的系统整理哦

注:本文中所涉及的数据库前文中已经介绍(指路:数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记1

一、视图的特点

  • 视图是虚表,是从一个或几个基本表(或视图)导出的表。
  • 视图只存放视图的定义,不存放视图对应的数据
  • 基表中的数据发生变化,从视图中查询出的数据也随之改变。

【视图更像是一个数据窗口,仅仅去了解我们需要了解的数据而已】

二、视图的基本操作

1.建立视图

 建立视图需要运用CREATE VIEW语句,同时后面加视图的名字,AS后面增加子查询的相关操作与语句

CREATE VIEW V_Student
AS
SELECT Student.*, Cno, Grade
FROM Student, SC
WHERE Student.Sno = SC.Sno

上述代码建立了一个学生成绩视图,该视图的名字叫作V_Student,AS后面增加子查询子查询中使用了多表连接,将Student表与SC表通过Sno进行了连接。

CREATE VIEW V_AVG_Grade
AS
SELECT Sno, CONVERT(Decimal(5,2),AVG(CONVERT(Decimal(5,2),Grade))) AS AVG_Grade 
FROM SC
GROUP BY Sno

 上述代码建立了一个学生平均成绩视图,该视图的名字叫作V_AVG_Grade,AS后面增加子查询,子查询中较为复杂,利用聚集函数AVG求出了平均成绩,并利用GROUP BY语句将每个学生进行分组,以方便求取每个学生的平均成绩,同时运用了CONVERT函数转换数据类型,将平均成绩保留位两位小数。

【注:组成视图的属性列名必须全部省略或者全部点明,这便是AS AVG_Grade出现的意义】

2.删除视图

删除视图的语句较为简单,直接使用DROP语句即可

DROP VIEW V_AVG_Grade

上述代码即为删除视图V_AVG_Grade

3.查询视图

查询视图的语句与查询表的语句基本上一样,同样使用SELECTWHERE语句

SELECT Grade 
FROM V_Student  
WHERE Sname ='李勇' AND Cname = '数据库'

上述代码即为查找视图V_Student中利用同学的数据库课程的成绩

三、视图的作用

1. 视图能够简化用户的操作

2. 视图使用户能以多种角度看待同一数据,

3. 视图对重构数据库提供了一定程度的逻辑独立性

4. 视图能够对机密数据提供安全保护

5. 适当的利用视图可以更清晰的表达查询

四、索引概述

建立索引的目的其实很简单,就是为了加快查询速度,索引能够快速定位到需要查询的内容。

索引的作用

  • 使用索引可以明显地加快数据查询的速度
  • 使用索引可以保证数据的惟一性
  • 使用索引可以加快连接速度

五、索引的基本操作

1.建立索引

建立索引的基本语句还是CREATE语句,但是在建立索引的过程中,可以分别建立UNIQUE唯一索引(表示此索引的每一个索引值只对应唯一的数据记录)CLUSTER聚簇索引(一个基本表中最多只能建立一个聚簇索引)

CREATE UNIQUE INDEX  Stusno ON Student(Sno)

CREATE UNIQUE INDEX  Coucno ON Course(Cno)

CREATE UNIQUE INDEX  SCno ON SC(Sno ASC, Cno DESC)

上述三行代码分别建立了三个表的索引:

CREATE UNIQUE INDEX代表着建立唯一索引,后面接索引的名字(如Stusno),ON后面连接表名以及括号内的属性列名

  • Student表按学号升序建立唯一索引
  • Course表按课程号升序建立唯一索引
  • SC表按学号升序和课程号降序建立唯一索引

2.删除索引

删除索引的基本语句还是利用DROP语句

DROP INDEX Student.Stusno

上述代码代表删除Student表中的Stusno索引【注意:编写时一定要注明索引所在的表名】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值