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和連接進行處理。
四、視圖的優點
- 提高了重用性,將查詢語句記錄下來供下一次使用。
- 對數據庫重構,卻不影響程序的運行。
- 提高了安全性能,根據用戶類型提供數據表或視圖。
- 讓數據更加清晰。