MySQL-视图
视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。
通过视图,可以展现基表的部分数据; 视图数据来自定义视图的查询中使用的表,使用视图动态生成。
基表:用来创建视图的表叫做基表
视图的诸多优点,如下:
(1)简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。
(2)安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。
(3)数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。 总而言之,使用视图的大部分情况是为了保障数据安全性,提高查询效率。
1.创建视图
1 #创建视图:逻辑上的虚拟表 2 CREATE VIEW v_author(编号,姓名) 3 AS 4 SELECT * FROM author WITH CHECK OPTION; 5 #查询视图 6 SELECT * FROM v_author; 7 8 #创建多表视图 9 CREATE VIEW v_a_b(作者名字,博客标题,博客内容) 10 AS 11 SELECT a.author_name,b.title,b.content FROM author a LEFT JOIN blog b ON a.id=b.author_id; 12 13 SELECT * FROM v_a_b; 14 15 16 #部分数据创建视图 17 CREATE OR REPLACE VIEW v_blog_1(编号,标题,内容,作者编号) 18 AS SELECT * FROM blog WHERE author_id=1 19 WITH CHECK OPTION;
2.修改视图
1 #修改视图:没有就创建,有就替换 2 CREATE OR REPLACE VIEW v_blog(编号,标题,内容,作者编号) 3 AS SELECT * FROM blog 4 WITH CHECK OPTION; 5 6 #修改视图的数据->修改基表数据 7 UPDATE v_blog SET 内容 = '修改后的内容' WHERE 编号 = 1;
3.约束
1 #约束 WITH CHECK OPTION 2 INSERT INTO v_b_1 VALUES(1,'hhhhh','hhhh',2);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本