SQL视图操作


前言

关于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语句进行实例操作,操作包括建立视图
多表视图、表达式视图、分组视图。
在视图中插入字段信息,修改信息,删除信息。
在视图查找信息。
以上就是本次查询操作的全部内容,能力不强仅供参考,欢迎大佬指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值