程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL5新特點(視圖)

MySQL5新特點(視圖)

編輯:MySQL綜合教程

視圖,就是把數據庫中單個表或多個用JOIN連接起來的表中的數據,通過提取並生成到一個新窗口的方式提供給用戶察看的一種功能。數據庫開發和管理人員廣泛使用視圖功能主要基於如下兩個原因:
對數據庫安全的管理
-視圖可以通過隱藏元表中的某些敏感信息列來幫助保護敏感數據,這些元表可以是單個實際表,或 者是JOIN表,通過限制從這些元表中可以返回的實際的數據行,或解密已保存在磁盤上的加密數據來實現對數據庫的安全 管理。
優化數據庫的性能
-視圖可以用來幫助調優數據庫性能,就是通過預定義一個微調過的JOIN條件建立的多表視圖,或通過限制只允許少量數據從巨大的數據庫表中返回來實現。
MySQL5所支持的視圖功能在一定條件下可以實現使 用視圖來執行某些UPDATE語句,使那些數據可以得到更新,下面舉例說明:

mysql> select * from customer;
+-------------+---------------------+--------------------+------------------+
| customer_id | customer_first_name | customer_last_name | customer_ssn     |
+-------------+---------------------+--------------------+------------------+
|           1 | fred                | smith              | ☼Q,U¶  ¢ƒ╠▒4╨☺ö| 
+-------------+---------------------+--------------------+------------------+ 
1 row in set (0.03 sec)

mysql> create view v_customer as t_name,
    -> select customer_id, customer_first_name, customer_last_name
    -> aes_decrypt(cusomer_ssn,'password') as customer_ssn
    -> from customer; 
Query OK, 0 rows affected (0.03 sec)

mysql> select * from v_customer;
+-------------+---------------------+--------------------+--------------+
| customer_id | customer_first_name | customer_last_name | customer_ssn |
+-------------+---------------------+--------------------+--------------+
|           1 | fred                | smith              | 456097234    |
+-------------+---------------------+--------------------+--------------+
從上例可以看到,通過使用解密函數aes_decrypt()得到指定的customer_ssn的值並利用創建視圖的方式把該值顯示出來,而且 並未破環原始表對其他customer_ssn值在磁盤或數據庫的加密式存放。這樣管理人員就保證敏感信息不會被隨意破壞。(BKJIA.COM教程)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved