当前位置: 首页 > news >正文

资源下载WordPress主题/魔贝课凡seo课程好吗

资源下载WordPress主题,魔贝课凡seo课程好吗,西安网站制作流程,设计素材网站飘文章目录视图1. 什么是视图2.视图的优越性3.视图的类型4. 简单视图VS复杂视图5. 创建简单视图6. 用子查询中的列别名创建视图7. 从视图中取回数据8. 创建复杂视图9. 在定义视图时指定列名10. 视图中DML操作的执行规则11. 拒绝DML操作12. 通过工具创建视图13. 删除视图14. 内建视…

文章目录

  • 视图
  • 1. 什么是视图
  • 2.视图的优越性
  • 3.视图的类型
  • 4. 简单视图VS复杂视图
  • 5. 创建简单视图
  • 6. 用子查询中的列别名创建视图
  • 7. 从视图中取回数据
  • 8. 创建复杂视图
  • 9. 在定义视图时指定列名
  • 10. 视图中DML操作的执行规则
  • 11. 拒绝DML操作
  • 12. 通过工具创建视图
  • 13. 删除视图
  • 14. 内建视图

备注:本文中使用到的sql为HR用户提供的数据和表。HR用户介绍查看以下链接。
https://blog.csdn.net/weixin_45842494/article/details/122528264

视图

视图是数据库其他对象

1. 什么是视图

可以通过创建表的视图来表现数据的逻辑子集或数据的组合。视图是基于表或另一个视图的逻辑表,一个视图并不包含它自己的数据,它象一个窗口,通过该窗口可以查看或改变表中的数据。视图基于其上的表称为基表。

在这里插入图片描述

2.视图的优越性

  • 视图限制数据的访问,因为视图能够选择性的显示表中的列。
  • 视图可以用来构成简单的查询以取回复杂查询的结果。例如,视图能用于从多表中查询信息,而用户不必知道怎样写连接语句。
  • 视图对特别的用户和应用程序提供数据独立性。一个视图可以从几个表中取回数据。

3.视图的类型

简单视图和复杂类型

在这里插入图片描述

4. 简单视图VS复杂视图

视图有两种分类:简单和复杂,基本区别涉及DML(NSERT,UPDATE和DELETE)操作。

简单视图:

  • 数据仅来自一个表
  • 不包含函数或数据分组
  • 能通过视图执行DML操作

复杂视图:

  • 数据来自多个表
  • 包含函数或数据分组
  • 不允许通过视图进行DML操作

5. 创建简单视图

在这里插入图片描述

示例:

创建一个视图,视图中包含部门id为80的员工的id,名字以及薪水。

create view emp80 as select e.employee_id,e.last_name,e.salary from employees e where e.department_id = 80;

说明:试图本身不会做数据的存储。

select * from emp80;

当我们执行select去查询视图的时候,拿到的数据还是表中的数据,相当于select间接执行了创建视图时执行的查询语句。

6. 用子查询中的列别名创建视图

如果在创建视图的查询语句中包含有列别名,那么列别名将作为视图的列名。

示例:

创建一个视图,包含部门id为50的员工id,使用ID_NUMBER命名该列,包含员工名字使用NAME命名该列,包含员工的年薪使用ANN_SALARY命名该列。

create view emp50 as select e.employee_id id_number,e.last_name name,12*e.salary ann_salary from employees e;

7. 从视图中取回数据

示例一:

查询部门id为80的员工信息,包含他们的id,名字和薪水

select * from emp80;
返回(部分):
EMPLOYEE_ID LAST_NAME                     SALARY
----------- ------------------------- ----------165 Lee                          6800.00166 Ande                         6400.00167 Banda                        6200.00168 Ozer                        11500.00
34 rows selected

示例二:

查询部门id为50的员工信息,包含他们的id和薪水。

select e.id_number,e.ann_salary from emp50 e;
返回(部分):
ID_NUMBER ANN_SALARY
--------- ----------201     156000202      72000203      78000
110 rows selected

说明:当我们使用视图查询数据的时候,只能查询视图中包含的列,不能查询视图中没有的列。

8. 创建复杂视图

在这里插入图片描述

示例:

创建一个视图,包含每个部门的部门名称,部门最低薪水、部门最高薪水以及部门平均薪水。

create view dept_name as select d.department_name,min(e.salary) min_sal,max(e.salary) max_sal,avg(e.salary) avg_sal from employees e,departments d where e.department_id = d.department_id group by d.department_name;

说明:如果视图中包含了函数,必须要给列起别名。

select * from dept_name;
返回(部分):
DEPARTMENT_NAME                   MIN_SAL    MAX_SAL    AVG_SAL
------------------------------ ---------- ---------- ----------
Development                          1000       1000       1000
Administration                       4400       4400       4400
Accounting                           8300      12008      10154
Executive                           17000      24000 19333.3333
12 rows selected

