mysql视图原理与用法实例详解
本文实例讲述了mysql视图原理与用法。分享给大家供大家参考,具体如下:
本文内容:
- 什么是视图
- 创建视图
- 查看视图
- 视图的修改
- 视图的删除
- 视图的数据操作
首发日期:2018-04-13
什么是视图:
- 视图是一种基于查询结果的虚拟表,数据来源的表称为基本表。
- 视图的建立和删除不影响基本表。
- 视图的插入,修改操作会影响基本表。
- 如果视图来自多个基本表,那么不可以修改基本表。
- 视图的用处:
- 1.视图基于查询结果,使得视图可以隐藏基本表一些不该展示给用户的数据信息(比如某个开发人员需要用户信息表,但不应该展示给他用户的密码信息。)
- 2.视图是一个虚拟表,可以将查询信息存储到视图中,这样可以便于操作。
- ......
创建视图:
- 语法:createview视图名asselect语句[withcheckoption];【select语句可以多表查询结果:联合查询、连接查询】
- withcheckoption会依据where等条件语句来限制插入和修改操作(比如检索出来的视图数据是男的,不允许将男的改成女的)
createviewman_infoasselect*fromstudentwheregender="male";
- withcheckoption会依据where等条件语句来限制插入和修改操作(比如检索出来的视图数据是男的,不允许将男的改成女的)
补充:
- 视图的创建还有一个可选项:视图算法(这里不讲述,想了解的可以百度)
查看视图:
- 视图是一个虚拟表,针对表的查看语句都可以使用到视图中
- 查看所有视图:showtables/views;
- 查看视图结构:desc/describe/showcolumnsfrom视图名;
- 查看视图创建语句:showcreatetable/view视图名;
视图的修改:
- 有时候可能发生定义视图错误,所以这时候会执行修改视图操作。
- 语法:alterview视图名as新的select语句;
createviewuser_viewasselect*fromuser; alterviewuser_viewasselectusername,moneyfromuser;
补充:
- 由于视图是一种虚拟表,还有一种可以修改视图的方法:createorreplaceview视图创建语句;【将以新的视图覆盖旧视图】
视图的删除:
- 语法:dropview视图名[,视图名…];
- 示例:
dropviewstudent_class,student_info;
视图的数据操作:
- 如果视图来自多个基本表,那么不可以修改基本表。不过理论上update是允许的。
视图的数据查看:
- 语法:select字段列表from视图名;【与基本表的查询操作是一致的。】
视图的数据插入:
- 数据来源自多个基本表时,无法进行插入操作。
- 语法:insertinto视图名values();【与基本表的插入操作是一致的。】
- 注意:视图结构来自于基本表,所以要接受基本表的约束。如果某个字段不允许为空,但视图的插入操作又没赋值的话,会插入失败。
视图的数据修改:
- 语法:update视图名set字段名=值where条件;【与基本表的修改操作是一致的。】
视图的数据删除:
- 数据来源自多个基本表时,无法进行删除操作。
- 语法:deletefrom视图名where条件;【与基本表的删除操作是一致的。】
更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》
希望本文所述对大家MySQL数据库计有所帮助。