MySQL 数据库管理基础:视图操作与用户权限管理
1、视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。
1.1、基本使用
注意:此处以经典的 scott 数据库为例,内部包含 dept、emp、salgrade 表。
1.1.1、创建视图
create view 视图名 as select 语句;
案例
先在 emp 和 dept 表中查询 ename 和对应的 dname:
select ename, dname from emp, dept where emp.deptno = dept.deptno;
执行结果如下:
+--------+------------+
| ename | dname |
+--------+------------+
| SMITH | RESEARCH |
| ALLEN | SALES |
| WARD | SALES |
| JONES | RESEARCH |
| MARTIN | SALES |
| BLAKE | SALES |
| CLARK | ACCOUNTING |
| SCOTT | RESEARCH |
| KING | ACCOUNTING |
| TURNER | SALES |
| ADAMS | RESEARCH |
| JAMES | SALES |
| FORD | RESEARCH |
| MILLER | ACCOUNTING |
+--------+------------+
将该查询封装成视图,便于后续复用:
-- 将 ename 和 dname 的查询结果创建成视图
create view myview as
select ename, dname from emp, dept where emp.deptno = dept.deptno;
-- 查看视图的数据
select * from myview;
1.1.2、修改视图
通过视图更新数据时,实际上是在修改基表。这意味着修改了视图,对基表数据有影响。
-- 将 dname=RESEARCH 的记录修改为 zhangsan
update myview ename dname;
myview;
ename, dname emp, dept emp.deptno dept.deptno;


