SQL视图(VIEW)

本文详细介绍了视图在数据库中的概念,包括其作为虚拟表的特性、基于表和多表创建视图的方法,只读视图的使用,以及如何基于视图创建新视图并处理基表变化。还涵盖了视图的增删改操作,如创建、删除和修改视图的语法示例。
摘要由CSDN通过智能技术生成

视图

定义:视图是将sql查询的结果动态保存到数据中,是一个虚拟表
视图是基于一张表或者多张表创建的或者可以基于视图创建
基于的表叫基表
为什么是虚拟表呢?
因为视图本身不包含数据,数据来源于基表
为什么要用视图?
它可以创建只读视图

创建视图

语法

CREATE
 	[OR REPLACE]   --或者替换
VIEW 视图名
AS   SQL 语句
[WITH READ ONLY]   --只读视图

基于一张表创建一个视图

因为没权限,我使用system用户
例题:
创建一个视图要求包含20好部门的员工姓名岗位工资还有员工编号

CREATE OR REPLACE
VIEW view_emp
AS SELECT ename,job,sal,empno FROM scott.emp WHERE deptno = 20;

在这里插入图片描述
基于一张表创建的视图,可以对视图增删改来达到对基表的增删改。

基于多张表创建视图

例题
创建一个视图要求包含部门名称 部门地址 小写的姓名 薪资 奖金 薪资加奖金

CREATE OR REPLACE
VIEW view_emp2
AS SELECT b.dname,b.loc,LOWER(a.ename) xingming,a.sal,a.comm,(a.sal+nvl(a.comm,0)) allsum FROM scott.emp a LEFT JOIN scott.dept b ON a.deptno = b.deptno;

基于多张表创建的视图,不能增删改非原表字段的列 (虚拟列)(取别名的列)

基于视图创建视图

例题:基于刚才的视图,创建一个视图,要求展示部门名称以及对应的部门平均工资基于一张表创建的视图,

CREATE OR REPLACE 
VIEW view_emp3
AS SELECT dname,AVG(sal) avgsal FROM view_emp2 GROUP BY dname;

基于视图创建的新视图,原视图的基表发生变化,新视图也会发生变化

删除视图

DROP VIEW 视图名;

修改视图

利用 OR REPLACE 把原先的替换掉就ok了

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值