數據庫的視圖


一、視圖

概述:mysql5.0版本之后主持視圖

視圖能夠方便開發熱源對數據進行增刪改查等操作

訪問視圖能夠根據相應的權限來限制用戶直接訪問數據庫的數據表

保障數據庫的安全

概念:視圖可以由數據庫中的一張表或者多張表生成,結構與數據表類似

視圖中的數據也是由一張表或者多張表的數據組合而成

可以對試圖中的數據進行增刪改查等操作,也可以修改視圖結構

視圖不會保障數據,數據真正保存在數據表中

視圖與數據表數據同步更新

視圖的優點:

操作簡單:可以經常使用的查詢操作定義為視圖

可以使開發人員不用關心

數據表的結構、表與表之間的關聯關系、數據表之間的業務邏輯和查詢條件

極大的簡化開發人員對數據庫的操作

數據安全:mysql根據權限將用戶對數據的訪問限制在某些數據的結果集上,而這些數據的結果集可以使用視圖來實現

不必直接查詢或操作數據表

保證了數據的安全性

數據獨立

視圖的結構是創建之初確定的

當數據表的結構變化不會影響視圖的結構

如果數據表的字段發送變化,只需要簡單修改查詢語句

不會影響用戶對數據的查詢操作

適應靈活多變的需求

當業務需求發送變化,修改數據表的結構工作量較大,可以使用視圖來減少改動的工作量

能夠分解復雜的查詢邏輯:數據庫中如果存在復雜的查詢邏輯,則可以將問題分解,創建多個視圖獲取數據,再將多個視圖結合起來,完成復雜查詢

 

1.創建視圖:create view view_name as select * from user;  as后面可以跟上所有的SQL語句

第一步:創建數據庫create database max123

第二步:創建表:create table max123.user(id int);並使用一個數據庫

第三步:創建視圖:create view v1 as select * from user;

第四步: cd max123  查看ll  -h       v1表只有表結構沒有數據 不占用磁盤空間

第五步:登錄mysql   select * from v1;有數據

mysql> show tables;
+------------------+
| Tables_in_max123 |
+------------------+
| user |
| v1 |
+------------------+
2 rows in set (0.00 sec)

mysql> desc v1;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

查看視圖show create view v1\G      

select * from information_schema.views limit 5\G;

 

修改視圖結構第一步:create or replace view v1 as select name,shell from user;

第二步:desc v1 查看表結構

第三步:select * from v1;

 

修改表中數據和視圖中的數據的變化:修改表數據和修改視圖數據表中數據和視圖表中數據都會改變

刪除視圖 drop view


免責聲明!

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



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