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.cnblogs.com/iwsx/p/12348942.html