view是一张虚拟表,是表通过某种运算得到的一个投影。
如何创建视图:
查询结果命名为视图就行
create view 视图名
as
select 语句
mysql> select * from result;
+--------+--------+-------+
| name | subect | score |
+--------+--------+-------+
| 张三 | 数学 | 120 |
| 张三 | 语文 | 12 |
| 张三 | 地理 | 20 |
| 李四 | 数学 | 44 |
| 李四 | 语文 | 33 |
| 王五 | 数学 | 5 |
+--------+--------+-------+
6 rows in set (0.06 sec)
mysql> select name,avg(score) from result group by name;
+--------+------------+
| name | avg(score) |
+--------+------------+
| 张三 | 50.6667 |
| 李四 | 38.5000 |
| 王五 | 5.0000 |
+--------+------------+
3 rows in set (0.02 sec)
mysql> create view avg_score as
-> select name,avg(score) from result group by name;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from avg_score;
+--------+------------+
| name | avg(score) |
+--------+------------+
| 张三 | 50.6667 |
| 李四 | 38.5000 |
| 王五 | 5.0000 |
+--------+------------+
3 rows in set (0.00 sec)
视图作用:
1、简化查询
2、更精细的权限控制
3、数据多分表时可以用到
视图是表的映射表,当表的数据更新时视图的数据也会更新;
上述实例中的视图的数据不能直接修改。改视图数据后原表数据没法找到唯一的对应关系。
当视图数据和原表数据一一对应时可以修改,此时改视图和该原表数据效果是一样的。
删除视图:
drop view view_name;
algorithm:
merge 合并查询语句,用于简单查询
temptable 临时表,比较复杂的查询
undefined 未定义,由系统判断
create algorithm=merge view 视图名
as
select 语句
本文介绍了数据库中视图的概念,包括如何创建视图、视图的作用及如何删除视图。视图作为一张虚拟表,可以简化复杂查询,提供更精细的权限控制,并在数据多分表时提供统一的访问接口。
1187

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



