加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL视图操作

发布时间:2022-11-16 20:31:03 所属栏目:MsSql教程 来源:转载
导读: 文章目录
前言
关于sql数据库中的视图操作知识点及实例
建立视图
多表视图
表达式视图
分组视图
插入字段信息
修改信息
删除信息
在视图查找信息
一、视图的概念及作用
视图(View)是由其

文章目录

前言

关于sql数据库中的视图操作知识点及实例

建立视图

多表视图

表达式视图

分组视图

插入字段信息

修改信息

删除信息

在视图查找信息

一、视图的概念及作用

视图(View)是由其他表或视图上查询所定义的一种特殊的表。视图是数据库基本表中的部分行和部分列数据的组合。

视图的作用

视图可以简化定制用户对数据的需求,但是视图定义在基本表上的,对视图的操作最终也都要对转换为对表的操作。实际上合理的使用视图机制能够带来很多好处,

(1)方便用户使用数据。通过视图机制,可将用户感兴趣的数据进行提取,并提供给用户。而且视图的数据不局限于单一的基本表可以来着多个表的连接,并且利用查询条件,筛选出感兴趣的数据。

(2)提供数据的安全性保护机制。在设计应用系统时,可以为不同的用户定制不同的视图,使得机密的数据只会出现在指定用户的视图。例如计算机系的老师查看学生信息时mssql 使用视图,可以只把包含计算机系学生视图提供给他,将其他系的学生信息隐藏起来。

(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 --连接两个表

四、使用的数据库

总结

学习了视图的概念及其定义。以及利用SQL语句进行实例操作,操作包括建立视图

多表视图、表达式视图、分组视图。

在视图中插入字段信息,修改信息,删除信息。

在视图查找信息。

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!