1,视图的介绍
视图含义: MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表。并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果,不占用物理内存
应用场景:
—多个地方用到同样的查询结果
—该查询结果使用的sql语句较复杂
2,视图的创建
语法:
create view 视图名 as 查询语句;
好处:
1:重用sql语句
2:简化复杂的sql操作
3:保护数据,提高安全性
——————————————
演示:在staff表中,运用视图查询小江,小王的姓名,id,和薪水
staff表
第一步:创建视图
语法:
CREATE VIEW virtualForm AS SELECT * FROM staff WHERE NAME=“小江” OR NAME =“小王”;
第二步:查询视图得到结果
语法:SELECT * FROM virtualForm;
——————————————————
3,视图的修改
1:create or replace 视图名 as 查询语句;
2:alter view 视图名 as 查询语句;
——————————————————————
演示:在staff表中,运用视图只查询小江的姓名,id,和薪水
第一步:视图修改
语法: ALTER VIEW virtualForm AS SELECT * FROM staff WHERE NAME=“小江”;
第二步:查询视图得到结果
语法:SELECT * FROM virtualForm;
————————————————————
4,视图的删除
语法:drop view 视图名,视图名;
5,视图的查看
语法:desc 视图名;
演示:查看视图virtualForm
语法: DESC virtualForm;
6,视图的更新
与DML语言操作效果一样
视图的更新,原始表也会更新
视图和表比较
创建语法 | 是否占用物理空间 | 使用 | |
---|---|---|---|
视图 | create view 视图名 as | 只是保存sql逻辑 | 一般不可以增删改查 |
表 | create table 表名() | 保存了数据 | 可以增删改查 |
一般不可以增删改查原因:
具备以下特点的视图不允许更新:
包含以下关键字的mqsql语旬:分组函数、distinct,group by,having,union或者union all常量视,图
Select中包含子查询
join
from一个不能更新的视图
where子句的子查询引用了from子旬中的表
我们还简单视图进行演示插入,修改,删除
——————————————————————————————
演示:创建视图virtualForm,并演示插入,修改,删除
语法:CREATE VIEW virtualForm AS SELECT * FROM staff;
staff表
virtualForm
- 插入
插入小百,薪水190
语法:INSERT INTO virtualForm (name,salary) VALUES(“小百”,190);
- 修改
修改小百薪水为2600
语法:UPDATE virtualForm SET salary=2600 WHERE name=“小百”;
- 删除小百
删除小百
语法;DELETE FROM virtualForm WHERE name=“小百”;
————————————————————————