SQL视图

原创 2018年04月15日 14:20:01

视图创建

CREATVIEW 视图名 列名

AS 子查询

[WITHCHECK OPTION]

[WITH CHECK OPTION]:

当用视图进行UPDATE\INSERT\DELETE 进行更新、插入、删除时的行需要满足子查询

子查询可以是任意SELECT语句

视图的属性列名可以全部省略或指定

1.全部省略的话由子查询中SELECT中列的诸字段组成。

2.明确指定试图的所有列名的话:

某个目标列是聚集函数或列表达式

多表连接时选出几个同名列作为视图的字段

需要在视图中为某个列启用新的更适合的名字

关系数据库管理系统执行CREATE VIEW语句中,只是将视图存入字典,不执行SELECT语句。

行列子集视图:从一个表中导出,但是只保留了一些行一些列。比如IS_Student为行列子集视图。

CREATEVIEW IS_Student

AS

SELECTSno,Sname,Sage

FROMStudent

WHERESdept= ‘IS’

WITHCHECK POTION  插入、删除、更新数据时都只能是IS系的学生

 

建立信息系选修了1号课程的学生的视图

CREATEVIEW IS_S1 (Sno,Sname,Grade)

AS

SELECTStudent.Sno,Sname,Grade

FROMStudent,SC

WHERESdept=’IS’AND

      Student.Sno=SC.Sno AND

      SC.Cno=’1’

基于视图的视图:求建立信息系选修了1号课程的学生,且成绩大于90的学生

CREATEVIEW IS_S2

AS

SELECT Sno,Sname,Grade

FROMIS_S1

WHEREGrade>=90

基于表达式的视图:

分组视图:

将学生的学号和平均成绩定义为一个视图

CREATEVIEW S_G(Sno,Grade)

AS

SELECTSno,(AVG)Grade

FROMSC

GROUPBY Sno

视图定义时不建议用*,防止来源表发生改变,视图不能一致。

视图删除:DROP VIEW 视图名[CASCADE]

CASCADE可选,可以将该视图导出的所有视图一并删除。

查询视图 

用户角度:查询视图与查询基本表相同

数据库管理系统:视图消解法:有效检查、转化等价基本表、修正后查询

SELECTSno,Sage

FROMIS_Student

WHERESage<20

 

转化为: SELECTSno,Sage

         FROM Student

         WHERE Sdept=’IS’ AND Sage<20

 

视图消解法也有局限性,不能生成新的视图

SELECT*

FROMS_G

WHEREGavg>=90

 

SELECTSno,AVG(Grade)

FROMSC

GROUPBY Sno

HAVINGAVG(Grade)>=90

 

SELECT*

FROM(SELECT Sno,AVG(Grade)

FROMSC

GROUPBY Sno) AS S_G(Sno,Gavg)

WHEREGavg>=90

更新视图

将信息系学生视图IS_         Student中学号201215122的学生姓名改为“刘辰“

UPDATEIS_Student

SETSname=’刘辰‘

WHERESno=’201215122’

 

UPDATEStudent

SETSname=’刘辰‘

WHERESno=’201215122’ AND Sdept=’IS’

插入视图

INSERT

INTOIS_Student

VALUES(‘201215122’,’赵新’,20,’IS’)

删除201215122

DELEAT

FROMIS_Student

WHERESno=’201215129’

一些视图是不能更新的,因为对视图的更新不能唯一地有意义地转换成对基本表的更新。比如平均成绩不能更新。行列子集视图进行更新。不能更新的视图定义的视图也不能更新。

 

 

 

SQL创建视图

1、视图的理解 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据 。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表 。从数据库系统内部来看,视图是由一张或多张...
  • LN_Prince_AngellLove
  • LN_Prince_AngellLove
  • 2017-12-05 09:18:18
  • 2836

SQL-使用视图

什么是视图?它们怎样工作?何时使用它们?如何利用视图简化执行的某些SQL操作?1. 使用视图的原因 A. 重用SQL语句。 B. 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知...
  • beauty_1991
  • beauty_1991
  • 2016-04-19 16:40:33
  • 8126

SQL视图查询详解

T-SQL查询进阶--深入浅出视图 简介        视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实...
  • KH717586350
  • KH717586350
  • 2015-12-25 19:48:53
  • 1203

with 视图名 as (query sql) 临时视图

with e as (select * from emp) select * from e;   创建一个查询时 一次性的 临时视图 e 只在本次查询中有效...
  • weixin_36707770
  • weixin_36707770
  • 2016-11-16 15:26:39
  • 792

关于SQL视图的创建和使用方法

SQL视图的创建和使用 视图这个东西在其他的软件中,我们也经常看得到,例如word中就有视图,我们不难发现,视图似乎是一种显示方式,就像WORD一样,有几种显示版面,这就是视图,那么SQL中的视图又...
  • lefter1986
  • lefter1986
  • 2013-09-03 14:29:16
  • 52067

SQL使用视图的优缺点

视图是为了查询方便!也就是多个表的总结!但是不能对视图增删改! 在做数据库开发中使用视图的优点有: 1.视图的好处就是在你做复杂的查询逻辑时可以简化你的思考过程。 2.用视图可以隐藏一定的信息,...
  • z13615480737
  • z13615480737
  • 2017-03-27 17:45:47
  • 2984

SQL server视图的介绍,创建与使用

视图 视图是一种虚拟表,来自一个或者多个表的行或者列,视图并不是数据库中存储的数据值,可以简单的理解视图就是封装了一段查询语句,调用该视图就得到查询语句查询出来的临时表. --------------...
  • miniduhua
  • miniduhua
  • 2016-08-03 11:43:36
  • 11149

SQL Server2008 学习之(六) :视图的创建、修改等基本操作

前面几篇博客对数据表的创建,修改等操作进行了分析。数据表中为了避免冗余,只存储最基本的信息,例如身高、体重、年龄等。如果想查看一个人的所有信息,可能要涉及多个数据表(比如有3个数据表分别储存身高、体重...
  • s1314_JHC
  • s1314_JHC
  • 2017-11-16 20:15:04
  • 2228

细说Sql Server中的视图(上)(更新)

1,什么是视图?             2,为什么要用视图;             3,视图中的ORDER BY;             4,刷新视图;         ...
  • zyqviolet
  • zyqviolet
  • 2014-03-26 16:33:54
  • 1257

SQLServer--使用T-SQL语句创建视图、删除视图、查看视图

使用T-SQL语句操作视图提示:只能查看,删除,创建视图,不能对数据进行增,删,改操作。use StuManageDB go --判断视图是否存在 if exists(Select * from sy...
  • qq_36482772
  • qq_36482772
  • 2017-08-31 01:31:36
  • 2376
收藏助手
不良信息举报
您举报文章:SQL视图
举报原因:
原因补充:

(最多只允许输入30个字)