mysql视图指的是什么
时间:2024-10-26 21:19 文章来源于网友投稿,仅供参考!
什么是视图 视图是一个虚拟表,其内容由查询定义。 同真实的表一样,视图包含系列带有名称的列和行数据。 行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。 简单的来说视图是由select结果组成的表。 举个栗子 查出来可以看到一张表,你看到的内容就叫视图。 视图的特性视图是对若干张基本表的引用,是一张虚表,是查询语句执行的结果。 它不存储具体的数据(基本表数据发生了改变,视图也会跟着改变) 。 它可以跟基本表一样,进行增删改查操作(增删改操作有条件限制)。 视图的作用提高安全性:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性: grant语句可以针对视图进行授予权限。 查询性能提高。 提高了数据的独立性。 创建视图假设我们有一张学生表如下 需求:创建视图并查询年龄大于20的学生 点击视图打开可以看到刚刚创建的表
举个栗子:上面创建的视图“stu_age_view”为年龄20以上的学生,现在修改为全部学生。 删除视图视图机制替换式操作视图时, 视图名直接被视图定义给替换掉 具化式mysq|先得到了视图执行的结果,该结果形成一个中间结果暂时存在内存中。 替换式:替换方式,将视图公式替换后,当成一个整体sq|进行处理了。 具化式:具体化方式,先处理视图结果,后处理外面的查询需求。 下面举个栗子来加深理解 如果是替换式,那么它的内部运行逻辑就为 直接将 上面这两条语句无法运行,只是为了方便举例提出。 那么我们再说回创建视图 ALGORITHM参数(三个)
用参数创建视图 还有两个需要注意的东西是 WITH CHECK OPTION 更新数据时不能插入或更新不符合视图限制条件的记录。 LOCAL和CASCADED 为可选参数,决定了检查测试的范围,默认值为CASCADED 视图不可更新部分聚合函数 DISTINCT关键字 GROUP BY子句 HAVING子句 UNION运算符 FROM子句中包含多个表 SELECT语句中引用了不可更新视图 只要视图当中的数据不是来自于基表,就不能够直接修改 |