所谓的视图是一种虚拟表,本身是不具有数据的,视图是在已有表上创建的,那些表我们称为基表。 对基表做改变视图也会相应的发生变化,对视图的操作也会影响基表
对于小项目,不推荐使用视图,大项目可以考虑使用视图
创建视图
最简单的基本语法形式:
代码语言:javascript复制sqlCREATE VIEW 视图名(字段名)
AS
查询语句
例:
代码语言:javascript复制sqlCREATE VIEW e1(名字,电话号码)
AS
SELECT last_name,phone_number
FROM emp
查看视图:
SELECT * FROM e1
视图中的字段可能在表中没有对应的字段 例如:
代码语言:javascript复制sqlCREATE VIEW vm_money
AS
SELECT employee_id,SUM(salary)
FROM emp
GROUP BY employee_id
当然创建视图也可以根据视图创建视图,也可以多表联合创建视图
查看视图的属性信息:
SHOW TABLE STATUS LIKE '视图名'
查看视图的详细定义信息:
SHOW CREATE VIEW 视图名
更新视图的数据
用update
例:
sqlUPDATE e1
SET 电话号码='110110'
WHERE 名字='King'
修改视图: 方法1:
代码语言:javascript复制sqlCREATE OR REPLACE VIEW 视图的名字(字段)
AS
查询语句
会发现和创建视图的时候差不多
方法2:
代码语言:javascript复制sqlALTER VIEW 视图名
AS
查询语句
删除操作:
DROP VIEW IF EXISTS 视图名称
——这是直接把视图删除了
删除部分字段:
用DELECT FROM
和删除表的一样
删除的时候会出现删除失败是情况,原因是基于表创建的视图在字段上与基表不一样,比如视图是分组的,那么删除该组就会错误——The target table vm_m of the DELETE is not updatable