视图 View

视图 View

 一张或多张表的数据子集的逻辑表现

 

 1. 视图不是表,不是一个物理的实体,只是一个逻辑表现

 2. 视图中的数据是来源于表的

 3. 视图的本质就是子查询

 

 作用:

 1. 对数据安全的保护:保护数据表

 2. 简化查询语句

 3. 更清晰的表达查询

 

创建视图

create  view v_emp10

as

select  empno,ename,job from emp where deptno=10;

 

 

创建视图,如果已存在视图则替换,并把列名自定义

create or replace view v_emp10 (id,name,job)

as

select  empno,ename,job from emp where deptno=10;

 

select *from v_emp10;

 

删除

drop view v_emp10 ;

 

新建部门视图

CREATE VIEW v_dept

AS

SELECT * FROM dept;

 

从部门视图中查询数据

SELECT * FROM v_dept;

 

往视图中插入数据

INSERT INTO v_dept VALUES (50, '教学部', '漕河泾');

 

从表中查询数据

SELECT * FROM dept;

 

问题: 能不能修改视图中的数据呢?

错误答案1: 能

错误答案2: 不能

正确答案: 有的视图能, 有的视图不能

 

创建一个各个部门平均工资视图

CREATE VIEW v_dept_avgsal

AS

SELECT dname, avg(sal)

FROM emp RIGHT JOIN dept

ON emp.deptno = dept.deptno

GROUP BY dname;

 

从视图中查询数据

SELECT * FROM v_dept_avgsal;

 

INSERT INTO v_dept_avgsal VALUES ('教研部', 20000);

插入失败,因为avg(sal)数据根本不存在

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值