mysql之对视图的操作
1. 為什么要使用視圖?
為了提高復(fù)雜SQL語句的復(fù)用性和表操作的安全性,MySQL數(shù)據(jù)庫管理系統(tǒng)提供了視圖特性。所謂視圖,本質(zhì)上是一種虛擬表,在物理上是不存在的,其內(nèi)容與真實(shí)的表相似,包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中以儲(chǔ)存的數(shù)據(jù)值形式存在。行和列數(shù)據(jù)來自定義視圖的查詢所引用基本表,并且在具體引用視圖時(shí)動(dòng)態(tài)生成。
視圖使開發(fā)者只關(guān)心感興趣的某些特定數(shù)據(jù)和所負(fù)責(zé)的特定任務(wù),只能看到視圖中所定義的數(shù)據(jù),而不是視圖所引用表中的數(shù)據(jù),從而提高了數(shù)據(jù)庫中數(shù)據(jù)的安全性。
視圖的特點(diǎn)如下:
(1). 視圖的列可以來自不同的表,是表的抽象和在邏輯意義上建立的新關(guān)系。
(2). 視圖是由基本表(實(shí)表)產(chǎn)生的表(虛表)。
(3). 視圖的建立和刪除不影響基本表。
(4). 對視圖內(nèi)容的更新(添加,刪除和修改)直接影響基本表。
(5). 當(dāng)視圖來自多個(gè)基本表時(shí),不允許添加和刪除數(shù)據(jù)。
視圖的操作包括創(chuàng)建視圖,查看視圖,刪除視圖和修改視圖。
2. 創(chuàng)建視圖
CREATE VIEW view_name AS 查詢語句;實(shí)例如下:
CREATE VIEW view_name AS SELECT * FROM t_dept;3. 查看視圖
3.1. SHOW TABLES語句查看視圖名
SHOW TABLES不僅會(huì)顯示表的名字,同時(shí)也會(huì)顯示視圖的名字。
3.2. SHOW TABLE STATUS語句查看視圖詳細(xì)信息
SHOW TABLE STATUS FROM 【from db_name】【LIKE 'pattern'】SHOW TABLE STATUS不僅會(huì)顯示表的詳細(xì)信息,同時(shí)也會(huì)顯示視圖的詳細(xì)信息。
3.3. SHOW CREATE VIEW語句查看視圖定義信息
SHOW CREATE VIEW view_dept3.4 DESCRIBE | DESC語句查看視圖設(shè)計(jì)信息
DESCRIBE | DESC viewname3.5 通過系統(tǒng)表查看視圖信息
當(dāng)Mysql數(shù)據(jù)庫安裝成功后,會(huì)自動(dòng)創(chuàng)建系統(tǒng)數(shù)據(jù)庫information_schema。在該數(shù)據(jù)庫中存在一個(gè)包含視圖信息的表格views,可以通過查看表格views來查看所有視圖的相關(guān)信息。
4. 刪除視圖
DROP VIEW view_name 【,view_name】;DROP VIEW通過DROP VIEW語句可以一次刪除一個(gè)或多個(gè)視圖。
實(shí)例:
DROP VIEW view_dept;5. 修改視圖
5.1 CREATE OR REPLACE VIEW語句修改視圖
CREATE OR REPLACE VIEW view_name AS 查詢語句;5.2 ALTER語句修改視圖
ALTER VIEW viewname AS 查詢語句;6. 利用視圖操作基本表
6.1 檢索(查詢)數(shù)據(jù)
SELECT * FROM view_name;6.2 利用視圖操作基本表數(shù)據(jù)
由于視圖是"虛表",所以對視圖數(shù)據(jù)進(jìn)行的更新操作,實(shí)際上是對其基本表數(shù)據(jù)進(jìn)行更新操作。在具體更新視圖數(shù)據(jù)時(shí),需要注意以下兩點(diǎn):
(1). 對視圖數(shù)據(jù)進(jìn)行添加,刪除,更新操作直接影響基本表。
(2). 當(dāng)視圖來自多個(gè)基本表時(shí),不允許添加和刪除數(shù)據(jù)。
添加數(shù)據(jù)操作:
和向表里添加數(shù)據(jù)相同。
刪除數(shù)據(jù)操作:
和向表里刪除數(shù)據(jù)相同。
更新數(shù)據(jù)操作:
和向表里更新數(shù)據(jù)相同。
轉(zhuǎn)載于:https://www.cnblogs.com/longshiyVip/p/4623011.html
總結(jié)
以上是生活随笔為你收集整理的mysql之对视图的操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海社保开户流程
- 下一篇: 5g的三个特性是什么(是什么在推动变革)