MySQL基礎(4) | 視圖
基本語法
1.創建
CREATE VIEW <視圖名> AS <SELECT陳述句>
語法說明如下,
<視圖名>:指定視圖的名稱,該名稱在資料庫中必須是唯一的,不能與其他表或視圖同名,<SELECT陳述句>:指定創建視圖的 SELECT 陳述句,可用于查詢多個基礎表或源視圖,
對于創建視圖中的 SELECT 陳述句的指定存在以下限制:
-
用戶除了擁有 CREATE VIEW 權限外,還具有操作中涉及的基礎表和其他視圖的相關權限,
-
SELECT 陳述句不能參考系統或用戶變數,
-
SELECT 陳述句不能包含 FROM 子句中的子查詢,
-
視圖定義中不能參考 TEMPORARY 表(臨時表),不能創建 TEMPORARY 視圖,
-
SELECT 陳述句不能參考預處理陳述句引數,
- 修改
ALTER VIEW <視圖名> AS <SELECT陳述句>
- 洗掉
DROP VIEW <視圖名1> [ , <視圖名2> …]
示例:
#創建資料表
create table mygoods(
g_id int AUTO_INCREMENT primary key,
g_name varchar(20),
g_price double,
g_count int
)engine=innodb default CHARSET=utf8;
create table myperson(
p_id int AUTO_INCREMENT primary key,
p_name varchar(20),
g_id int,
foreign key fk_pid(g_id)
references mygoods(g_id)
);
#插入資料
insert into mygoods(g_name, g_price, g_count) select '梨', 2.2, 3;
insert into mygoods(g_name, g_price, g_count) select '蘋果', 5.6, 2;
insert into myperson(p_name,g_id) select '小白',1;
#創建視圖
CREATE VIEW v_mygoods
as select g_price, g_count, g_price * g_count as total from mygoods;
#查看視圖
select * from v_mygoods;
create view v_myperson
as select a.p_name, b.g_price * b.g_count as tP from myperson a inner join mygoods b on a.g_id = b.g_id;
select * from v_myperson;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/80323.html
標籤:MySQL
