关于SQL视图的创建和使用方法
来源:互联网 发布:thinkphp5 cms 编辑:程序博客网 时间:2024/05/16 15:46
转自:http://blog.csdn.net/lefter1986/article/details/10981703
SQL视图的创建和使用
视图这个东西在其他的软件中,我们也经常看得到,例如word中就有视图,我们不难发现,视图似乎是一种显示方式,就像WORD一样,有几种显示版面,这就是视图,那么SQL中的视图又该怎么定义呢?今儿我要学习一下,做个笔记。这是在继SQL数据库高级查询和子查询之后的又一个重要内容。
1、什么是视图
视图是一个虚拟的表,是一个表中的数据经过某种筛选后的显示方式,视图由一个预定义的查询select语句组成。
2、视图的特点
视图中的数据并不属于视图本身,而是属于基本的表,对视图可以像表一样进行insert,update,delete操作。
视图不能被修改,表修改或者删除后应该删除视图再重建。
视图的数量没有限制,但是命名不能和视图以及表重复,具有唯一性。
视图可以被嵌套,一个视图中可以嵌套另一个视图。
视图不能索引,不能有相关联的触发器和默认值,sql server不能在视图后使用order by排序。
举例:查询“心理学”考试成绩大于80的学生的“学号”、“姓名”、“所属院系”。
Student(学号,姓名,性别,所属院系)Course(课号,课名,学分)Score(学号,课号,考试成绩,平时成绩)
这需要通过联合查询来解决问题了,参数不足,只得如此,来写一条语句试试:
SELECT st.学号,st.姓名,st.所属院系 FROM student AS st,course AS co,score AS scWHEREco.课名 = ’心理学’ AND sc.考试成绩 > 80 AND st.学号 = sc.学号 AND co.课号 = sc.课号
这条语句看起来很长,有一点点复杂,如果每次都要先写这条语句查询后在对查询的结果操作,就会显得复杂,创建一个视图就能解决这个问题了。
创建视图:
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.课号
这样就可以直接查看视图,查看数据了。
3、视图的功能
1.简化用户操作
2.能以不同的角度观察同一个数据库
3.对重构数据库提供了逻辑独立性:
利用视图将需要的数据合并或者筛选,但是不影响原表的数据和结构
3.对机密数据提供安全保护:
可以建立不同的视图对用不同的用户,以达到安全的目的。
建立一个表如图所示:
SQL SERVER 学生表 student
建立一个视图,实验一下:
Create view vw1 asSelect 学号,姓名,所属院系From studentWhere 课名=’软件工程’ and 所属院系=’计算机’
运行语句建立视图:
建立的一个成功的视图vw1
建立视图的语法:
Create view 视图名称 [(字段1) (字段2) (字段3)…]ASSelect 查询语句[with check option]参数:[with check option]可选项,防止用户对数据插入、删除、更新是操作了视图范围外的基本表的数据。
删除视图的语法:
Drop view 视图名称
- 关于SQL视图的创建和使用方法
- 关于SQL视图的创建和使用方法
- 关于SQL视图的创建和使用方法
- 关于SQL视图的创建和使用方法
- SQL视图的创建和使用
- SQL视图的创建和使用
- 关于SE54视图簇的创建和维护
- 创建procedure (SQL存储过程的介绍, 建立和使用方法)
- 视图的创建和销毁
- 视图的创建和使用
- 数据库sql经验--视图的创建实例
- 十八. Sql server视图的创建
- 突破MySQL视图限制:获取创建视图的SQL语句
- 关于level创建不同行数的使用方法
- SQL入门:创建视图
- SQL Server创建视图
- SQL Server 视图创建
- SQL Server创建视图
- Android adb调试命令集合
- Android 官方框架DataBinding学习笔记
- hdu 5040 Instrusive(BFS)
- HRBUST
- UE4之蒙太奇
- 关于SQL视图的创建和使用方法
- http://blog.csdn.net/guolin_blog/article/details/17482095/
- Java中那些熟悉又模糊的下标
- android app性能优化大汇总(内存性能优化)
- 【2017沈阳网络赛】1012 hdu6205 card card card 贪心
- 2017第24届中国中西部湖南(长沙)医疗器械展览会会刊(参展商名录)
- 快捷键
- DataBinding的使用——换肤方案的实现
- 浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题