• 我的电脑系统:Windows 10 64位
  • SQL Server 软件版本: SQL Server 2014 Express

本篇博客里面使用了 scott 库,如何你现在还没有添加这个库到你的服务器里面,请在查看本篇博客前,访问这篇博文来在你的服务器里面附加scott库。


为什么需要视图

以一个例子为例:

求出平均工资最高的部门的编号和部门的平均工资。

--使用我们目前所知道的方法去编写查询代码。
select *from (select deptno, avg(sal) "avg_sal"from empgroup by deptno) "T"where "T"."avg_sal" = (select max("E"."avg_sal") from (select deptno, avg(sal) "avg_sal"from empgroup by deptno) "E")

上面的查询代码中,有下面的一段代码,这段代码是创建一个临时表。我们可以将这个临时表创建为一个视图:

        select deptno, avg(sal) "avg_sal"from empgroup by deptno

创建了一个视图:

create view v$_emp_1
asselect deptno, avg(sal) "avg_sal"from empgroup by deptno

输出这个视图中的数据信息:

select * from v$_emp_1

下面的代码的输出同上面使用目前所知道的方法去编写查询代码

select * from v$_emp_1where avg_sal = (select max(avg_sal) from v$_emp_1)

总结: 视图的优点是可以简化查询代码。(简化查询)。即避免了代码的冗余;避免了属性大量重复的sql语法。


什么是视图

  • 视图从代码上看视图是一个select语句。
  • 视图从逻辑上被当做一个虚拟表看待。

如何创建视图

视图的格式

create view 视图的名字as--select的前面不能添加beginselect--select的后面不能添加end

视图的优点

  1. 视图的优点是可以简化查询代码。
  2. 增加数据的保密性
--屏蔽了入职日期和员工工资 这两个属性。
create view v$_emp2
asselect empno, ename, job, mgr, comm, deptno from emp

视图的缺点

  1. 增加了数据库维护的成本。

    • 原表里面的属性被改了,那么视图就会报错。
  2. 视图只是简化了查询的代码,但是并不能加快查询的速度,这也是视图使用不足的地方。

使用视图要注意的三个问题

1 . 创建视图的select语句必须得为所有的计算列指定别名

--error
create view v$_a
asselect avg(sal) from emp;
--ok
create view v$_a
asselect avg(sal) as "avg_sal" from emp;

2 . 视图不是物理表,而是虚拟表

3 . 不建议通过视图更新视图所依赖的原始表的数据和结果。(因为很麻烦,有许多语法的限制。)


请访问:http://www.aobosir.com/

SQL 数据库 学习 033 视图相关推荐

  1. SQL数据库学习-简单查询

    SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来 ...

  2. SQL 数据库学习04 ADB.NET

    文章目录 ADO.NET 数据库连接示例 构造连接字符串的其他方法 SqlConnectionStringBuilder/读取配置文件 Try...catch/Using 连接池 执行命令,增删改查 ...

  3. 下面为初学者分享一下SQL 数据库学习资料

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  4. SQL 数据库 学习 003 什么是数据库? 为什么需要数据库?是不是所有的软件都是用Sql Server?

    什么是数据库? 为什么需要数据库? 是不是所有的软件都是用Sql Server? 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Exp ...

  5. SQL数据库学习之路(九)

    目录 数据库创建补充: 为数据库用户赋予权限 在数据库表中使用视图进行添加修改 数据库创建补充: 以文本格式显示自己创建的数据库表                                    ...

  6. SQL 数据库 学习 011 关系、一对一、一对多、多对多

    我的电脑系统:Windows 10 64位 SQL Server 软件版本: SQL Server 2014 Express 什么是关系 定义: 表和表之间的联系. 实现方式: 通过设置不同形式的外键 ...

  7. SQL 数据库 学习 017 查询-00 介绍 scott 例子库

    我的电脑系统:Windows 10 64位 SQL Server 软件版本: SQL Server 2014 Express 我们要查数据,总先得有数据要查吧,所以我们需要先找一个例子库.Orale软 ...

  8. mysql5.7 实体视图_MYSQL数据库学习七 视图的操作

    7.1 视图 视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务.提高了数据库中数据的安全性. 视图的特点如下: 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系. 视图是由基 ...

  9. SQL数据库学习之路(五)

    一.查询 1.为表起别名as. select *from ClassId as id  --选择ClassId 表,起别名为id(一般因为原来名字太长所以起短一点的别名) 2.查询全部列,指定列.为列 ...

  10. 局域网访问mysql失败_连接局域网sql数据库服务器失败

    SQL数据库学习之路(八) 数据库介绍: 在网页上的主程序中进行注册操作,然后把数据发送给人,人传递这些数据到数据库当中. 为什么学ADO.NET:之前我们所学的只能在查询分析器中查看数据,操作数据. ...

最新文章

  1. Rancher 1.5全面发布!
  2. PWN学习总结(四)—— BROP
  3. php3.23,MySQL 3.23.40 又发布了-PHP教程,PHP基础
  4. Sqlite 管理工具收藏
  5. H3C交换机设置DHCP中继,配合Linux 服务器为多VLAN提供DHCP地址分配服务
  6. 视频描述(Video Captioning)调研
  7. 电脑屏保海底世界_电脑游戏假面骑士kiva中文版
  8. 羿的后人证明上古历史不是神话
  9. 采用计算机发布调度命令时 必须严格遵守,关于调度命令规范格式.doc
  10. ecu故障现象_分析及检修汽车ECU常见故障
  11. CSS-Cascading Style Sheet_层叠样式表_用法详解
  12. 如何学习 C++ 如何学习一门较复杂的编程语言 【转】
  13. rtx腾讯通环境配置
  14. 电脑鸿蒙系统怎么连接无线网,三星笔记本电脑怎么连接无线网wifi
  15. 经典推荐算法之协同过滤
  16. SX1308无法升压带载发烫解决办法
  17. 【智能优化算法-遗传算法】基于遗传算法求解单目标优化问题(实数编码)附matlab代码
  18. 保险IT业从核心系统开发向服务转型
  19. C++中智能指针详解
  20. 自己制作第一个微信小程序

热门文章

  1. 基层干部计算机培训方案,基层管理干部培训方案
  2. 三菱PLC与两台变频器通讯控制 三菱PLC通过MODBUS控制两台士林变频器程序,PLC可以用3U或者3G,
  3. Android实现思维导图功能,Android实现思维导图
  4. 基于RFID定位技术的固定资产管理,RFID资产管理带给你无限可能--新导智能
  5. jmeter接口性能测试实例
  6. stm32f405rgt6芯片手册
  7. Vue--改变鼠标指针的图片
  8. 使用百度网盘链接分享学习资料 防止链接失效
  9. GoldenDict 上的那些精美版权词典(附下载地址)(英语、俄语、梵语、印地语)
  10. 农场派对(party)(信息学奥赛一本通 1497)