当前位置: 首页 > news >正文

数据库系统概论|第三章:关系数据库标准语言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索引【注意:编写时一定要注明索引所在的表名】

相关文章:

  • Android Framework常见问题
  • 并发设计模式实战系列(9):消息传递(Message Passing)
  • 废品回收小程序:全链路数字化解决方案,赋能绿色未来
  • TDengine 订阅不到数据问题排查
  • unity在编辑器模式调试音频卡顿电流声
  • 10.学习笔记-MyBatisPlus(P105-P110)
  • 水库现代化建设指南-水库运管矩阵管理系统建设方案
  • Android WIFI体系
  • Liunx安装Apache Tomcat
  • 数据一致性巡检总结:基于分桶采样的设计与实现
  • Linux CentOS 7 安装Apache 部署html页面
  • 松下机器人快速入门指南(2025年更新版)
  • python:sklearn 决策树(Decision Tree)
  • 当前HPLC载波无法满足全量数据分钟级采集需求的主要原因
  • 绿色版的notepad++怎么加入到右键菜单里
  • 深挖Java基础之:认识Java(创立空间/先导:Java认识)
  • 【Linux】第十四章 提高命令行效率
  • 使用 OpenCV 实现图像中心旋转
  • Nacos源码—2.Nacos服务注册发现分析三
  • DeepSeek 联手 Word,开启办公开挂模式
  • 朝鲜新型驱逐舰“崔贤”号进行多项武器试验
  • 中国人保聘任田耕为副总裁,此前为工行浙江省分行行长
  • 从咖啡节到话剧、演唱会,上海虹口“文旅商体展”联动促消费
  • 千亿市值光储龙头董事长向母校合肥工业大学捐赠1亿元
  • 央行回应美债波动:单一市场、单一资产变动对我国外储影响总体有限
  • 热点问答|第三轮间接谈判结束,美伊分歧还有多大?