国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql視圖的操作和儲存的步驟及注意事項

2024-07-09 22:43:48
字體:
來源:轉載
供稿:網友

mysql數據庫視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖并不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,并且在引用視圖時動態生成。

對其中所引用的基礎表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當前或其它數據庫的一個或多個表,或者其它視圖。通過視圖進行查詢沒有任何限制,通過它們進行數據修改時的限制也很少。


舉例說明:創建mysql視圖,然后通過mysql視圖來查詢。

create [or replace] [algorithm = {undefined | merge | temptable}] view [db_name.]view_name [(column_list)] as select_statement [with [cascaded | local] check option]通過該語句可以創建視圖,若給定了[or replace],則表示當已具有同名的視圖時,將覆蓋原視圖。select_statement是一個查詢語句,這個查詢語句可從表或其它的視圖中查詢。視圖屬于數據庫,因此需要指定數據庫的名稱,若未指定時,表示在當前的數據庫創建新視圖。

表和數據庫共享數據庫中相同的名稱空間,因此,數據庫不能包含相同名稱的表和視圖,并且,視圖的列名也不能重復。

例子:create view v3 as SELECT b.sid, b.grade, c.cname
FROM grade b, course c
WHERE b.cid = c.cid

然后查詢從mysql視圖中查詢出一條數據
select sid,grade,cname from v3 where sid=200410001


mysql視圖是存儲在數據庫中的查詢的sql 語句,它主要出于兩種原因:安全原因, 視圖可以隱藏一些數據,如:社會保險基金表,可以用視圖只顯示姓名,地址,而不顯示社會保險號和工資數等,另一原因是可使復雜的查詢易于理解和使用。



注意:

創建視圖存需要注意一下幾點:

(1) 運行創建視圖的語句需要用戶具有創建視圖(crate view)的權限,若加了[or replace]時,還需要用戶具有刪除視圖(drop view)的權限;

(2) select語句不能包含from子句中的子查詢;

(3) select語句不能引用系統或用戶變量;

(4) select語句不能引用預處理語句參數;

(5) 在存儲子程序內,定義不能引用子程序參數或局部變量;

(6) 在定義中引用的表或視圖必須存在。但是,創建了視圖后,能夠舍棄定義引用的表或視圖。要想檢查視圖定義是否存在這類問題,可使用check table語句;

(7) 在定義中不能引用temporary表,不能創建temporary視圖;

(8) 在視圖定義中命名的表必須已存在;

(9) 不能將觸發程序與視圖關聯在一起;

(10) 在視圖定義中允許使用order by,但是,如果從特定視圖進行了選擇,而該視圖使用了具有自己order by的語句,它將被忽略。








發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通化县| 安庆市| 招远市| 大安市| 兴义市| 潜江市| 若尔盖县| 南木林县| 张北县| 隆回县| 裕民县| 乌拉特前旗| 垫江县| 雷州市| 徐闻县| 偏关县| 报价| 合江县| 永康市| 旬阳县| 富顺县| 凉城县| 桃园县| 肥西县| 都江堰市| 社会| 鸡东县| 渑池县| 邵东县| 措勤县| 井陉县| 黄浦区| 临泉县| 安福县| 吉林省| 墨脱县| 汉中市| 女性| 镶黄旗| 霸州市| 昔阳县|