mysql-210715-02—视图
视图(view)
视图的了解
站在不同的角度去看到数据。(同一张表,通过不同角度去看待)
对视图进行增删查改,会影响到原表数据。
通过视图影响原数据,不是直接操作原表。
注:
只有DQL语句才能以视图的方式创建出来
可以对视图进行CRUD操作。
创建视图
语法:
create view myview as select empno,ename form emp;
注:
只有DQL语句才能以视图的方式创建出来
删除视图
语法:
dorp view myview;
视图影响原表数据
// 创建视图
mysql> create view myview as select empno,ename from emp01;
Query OK, 0 rows affected (0.01 sec)
// 查看视图
mysql> select * from myview;
+-------+--------+
| empno | ename |
+-------+--------+
| 7369 | SMITH |
| 7499 | ALLEN |
| 7902 | FORD |
| 7934 | MILLER |
+-------+--------+
// 通过视图修改原表数据
mysql> update myview set ename='bgy7369' where empno=7369;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
// 查看原表
mysql> select * from emp01;
+-------+---------+-----------+------+------------+---------+---------+--------+
| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
+-------+---------+-----------+------+------------+---------+---------+--------+
| 7369 | bgy7369 | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300.00 | NULL | 10 |
+-------+---------+-----------+------+------------+---------+---------+--------+
视图作用
视图可以隐藏表的实现细节,
保密级别较高的系统,数据库只对外提供先关的视图,
java程序员只对视图对象进行CRUD
// 创建视图
mysql> create view myview01 as select empno as a,ename as b, sal as c from emp;
Query OK, 0 rows affected (0.01 sec)
// 对 a,b,c 进行CRUD
mysql> select * from myview01;
+------+--------+---------+
| a | b | c |
+------+--------+---------+
| 7369 | SMITH | 800.00 |
| 7499 | ALLEN | 1600.00 |
| 7902 | FORD | 3000.00 |
| 7934 | MILLER | 1300.00 |
+------+--------+---------+
14 rows in set (0.00 sec)