关于SQL视图的创建和使用方法
2017-11-22 18:10
429 查看
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 scWhere co.课名=’心理学’ and sc.考试成绩>80 and st.学号=sc.学号 and co.课号=sc.课号这条语句看起来很长,有一点点复杂,如果每次都要先写这条语句查询后在对查询的结果操作,就会显得复杂,创建一个视图就能解决这个问题了。 创建视图:Create view vw1 asSelect st.学号,st.姓名,st.所属院系 from student as st,course as co,score as scWhere 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 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视图的创建和使用方法
- 使用静态工厂方法创建连接池(关于代理和包装的使用)
- 关于oracle和sqlserver中创建uuid的方法以及级联查询的使用
- 关于git中使用gitignore创建过滤规则的使用方法
- 关于MAC上使用pycharm进行创建project的方法
- 关于VC60中创建MFC工程时, 使用了UNICODE选项后编译报错的解决方法
- 关于serialPort控件的使用跟INI文件的创建,读取,写入方法
- 关于level创建不同行数的使用方法
- POJ1007 关于STL排序方法 动态数组的创建 和向量的使用
- 关于使用CreateUserWinzard控件创建用户时出现连接数据库问题的解决方法
- 关于本地yum源的创建方法和使用
- C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码
- 使用 PHP 5.0创建图形的巧妙方法(四)
- 使用 PHP 5.0创建图形的巧妙方法(三)
- 关于使用VS.Net2003调试器出现的问题及相关解决方法
- 关于使用ASP.NE 1.1发送电子邮件时出现的 未能访问“CDO.Message”对象 的错误的解决方法
- 关于struts之ActionForm使用方法
- 使用 PHP 5.0创建图形的巧妙方法(二)