Mysql視圖介紹


  視圖是一個存在於數據庫中的虛擬表。視圖本身沒有數據,只是通過執行相應的select語句完成獲得相應的數據。可以理解為select語句的別名。

(1).視圖的作用

  1.如果某個查詢結果出現的非常頻繁,即將這個查詢結果作為子查詢使用,視圖能夠簡化用戶的操作(簡單性)

  2.對數據提供安全保護(安全性)

  3.對重構的數據庫提供一定的邏輯性(邏輯數據獨立性)

(2).創建視圖

  創建實驗環境:

mysql> create database test_db;
Query OK, 1 row affected (0.01 sec)

mysql> use test_db;
Database changed
mysql> create table user_tb(id int,name varchar(20));
Query OK, 0 rows affected (0.03 sec)

mysql> insert into user_tb values('1','zhangsan'),('2','lisi');
Query OK, 2 rows affected (0.11 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from user_tb;
+------+----------+
| id   | name     |
+------+----------+
|    1 | zhangsan |
|    2 | lisi     |
+------+----------+
2 rows in set (0.00 sec)

  create view [視圖名] as [select查詢語句];

mysql> create view st as select * from user_tb where id=1;
Query OK, 0 rows affected (0.10 sec)

mysql> select name from st;
+----------+
| name     |
+----------+
| zhangsan |
+----------+
1 row in set (0.00 sec)

  視圖可以根據需求2次加工。

(3).修改視圖

  alter view [視圖名] as [select語句];

mysql> alter view st as select * from user_tb where id=2;
Query OK, 0 rows affected (0.01 sec)

mysql> select name from st;
+------+
| name |
+------+
| lisi |
+------+
1 row in set (0.00 sec)

(4).刪除視圖

  drop view [視圖名];

mysql> drop view st;
Query OK, 0 rows affected (0.01 sec)

mysql> select * from st;
ERROR 1146 (42S02): Table 'test_db.st' doesn't exist

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM