MySQL提供了创建视图的方法,创建成功的视图,将添加到正在使用的数据库的数据表列表中。
一、 创建和查询视图
- 使用
create view 视图名称 as select查询语句;
命令创建视图。
mysql> create view v_students as select * from student;
Query OK, 0 rows affected (0.01 sec)
- 使用
show tables;
命令查看当前数据库下的数据表和视图。
mysql> show tables;
+----------------+
| Tables_in_TEMP |
+----------------+
| class |
| student |
| v_students |
+----------------+
3 rows in set (0.00 sec)
二、使用视图
视图本身不存放数据,不允许添加、修改、删除数据,它只是将创建视图时填写的查询语句保存起来,当把视图当作数据表使用select查询时,重新执行一遍创建视图时的查询语句,将查询结果返回。
- 使用
select * from 视图名称;
命令查看视图的内容。
mysql> select * from v_students;
+----+------+--------+--------+---------+
| id | age | name | gender | classID |
+----+------+--------+--------+---------+
| 1 | 20 | 小红 | 女 | 1 |
| 2 | 23 | 小名 | 男 | 2 |
| 3 | 21 | 小军 | 男 | 3 |
| 4 | 28 | 小兰 | 女 | 1 |
| 5 | 25 | 小夏 | 女 | 2 |
| 6 | 26 | 小建 | 男 | 4 |
+----+------+--------+--------+---------+
6 rows in set (0.01 sec)
可以对视图使用where、order by、group by、limit和连接进行处理。
四、视图的优点
- 提高了重用性,将查询语句记录下来供下一次使用。
- 对数据库重构,却不影响程序的运行。
- 提高了安全性能,根据用户类型提供数据表或视图。
- 让数据更加清晰。