mysql视图

含义:理解成一张虚拟的表,用法基本和表一样,多用于查询,视图的增删改会影响原始表的数据

创建视图的语法:
create [or replace] view view_name
As select_statement
[with|cascaded|local|check option]

修改视图的语法:
alter view view_name
As select_statement
[with|cascaded|local|check option]

删除视图的语法:
用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。
drop view [if exists] view_name,view_name …[restrict|cascade]

视图的增删改查

1、查看视图的数据 ★

SELECT * FROM my_v4;
SELECT * FROM my_v1 WHERE last_name='Partners';

2、插入视图的数据,会影响原始表数据
INSERT INTO my_v4(last_name,department_id) VALUES('虚竹',90);

3、修改视图的数据,会影响原始表数据

UPDATE my_v4 SET last_name ='梦姑' WHERE last_name='虚竹';

4、删除视图的数据
DELETE FROM my_v4;

视图逻辑的更新

#方式一:
CREATE OR REPLACE VIEW test_v7
AS
SELECT last_name FROM employees
WHERE employee_id>100;

#方式二:
ALTER VIEW test_v7
AS
SELECT employee_id FROM employees;

SELECT * FROM test_v7;

视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。

  • 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
  • 常量视图
  • Select中包含子查询
  • join
  • from一个不能更新的视图
  • where子句的子查询引用了from子句中的表

视图和表的对比

        关键字        是否占用物理空间            使用
视图    view        占用较小,只保存sql逻辑       一般用于查询
表     table        保存实际的数据               增删改查

 

posted @ 2021-05-04 17:03  程序员小明1024  阅读(56)  评论(0编辑  收藏  举报