前言
关于sql数据库中的视图操作知识点及实例
建立视图
多表视图
表达式视图
分组视图
插入字段信息
修改信息
删除信息
在视图查找信息
一、视图的概念及作用
视图(View)是由其他表或视图上查询所定义的一种特殊的表。视图是数据库基本表中的部分行和部分列数据的组合。
视图的作用
视图可以简化定制用户对数据的需求,但是视图定义在基本表上的,对视图的操作最终也都要对转换为对表的操作。实际上合理的使用视图机制能够带来很多好处,
(1)方便用户使用数据。通过视图机制,可将用户感兴趣的数据进行提取,并提供给用户。而且视图的数据不局限于单一的基本表可以来着多个表的连接,并且利用查询条件,筛选出感兴趣的数据。
(2)提供数据的安全性保护机制。在设计应用系统时,可以为不同的用户定制不同的视图,使得机密的数据只会出现在指定用户的视图。例如计算机系的老师查看学生信息时,可以只把包含计算机系学生视图提供给他,将其他系的学生信息隐藏起来。
(3)视图使用户能以多种角度看待同一数据,当许多不同种类的用户共享同一个数据库时,这种灵活性是非常有必要的。
(4)视图为数据提供了一定的逻辑独立性。视图对应的就是外模式,用户程序通过视图访问数据库。当数据库的逻辑结构发生改变时,只需要修改视图的定义,即可保证用户的外模式不变,对应的应用程序也不需要修改
二、定义视图
SQL语句使用CREATE VIEW 命令定义视图,具体语法格式如下
CREATE VIEW<视图名>[(<列名>[列名])]
AS<子查询>
[WITH CHECK OPTION]
其中,列名可以全部指定或者全部省略。如果全部省略,意味着该视图由子查询中的select语句目标列中的诸字段构成。
子查询可以是任意的select语句,但是不允许使用DISTINCT短语和ORDER BY子句。如果要排序,可以在视图定义后对视图查询时再排序。
三、例题与代码
注意代码段要选取执行。例
在选取了代码段再点执行
在对象资源管理器右键点击视图>点击显示前两百行可以查看视图
(1)建立信息系学生视图 ST1。(单表视图)
Create view ST1 --建立视图
AS
select Sno,Sname,stud_age,stud_sex
from Student
where Dno='D01'
(2)建立信息系选修了 C02 课程的学生视图 ST2,包括学号、姓名、成绩。(多表视图)
Create view ST2
AS
select student.Sno,Sname,grade
from Student,SC --多表
where Dno='D01'and Cno='C2'
(3)建立信息系选修了 C02 课程且成绩不及格的学生视图 ST3。(基于视图的视图)
Create view ST3
AS
select Sno,Sname,grade
from ST2 --在视图中建立视图
where Grade>=60
(4)定义一个反映学生出生年份的视图 ST4。(表达式视图)
Create view ST4
AS
select Stud_age,出生年份=(2022-stud_age)
from Student
(5)将学生的学号及其总成绩定义为视图 ST5。(分组视图)
Create view ST5
as
select Sno,总成绩=sum(Grade) --成绩求和
from SC
group by Sno
(6)向信息系学生视图 ST1 中插入一个新的学生记录,其中学号为“20220104”,姓名
为 “赵明明”,年龄 20 岁。
insert into ST1
values('20220104','赵明明','20','男') --要根据视图的顺序属性填写
视图中不能有空值,有空值不显示
(7)将信息系学生视图 ST1 中学号为“20220104”的学生姓名改为“赵小明”。
update ST1
set Sname='赵小明'
where Sno='20220104'
(8)删除信息系学生视图 ST1 中学号为“20220104”的学生记录。
delete
from ST1
where Sno='20220104'
(9)在信息系学生视图 ST1 中找出所有女生的信息。
select*
from ST1
where stud_sex='女'
(10)查询信息系选修了 C01 课程的学生。
select ST1.Sno,Sname
from ST1,SC
where Cno='C1'and ST1.Sno=SC.Sno --连接两个表
四、使用的数据库
https://download.csdn.net/download/Adrian_Lamo/86792766
总结
学习了视图的概念及其定义。以及利用SQL语句进行实例操作,操作包括建立视图
多表视图、表达式视图、分组视图。
在视图中插入字段信息,修改信息,删除信息。
在视图查找信息。
以上就是本次查询操作的全部内容,能力不强仅供参考,欢迎大佬指正。