MySQL笔记(十):视图

一、介绍

看一个需求
emp表里的列信息很多,有些信息是个人重要信息(比如sal,comm,mgr,hiredate),如果我们希望某个用户只能查询emp表的(empno,ename,job,deptno)信息,有什么办法 =》视图

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

二、视图的使用

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

(1)创建视图后,到数据库去看,对应视图只有一个视图结构文件(视图名.frm)
在这里插入图片描述

(2)视图的数据变化会影响到基表,基表的数据变化会影响到视图【insert update delete】
在这里插入图片描述
(3)视图中可以再使用视图,比如从emp_view01视图中,选出empno,ename做出新视图,数据仍然来自基表

#演示视图的使用

-- 创建一个视图emp_view01,只能查询emp表的(empno\ename\job和deptno)信息
-- 创建视图

CREATE VIEW emp_view01
	AS 
	SELECT empno,ename,job,deptno FROM emp;
	
DESC emp_view01;
SELECT * FROM emp_view01;
SELECT deptno,ename FROM emp;

-- 更新生成的视图,ater view 视图名 as select 语句

-- show create view 视图名  查看视图
SHOW CREATE VIEW emp_view01;

-- 删除视图 
DROP VIEW emp_view01;


-- 视图的细节
-- 1、创建视图后,到数据库去看,对应视图只有一个视图结构文件(视图名.frm)
-- 2、视图的数据变化会影响到基表,基表的数据变化会影响到视图【insert update delete】

-- 修改视图
UPDATE emp_view01
	SET job='manager' 
	WHERE empno=7369;
SELECT * FROM emp;

UPDATE emp
	SET job='CLERK'
	WHERE empno=7369;
SELECT * FROM emp_view01;

-- 3、视图中可以再使用视图,比如从emp_view01视图中,选出empno,ename做出新视图,数据仍然来自基表
DESC emp_view01;

CREATE VIEW emp_view02
	AS
	SELECT empno,ename FROM emp_view01;
SELECT * FROM emp_view02;

**

三、案例

**

在这里插入图片描述
对3的解释
在这里插入图片描述

-- 案例
-- 针对emp,dept,salgrage 三表,创建一个视图emp_view03,可以显示雇员编号,雇员名,雇员部门号,和薪水级别

CREATE VIEW emp_view03
	AS
	SELECT empno,ename,dname,grade
		FROM emp,dept,salgrade
		WHERE emp.deptno=dept.deptno AND
		(sal BETWEEN losal AND hisal);

DESC emp_view03;
SELECT * FROM emp_view03
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值