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 sc
Where co.课名=’心理学’ 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 as
Select 学号,姓名,所属院系
From student
Where 课名=’软件工程’ and 所属院系=’计算机’
运行语句建立视图:
建立的一个成功的视图vw1
建立视图的语法:
Create view 视图名称[(字段1) (字段2) (字段3)…]
AS
Select 查询语句
[with  check  option]
参数:[with check  option]可选项,防止用户对数据插入、删除、更新是操作了视图范围外的基本表的数据。
删除视图的语法:
Drop view 视图名称

转载于:https://www.cnblogs.com/LiZhongZhongY/p/10754496.html

关于SQL视图的创建和使用方法相关推荐

  1. Oracle中视图的创建和处理方法

    http://www.blogjava.net/caizh2009/articles/287787.html Oracle中视图的创建和处理方法 图是基于一个表或多个表或视图的逻辑表,本身不包含数据, ...

  2. sql视图的创建及作用

    原文链接: https://www.2cto.com/database/201408/326895.html 在一个项目的实际开发过程中牵涉到复杂业务的时候,我们不可避免的需要使用中间表来进行数据连接 ...

  3. sqlsever2019:SQL视图的创建与修改

    一.前言 前面的基础造作我已经讲过用界面方式创建,这里主要是介绍SQL创建. ctrl+s保存: 二.创建视图 创建查询Student数据表中所有记录的视图view2: use db_Test go ...

  4. 阿里云AI训练营-SQL基础3:复杂查询方法-视图、子查询、函数等

    3.1 视图 3.1.1 什么是视图 3.1.2 视图与表有什么区别 3.1.3 为什么会存在视图 3.1.4 如何创建视图 3.1.5 如何修改视图结构 3.1.6 如何更新视图内容 3.1.7 如 ...

  5. 创建视图SQL:在SQL Server中创建视图

    介绍 (Introduction) In this article, we are going to see how to use the CREATE VIEW SQL statement to c ...

  6. SQL service基础(九)用户定义数据类型和用户定义函数的概念、创建及使用方法

    实验目标: 1.学习和掌握用户定义数据类型的概念.创建及使用方法. 2.学习和掌握用户定义函数的概念.创建及使用方法. 创建一个数据库,执行shiyan15.sql脚本 一.创建和使用用户定义的函数( ...

  7. 以“学生”、“成绩”表为数据源,使用 SQL 视图创建一个名为“学生不及格课程数”统计查询,显示字段为:学号、姓名、不及格门数。

    以"学生"."成绩"表为数据源,使用 SQL 视图创建一个名为"学生不 及格课程数"统计查询,显示字段为:学号.姓名.不及格门数.

  8. ORACLE动态sql在存储过程中出现表或视图不存在的解决方法

    ORACLE动态sql在存储过程中出现表或视图不存在的解决方法 CREATE OR REPLACE PROCEDURE P_test is strsql varchar2(2000); BEGIN   ...

  9. SQL数据库语言基础之SqlServer视图的创建、修改与视图数据的增删改查

    文章目录 一.认识视图 二.创建.查询视图 三.修改.删除视图 四.修改视图数据(与操作表一样,只是把table换成view) 一.认识视图 1.视图的理解 从用户角度来看,一个视图是从一个特定的角度 ...

最新文章

  1. 【算法学习笔记】43.动态规划 逆向思维 SJTU OJ 1012 增长率问题
  2. 安徽大学计算机考研是408吗,安徽大学408计算机学科专业基础综合考研复习经验...
  3. python是什么怎么用-python函数是什么,怎么用?【python培训】
  4. DirectX11 With Windows SDK--01 DirectX11初始化
  5. MATLAB double、str、cell间的类型转换
  6. 十二星座职业成功忠告
  7. 12-贝叶斯算法(知识准备)
  8. java 符_java运算符
  9. 最近amd.dll闹的很火
  10. 风力发电机组的基本结构
  11. linux nginx root权限问题,nginx权限问题failed(13:Permission denied)
  12. 自动动态调整广告出价OCPC
  13. 面试角度分析:微信里面让你删掉一个功能,你选哪个?
  14. HP服务器booting embedded lom 1 port 1 hpe ethernet 1gb 4-port 331i adapter处理
  15. python多张图叠加为一张_python实现多张图片拼接成大图
  16. 测绘大地测量乙级资质新申请条件及办理流程
  17. HTML期末大作业~web前端开发个人博客HTML整站模板~Web大学生网页成品 ~个人主页博客网页HTML设计制作...
  18. 密码学基础 上机实验4 ElGamal的Python实现(求解原根)
  19. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05【EC20模组TCP/IP模块AT指令说明】
  20. (转)马邑之战与项目管理

热门文章

  1. 漫画算法:什么是一致性哈希?
  2. 转:马云语录之公司请你来干嘛
  3. Python:操作文件
  4. Linq to objects示例
  5. win bat 输入参数
  6. C# 正则表达式小结
  7. 杭电多校(二)2019.7.24--暑假集训
  8. python入门第二天__练习题
  9. 结对开发----找出“水王
  10. 在你的 Rails App 中开启 ETag 加速页面载入同时节省资源