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.课号
这样就可以直接查看视图,查看数据了。
网友评论