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'); 可以插入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!