MySQL基礎(4) | 視圖 基本語法 1.創建 語法說明如下。 ``:指定視圖的名稱。該名稱在資料庫中必須是唯一的,不能與其他表或視圖同名。 ``:指定創建視圖的 SELECT 語句,可用於查詢多個基礎表或源視圖。 對於創建視圖中的 SELECT 語句的指定存在以下限制: 用戶除了擁有 CREA ...
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;