视图是什么?
视图的应用场景?
创建视图
mysql> create view v1 as
-> select e.name as '员工姓名',d.name as '部门' from emp e inner join dep d on e.id = d.id order by e.name desc;
Query OK, 0 rows affected (0.01 sec)
查看视图结构

使用视图



查看视图的基本信息
mysql> show table status like 'v2' \G;
*************************** 1. row ***************************
Name: v2
Engine: NULL
Version: NULL
Row_format: NULL
Rows: NULL
Avg_row_length: NULL
Data_length: NULL
Max_data_length: NULL
Index_length: NULL
Data_free: NULL
Auto_increment: NULL
Create_time: NULL
Update_time: NULL
Check_time: NULL
Collation: NULL
Checksum: NULL
Create_options: NULL
Comment: VIEW
1 row in set (0.00 sec)
查看所有视图
show table status where comment = 'view';

修改视图
1.alter view 视图名 as 查询语句;()


2.create or replace view视图名 as 查询逻辑
mysql> select * from emp;
+----+--------+---------+
| id | name | salary |
+----+--------+---------+
| 1 | 徐庶 | 130.00 |
| 2 | 李四 | 3330.00 |
| 3 | 妲己 | 1200.00 |
+----+--------+---------+
3 rows in set (0.00 sec)
mysql> create or replace view v1 as
-> select name as '姓名' ,salary as '薪水' ,(case when salary >= 3000 then '高' when salary>=1000 then '一般' else '低' end) as'薪水级别' from emp order by salary desc;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from v1;
+--------+---------+--------------+
| 姓名 | 薪水 | 薪水级别 |
+--------+---------+--------------+
| 李四 | 3330.00 | 高 |
| 妲己 | 1200.00 | 一般 |
| 徐庶 | 130.00 | 低 |
+--------+---------+--------------+
3 rows in set (0.00 sec)
删除视图
mysql> drop view v3;
Query OK, 0 rows affected (0.00 sec)
mysql> desc v3;
ERROR 1146 (42S02): Table 'test.v3' doesn't exist
更新操作
视图和表一样,也可以进行insert,update,delete操作,但所包含分组函数、group by, distinct,having ,order by等关键字市不可以
8044

被折叠的 条评论
为什么被折叠?



