本文目錄一覽:
MySQL視圖
使用示例
使用示例
使用示例
檢查選項的使用
mysql是可以基於視圖創建視圖,它會檢查視圖所依賴的視圖的規則
如果再基於v2創建視圖v3,v3沒有定義檢查選項,則此時向v3中插入數據時,不會檢查是否滿足v3的條件,但是會檢查是否滿足v2和v1的條件
local選項相比於cascaded,不會自動向上添加選項
如創建一個視圖,此時視圖中只包含一條數據
例如,現要查詢每個學生選修的課程(多對多,三張表),將SQL保存到視圖,以後再想查詢,直接select * from 視圖即可
mysql中,什麼是視圖,視圖的作用是什麼
什麼是視圖?
視圖(view)是一種虛擬存在的表,是一個邏輯表,本身並不包含數據。作為一個select語句保存在數據字典中的。
通過視圖,可以展現基表(用來創建視圖的表)的部分數據;視圖數據來自定義視圖的查詢中使用的表,使用視圖動態生成。
為什麼要使用視圖?因為視圖的諸多優點,如下:
1)簡單:使用視圖的用戶完全不需要關心後面對應的表的結構、關聯條件和篩選條件,對用戶來說已經是過濾好的複合條件的結果集。
2)安全:使用視圖的用戶只能訪問他們被允許查詢的結果集,對錶的許可權管理並不能限制到某個行某個列,但是通過視圖就可以簡單的實現。
3)數據獨立:一旦視圖的結構確定了,可以屏蔽表結構變化對用戶的影響,源表增加列對視圖沒有影響;源表修改列名,則可以通過修改視圖來解決,不會造成對訪問者的影響。
總而言之,使用視圖的大部分情況是為了保障數據安全性,提高查詢效率。
mysql 視圖
1、什麼是視圖
視圖:MySQL從5.0.1版本開始提供視圖功能。一種虛擬存在的表,行和列的數據來自定義視圖的查詢中使用的表,並且是在使用視圖時動態生成的,只保存了sql邏輯,不保存查詢結果
2、視圖應用場景
多個地方用到同樣的查詢結果該查詢結果使用的sql語句較複雜
4、視圖的好處
使用簡單安全數據獨立
5、創建或者修 改視圖
創建視圖的語法:
修改視圖的語法
6、視圖更新性
視圖的可更新性和視圖中查詢的定義有關係,以下類型的視圖是不能更新的。(1)包含以下關鍵字的sql語句:分組函數、distinct、group by、having、union或者union all(2)常量視圖(3)Select中包含子查詢(4)join(5)from一個不能更新的視圖(6)where子句的子查詢引用了from子句中的表
7、刪除視圖的語法
用戶可以一次刪除一個或者多個視圖,前提是必須有該視圖的drop許可權。
8、查看視圖結構的語法
show tables;如果需要查詢某個視圖的定義,可以使用show create view命令進行查看
mysql視圖的作用是什麼
視圖是從一個或多個表中查詢出來的數據保存為視圖,是一種虛擬存在的表。
注意:
資料庫中只存放了視圖的定義,而沒有存放視圖中的數據,這些數據存放在原來的表中。
使用視圖查詢數據時,資料庫系統會從原來的表中取出對應的數據。
視圖中的數據依賴於原來表中的數據,一旦表中數據發生改變,顯示在視圖中的數據也會發生改變。
2、為什麼要使用視圖
重複利用SQL語句
簡化SQL查詢,快速取數據
只用知道表的部分結構
保護數據,根據特定授權(分配用戶一定許可權,安全性)
更改數據格式,視圖可返回與底層表的格式不同的數據表,展現出來。
3、視圖與表的區別:
表要佔用磁碟空間,視圖不需要
視圖不能添加索引
使用視圖可以簡化查詢
視圖可以提高安全性
4 .創建視圖
CREATE VIEW語法
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
解釋::
OR REPLACE: 替換重複視圖名(可選)
ALGORITHM:可選的ALGORITHM子句是對標準SQL的MySQL擴展
可取三個值:MERGE、TEMPTABLE或UNDEFINED。如果沒有ALGORITHM子句,默認演算法是UNDEFINED(未定義的)。演算法會影響MySQL處理視圖的方式。
對於MERGE,會將引用視圖的語句的文本與視圖定義合併起來,使得視圖定義的某一部分取代語句的對應部分。
對於TEMPTABLE,視圖的結果將被置於臨時表中,然後使用它執行語句。
對於UNDEFINED,MySQL將選擇所要使用的演算法。如果可能,它傾向於MERGE而不是TEMPTABLE,這是因為MERGE通常更有效,而且如果使用了臨時表,視圖是不可更新的。
明確選擇TEMPTABLE的1個原因在於,創建臨時表之後、並在完成語句處理之前,能夠釋放基表上的鎖定。與MERGE演算法相比,鎖定釋放的速度更快,這樣,使用視圖的其他客戶端不會被屏蔽過長時間。
mysql 如何查看視圖
1) mysql show table status where comment=’view’;
(說明:Mysql5.1支持視圖,視圖被看作一種抽象表,因此顯示視圖狀態的語句與顯示錶狀態的語句相同,只是在comment列中以『view』區分)
2) mysql select * from information_schema.tables where table_schema=’yourDatabaseName’ and table_type=’view’;
(說明:這種方法通過系統表查找,效果同上,顯示信息更詳細。如果不能正確顯示結果,可能是大小寫的問題,Mysql在不同系統平台不同配置參數下的顯示結果可能不同,注意這點。)
mysql 資料庫怎麼創建視圖
在查詢頁面用語句創建就可以。
1、打開Navicat for MySQL,並登錄到指定資料庫。
2、點擊上方查詢。
3、點擊新建查詢。
4、在空白處寫上視圖創建語句,點擊左上方執行即可。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279842.html