語法:
CREATE VIEW <視圖名> AS <SELECT語句>
-
<視圖名>:指定視圖的名稱。該名稱在數(shù)據(jù)庫中必須是唯一的,不能與其他表或視圖同名。
-
<SELECT語句>:指定創(chuàng)建視圖的 SELECT 語句,可用于查詢多個(gè)基礎(chǔ)表或源視圖。
對(duì)于創(chuàng)建視圖中的 SELECT 語句的指定存在以下限制:
-
用戶除了擁有
CREATE VIEW
權(quán)限外,還具有操作中涉及的基礎(chǔ)表和其他視圖的相關(guān)權(quán)限。 -
SELECT 語句
不能引用系統(tǒng)或用戶變量。 -
SELECT 語句
不能包含 FROM 子句中的子查詢。 -
SELECT 語句
不能引用預(yù)處理語句參數(shù)。
視圖定義中引用的表或視圖必須存在。但是,創(chuàng)建完視圖后,可以刪除定義引用的表或視圖。可使用 CHECK TABLE
語句檢查視圖定義是否存在這類問題。
視圖定義中允許使用 ORDER BY
語句,但是若從特定視圖進(jìn)行選擇,而該視圖使用了自己的 ORDER BY
語句,則視圖定義中的 ORDER BY
將被忽略。
視圖定義中不能引用 TEMPORARY 表
(臨時(shí)表),不能創(chuàng)建 TEMPORARY 視圖
。WITH CHECK OPTION
的意思是,修改視圖時(shí),檢查插入的數(shù)據(jù)是否符合 WHERE
設(shè)置的條件。
在 b_menu
表上創(chuàng)建一個(gè)名為 view_menu
的視圖,輸入的 SQL
語句和執(zhí)行結(jié)果如下所示。
創(chuàng)建視圖SQL語句:
create view view_menu as select *from b_menu;
查看視圖SQL語句:
select * from view_menu;
默認(rèn)情況下,創(chuàng)建的視圖和基本表的字段是一樣的,也可以通過指定視圖字段的名稱來創(chuàng)建視圖。(主要是因?yàn)閯?chuàng)建視圖時(shí)使用的是所有的數(shù)據(jù))。
推薦:mysql教程