<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <h4>一.简介</h4>
讯享网
出于安全的原因,有时要隐藏一些重要的数据信息。这时,可以创建一个视图,在原有
的表(或者视图)的基础上重新定义一张虚拟表,选取基本的或对用户有用的信息,屏
蔽掉那些对用户没有用,或者用户没有权限了解的信息,保证数据的安全。
在使用查询时,很多时候要使用聚合函数,可能还要关联好几张表,查询语句会显得比
较复杂,而且经常要使用这样的查询。遇到这种情况,数据库设计人员可以预先通过视
图创建好查询。一方面,屏蔽了复杂的数据关系,另一方面,用户只需从建好的视图进
行查询,就可以轻松得到想要的信息,使用户操作简单化。
二.实验操作
1.创建视图
讯享网
- 视图名称:默认为在当前数据库中创建视图。如要在其他数据库中,应为 db_name.view_name。
- CREATE VIEW:创建新视图,OR REPLACE子句将替换已有的视图。
- SELECT语句:用来创建视图的SELECT语句,可从一个或两个以上的基本表或其他视 图进行选择。
- 视图是虚表,只存储对表的定义,不存储数据。
例子:
- 创建视图权限,以及所涉列的SELECT权限。如果还有OR REPLACE子句,必须在视图上具有删除视图的权限。
- 所用表已存在,列名唯一。
- 视图名不能与表同名。
- FROM子句中不能使用子查询。
注意:
SELECT语句不能引用系统或用户变量。
讯享网
SELECT语句不能引用预处理语句参数。
允许使用ORDER BY,但以后通过从视图进行选择查询时,它将被忽略。

讯享网
视图是一种虚拟表,它表示的是一个查询的结果。虽然可以在视图的定义中使用 ORDER BY,但视图更像是存储在数据库中的逻辑查询,而不是有物理顺序的数据表。视图中的数据排序不会永久保存,因此在对视图进行选择查询时,ORDER BY 并不会自动应用。
在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用CHECK TABLE语句。如果与视图相关联的表或视图被删除,则该视图将不能再使用。
不能引用TEMPORARY表,不能创建TEMPORARY视图。
分类:
临时表:临时表是会话级别的表,只有在当前会话中有效。一旦会话结束,临时表会自动被删除。
临时视图(TEMPORARY view):与临时表类似,临时视图本质上意味着在当前会话结束后,视图将自动删除。但是 MySQL 不支持创建这样的视图。
2.来自视图
创建视图emp_v_1:
例子:
可以基于视图创建新的视图,创建视图emp_v_2,统计每个部门员工的平均薪资。
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/177950.html