美文网首页
sql-视图

sql-视图

作者: onnoA | 来源:发表于2020-08-08 14:33 被阅读0次

1,什么是视图

视图(view)是一种虚拟的表,并不在数据库中实际存在。通俗的来说,视图就是执行select语句后返回的结果。

2,为什么要使用视图

1.简单==>>对于数据库的用户来说,很多时候,需要的关键信息是来自多张复杂关联表的。这时用户就不得不使用十分复杂的SQL语句进行查询,给用户造成极差的体验感。使用视图之后,可以极大的简化操作,使用视图的用户不需要关心相应表的结构、关联条件等。对于用户来说,视图就是他们想要查询的结果集。
  
  2.安全==>>使用视图的用户只能访问被允许查询的结果,使用视图可以限制用户访问一些敏感信息列。

3.视图的特点。

  • 视图中的数据并不属于视图本身,而是属于基本的表,对视图可以像表一样进行insert,update,delete操作。
  • 视图不能被修改,表修改或者删除后应该删除视图再重建。
  • 视图的数量没有限制,但是命名不能和视图以及表重复,具有唯一性。
  • 视图可以被嵌套,一个视图中可以嵌套另一个视图。
  • 视图不能索引,不能有相关联的触发器和默认值,sql server不能在视图后使用order by排序。

举例:查询“心理学”考试成绩大于80的学生的“学号”、“姓名”、“所属院系”。
Student(学号,姓名,性别,所属院系)
Course(课号,课名,学分)
Score(学号,课号,考试成绩,平时成绩)
这需要通过联合查询来解决问题了,参数不足,只得如此,来写一条语句试试:
Select st.学号,st.姓名,st.所属院系 from student as st,course as co,score as sc
Where co.课名=’心理学’ and sc.考试成绩>80 and st.学号=sc.学号 and co.课号=sc.课号
这条语句看起来很长,有一点点复杂,如果每次都要先写这条语句查询后在对查询的结果操作,就会显得复杂,创建一个视图就能解决这个问题了。

4.使用视图的小案例

3.1 根据表来创建相应的视图
创建视图:
    Create view vw1 as
    Select st.学号,st.姓名,st.所属院系 from student as st,course as co,score as sc
    Where co.课名=’心理学’ and sc.考试成绩>80 and st.学号=sc.学号 and co.课号=sc.课号
    这样就可以直接查看视图,查看数据了。

相关文章

  • sql-视图

    1,什么是视图 视图(view)是一种虚拟的表,并不在数据库中实际存在。通俗的来说,视图就是执行select语句后...

  • SQL-视图

    视图本质就是对查询的封装。 create view 视图名称 as select语句; (其实存储过程也是对查询的...

  • SQL-视图(15)

    1.含义: 2.视图和表的区别: 3.视图的好处: 一.视图的创建 案例:创建一个视图emp_v1,要求查询部门的...

  • 一、数据库之SQL语句

    一、SQL创表 二、SQL-插入 三、SQL-修改 四、SQL-删除 五、SQL-查询 以上是SQL语句常用的用法...

  • sql

    sql-基础sql-基础查询-1sql-基础查询-2sql-更新 概览 数据库(Database,DB):将大量数...

  • sql-将日期转换为YYYYMM格式 几种方式

    sql-将日期转换为YYYYMM格式SELECT CONVERT(nvarchar(6), GETDATE(), ...

  • oracle 常用查询语言

    SQL- Data Query Language 1. select 2. where 3. distinct 4...

  • Ubuntu下mysql的常用命令,MySQL数据库的基本操作命

    一、mysql服务操作 0.0 进入mysql $mysql -uroot -p 0、查看数据库版本 sql-> ...

  • mybatis动态SQL

    动态 SQL-参考链接有兴趣深究的可以去查看mybatis-3-mapper.dtd这个文件。http://myb...

  • SQL-本年

    select dateadd(qq, datediff(qq,0,getdate()), 0) select DA...

网友评论

      本文标题:sql-视图

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