MySQL 视图的使用

复制代码
一、含义
mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。
好处:
1、简化sql语句
2、提高了sql的重用性
3、保护基表的数据,提高了安全性
二、创建
create view 视图名
as
查询语句;

三、修改
方式一:
create or replace view 视图名
as
查询语句;
方式二:
alter view 视图名
as
查询语句

四、删除
drop view 视图1,视图2,...;
五、查看
desc 视图名;
show create view 视图名;
六、使用
1.插入
insert 
2.修改
update
3.删除
delete
4.查看
select
eg:insert into view2(name,password) value(1,2);//执行时视图中和表中都会有记录
//一般视图用于查询
注意:视图一般用于查询的,而不是更新的,所以具备以下特点的视图都不允许更新
①包含分组函数、group by、distinct、having、union、
②join
③常量视图
④where后的子查询用到了from中的表
⑤用到了不可更新的视图

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

复制代码
create table if not exists test001 
(
   id int(11) PRIMARY key auto_increment,
   name varchar(255)
);

create view view1  as select id,`name` from test001 where id<=20;


insert into view1 values(2,'TOM'); 可以插入


insert into view1 values(25,'TOM'); 可以插入 因为没有检查选项


create view view2  as select id,`name` from view1 where id>=10 with CASCADED check OPTION;

insert into view2 values(15,'TOM');  可以插入

insert into view2 values(26,'TOM');  插入失败 因为检查时CASCADED 相当于View1也有Cascaded检查,但是只针对View2视图==》View2视图检查条件为id>=10 id<=20

insert into view1 values(29,'TOM');  可以插入
复制代码
复制代码
Local的使用只针对本视图

create view View4 as select id ,`name` from view1 where id>=10 with local check option;

insert into View4 values(22,'TOM'); 可以插入

insert into View4 values(16,'TOM'); 可以插入

insert into View4 values(9,'TOM'); 可以插入
复制代码

 

posted @   【君莫笑】  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示