Mysql 视图

Posted 黄光跃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 视图相关的知识,希望对你有一定的参考价值。

什么是视图

视图是一个虚拟表,其内容由查询语句定义
和真实表一样,有行、列、字段等信息

视图特性

视图是对若干张基本表的引用
不存储具体数据,基本表数据发生变化,视图也会跟着改变
可以和基本表一样,进行 CRUD 操作,修改了视图基本表也会发生变化(有条件限制)

视图作用

安全性:让用户不具备基本表的权限,给他开放视图的权限,用户获取的数据也是经过处理的
方便:sql 代码少,一眼就能看明白

创建/修改视图

格式:CREATE OR REPLACE VIEW view_name AS DQL [WITH CHECK OPTION]

WITH CHECK OPTION 表示在修改视图数据的时候,会验证数据,满足条件才可以修改

示例1:

CREATE OR REPLACE VIEW view_boy_name AS (SELECT * FROM students WHERE gender = );

上面这个视图没有使用 WITH CHECK OPTION,数据可以随意修改,并且在修改后会影响基表

示例2:

CREATE OR REPLACE VIEW view_stu_score AS (SELECT * FROM students WHERE score > 60) WITH CHECK OPTION;

这个视图在修改 score 字段时,只能大于 60 才让修改

删除视图

DROP VIEW 视图名,和删除表语法一样

使用视图

SELECT * FROM 视图名 WHERE ...,和查询表语法一样

不可更改的数据

不是基表的数据不能修改

示例:

CREATE OR REPLACE VIEW view_stu_max_score AS (SELECT MAX(score) AS max_score FROM students);

 

上面这个视图查询的字段是 max_score ,这个字段是通过计算得到的,不能修改;类似的还有 DISTINCT、GROUP BY 等查询出来的数据也是计算而得到的,不能修改

 





以上是关于Mysql 视图的主要内容,如果未能解决你的问题,请参考以下文章

从mysql的片段中加载ListView

回收站视图未显示在片段中

如何从片段内的列表视图打开链接网址?

如何使列表视图出现在片段中?

如何从活动中更改片段中视图的可见性

片段中的网格视图