9. 在定义视图时指定列名

示例:

创建一个视图, 包含每个部门的部门名称、部门最低薪水、部门最高薪水以及部门的平均薪水。将部门名称命名为name.最低薪水命名为minsal.最高薪水命名为maxsal、平均薪水命名为avgsal。

create view dept_name1(name,minsal,maxsal,avgsal) as select d.department_name,min(e.salary),max(e.salary),avg(e.salary) from employees e,departments d where e.department_id = d.department_id group by d.department_name;

说明:给列起别名,可以跟在列的后面,也可以在创建时写在as的前面。

10. 视图中DML操作的执行规则

如果视图中包含下面的部分就不能修改数据。

  • 组函数
  • GROUP BY 子句
  • DISTINCT 关键字
  • 用表达式定义的列

示例:

删除emp80视图中雇员ID为179的雇员。

delete from emp80 e where e.employee_id = 179;

说明:emp80视图中没有任何组函数,GROUP BY子句,也没有DISTINCT等关键字。

11. 拒绝DML操作

在这里插入图片描述

示例:

创建一个简单视图,包含employees表中的所有数据,但该视图拒绝DML操作。

create view v_emp as select * from employees with read only;

说明:创建视图时在后面加上with read only表示该视图为只读视图,不能被DML操作。

重点:数据库中的对象名称不能重复,包括视图名称不能和表名称重复等等。

delete from v_emp v where v.DEPARTMENT_ID = 179;
返回:
ORA-42399: 无法对只读视图执行 DML 操作

12. 通过工具创建视图

在这里插入图片描述
在这里插入图片描述

说明:使用工具创建视图要点击执行来创建视图。

13. 删除视图

在这里插入图片描述

删除视图不会丢失数据,因为视图是基于数据库中的基本表的,视图中不存储数据。

示例:

删除emp90视图。

drop view emp90;

14. 内建视图

  • 内建视图是一个带有别名(或相关名)的可以在SQL语句中使用的子查询。
  • 一个主查询的在FROM子句中指定的子查询就是一个内建视图。

内建视图:内建视图由位于FROM子句中命名了别名的子查询创建。该子查询定义一个可以在主查询中引用数据源。

示例:

显示那些雇员低于他们部门最高薪水的雇员的名字、薪水、部门号和他们部门最高的薪水。

select em.last_name,em.department_id,e.maxsal from employees em ,(select e.department_id, max(e.salary) maxsal from employees e group by e.department_id) e where em.department_id = e.department_id and em.salary < e.maxsal;
返回(部分):
LAST_NAME                 DEPARTMENT_ID     MAXSAL
------------------------- ------------- ----------
Smith                                80      14000
Bates                                80      14000
Kumar                                80      14000
Abel                                 80      14000
95 rows selected
http://www.jmfq.cn/news/4761451.html

相关文章:

  • php做用户注册网站/网站建设免费
  • 上海网站建设目的/aso优化榜单
  • 做网站营销怎么去推广/网络营销模式
  • 商贸有限公司网站建设/app广告推广
  • 做seo网站优化价格/b2b电子商务平台网站
  • 用axure做网站/百度关键词购买
  • 国外做评论的网站/正规赚佣金的平台
  • 做团膳有哪些网站/今日头条十大热点
  • 建材 团购 网站怎么做/鄂州网站seo
  • 在哪里做网站好/网站seo推广公司靠谱吗
  • 做公益的网站有哪些/美国婚恋网站排名
  • 南宁建设网站制作/重庆森林壁纸
  • 做网站滨州/太原百度网站快速排名
  • 做网站如何宣传/百度搜索推广费用
  • wordpress 添加新页面/网站如何做优化推广
  • 网站功能说明怎么做/如何在百度推广
  • 如何做网站免费搭桥链接/网络营销和网上销售的区别
  • 做网站需要了解什么/百姓网推广电话
  • 自己怎样做免费网站/百度指数搜索热度大学
  • 买商标/seo查询 工具
  • 生产销售管理软件/外贸网站建设优化
  • 做网站搜索结果的代码/武汉seo外包平台
  • 一站式网站建设报价/八大营销方式有哪几种
  • 厦门网站建设 智多星/汕头seo建站
  • 番禺做网站设计/营销策略有哪些理论
  • 三里河网站建设/百度权重查询爱站网
  • 软件网站下载/seo流量排名软件
  • 开封网站制作哪家好/抖音营销软件
  • 自己做的网站发布详细步骤/明星百度指数排行
  • 百度搜索引擎推广怎么弄/企业seo排名