SQL干货篇三

作者: 爱撒谎的男孩 | 来源:发表于2017-04-16 22:41 被阅读28次

SQL干货篇三

创建视图

  • create view <视图名>[(列名),(列名)...] as <子查询> [with check option]
  • 子查询可以是select语句或者包含order by子句,具体情况而定,视图名是一定要有的,列名可以省略,如果省略的话则是由子查询中的目标列的相关字段组成,当然也可以自己指定,with check option表示如果视图或者参照表执行insert,update,delete时,那么视图或者参照表会随着变化,也就是两个绑定在一起的意思,当然也可以选择不用,那么视图的增删改就和参照表没有关系了

实例

建立在一个表上

create view IS_student as select Sno,Sname,Sage where Sdept='IS'
with check option ;   /*将所有的IS系的学生学号建立一个视图IS_student,其中的列名是Sno,Sname,Sage*/

建立在多个表上

create view IS_Grade(Sno,Sname,Grade) 
as select student.Sno,Sname,Grade from student,SC
where Sdept='IS' and student.Sno=SC.Sno;           /*建立在两个表上的视图,可以看出这里已经指出指定的列名,但是这个列名并不是固定的,可以根据具体的含义来指定*/

定义一个带有表达式的视图

create view BT_S(Sno,Sname,Sbirth) 
as select Sno,Sname,2014-Sage from student    /*这里的2014-Sage是用来计算出生日期的*/
with check option;

聚集函数的视图

create view BT(Sno,Gavg) 
as select Sno,AVG(Grade) from SC Group by Sno;  /*这里的AVG(Grade)是用来计算平均成绩的,Group by是用来根据学号分组,这里就是求同一个人的多门学科的平均成绩*/

删除视图

  • Drop view <视图名><CASCADE],这里的CASCADE表示如果还导出了其他的视图,那么加上CASCADE就会全部删除

实例

  • Drop view IS_Sdept; 删除视图
  • Drop view IS_Sdept CASCADE; 删除视图和其导出视图

查询视图

查询视图和查询表是一样的,请参照我前两章讲的SQL语法

更新视图

视图的更新包括insert,delete,update,这个和基本表的操作是一样的

注意:

  • 并不是所有的视图都可以更新的,比如上面根据学生多科平均成绩建立的视图,这里如果将视图中的平均成绩更新了,那么参照表的数据就不能对应的更新了,这就会不允许更新,当然这是在添加了with check option语句的情况下
  • 如果添加了with check option语句,那么对视图的更新就会对应转换成对基本表的更新
  • 各个系统对视图的更新还有进一步的规定,比如DB2规定:
  • 如果视图是由两个以上的基本表导出,那么就不可以更新
  • 如果视图来自字段或者表达式,那么就不允许对此视图执行insert,update,但是可以执行delete
  • 如果定义中有order by子句,那么不可以更新视图

更多的文章请看本人的博客

相关文章

  • SQL干货篇三

    SQL干货篇三 创建视图 create view <视图名>[(列名),(列名)...] as <子查询> [wi...

  • SQL逻辑查询语句执行顺序

    在学习sql的过程中发现一篇简洁有力的描述sql语句执行顺序干货文章,特此在此做个笔记记录一下文章重点用来复习。原...

  • SQL干货篇之查询数据

    单表查询 只在一个表中查询数据 多表查询 同时查询多个表 说明:这是在学生表student和成绩表SC中查询成绩大...

  • 职场干货,少走弯路】如何用战略性思维,制定自己的职业规划(下)

    注意了!!!本文是一篇干货,是一篇干货,是一篇干货,重要的话说三遍,希望大家要么不读,要读就仔细阅读,一定非常有帮...

  • Transact-SQL

    1. SQL语言 详见上一篇简书SQL基础知识 2. T-SQL语言概述 提供了标准的SQL命令提供类似C等第三代...

  • 科目三干货篇

    下周三是我第三次考科三,希望事不过三,抱着驾照回家。 科三又叫路考,考的项目不多,比较容易,也比较容易挂。第一次考...

  • 干货 | 常见鸟类野外识别——鸻鹬篇(下)

    经过前面《干货 | 常见鸟类野外识别——基础篇》、《干货 | 常见鸟类野外识别——进阶篇》、《干货 | 常见鸟类野...

  • Sharding-Jdbc与MyCat区别

    上一篇 << >> 相同点:a、设计理念相同,主流程都是SQL解析-->SQL路由-->SQL改写-->SQL还行...

  • 干货 | 常见鸟类野外识别——鸻鹬篇(上)

    经过前面《干货 | 常见鸟类野外识别——基础篇》、《干货 | 常见鸟类野外识别——进阶篇》和《干货 | 常见鸟类野...

  • 杂想记

    下班之后,码字之前,心里有点烦躁,因为想码一篇关于“助推”的干货文。但这个点,时间已经不够。一篇干货文,起码得近三...

网友评论

    本文标题:SQL干货篇三

    本文链接:https://www.haomeiwen.com/subject/zedzattx.html