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 保存实际的数据 增删改查