Mysql视图

来源:互联网 发布:如何在淘宝打开链接 编辑:程序博客网 时间:2024/05/22 00:48

指的是一个实体影像,就是影子的意思

视图就是通过表数据来影射的虚拟表,能够将表中的数据影射出来,但是实际上自己并不保存(没有)数据。

 

视图:VIEW

 

如何得到一个视图?

 

创建一个视图

 

语法:create view as select查询

视图简单的分为两种

1.    单表视图:select语句从一张表中得到数据

2.    多表视图:select语句从多张表中得到数据

 

单表视图

 

创建视图的时候

系统的变化

1.    会产生一个表

2.    会产生一个表结构文件

 

查看视图

查看视图名字:show tables

查看视图结构:desc视图名字

查看创建语句:show create table视图名字/show create view视图名字

查看数据:select字段列表from视图名字

 

注意:通过视图所看到的最终的数据,都不是视图本身保存的数据,而是通过执行视图的select语句及时查询到的数据

 

修改视图

 

修改视图就是修改select语句

语法:alter view视图名字as select语句

 

删除视图

语法:drop view视图名字

删除视图的时候系统所做的事情?

1.    删除了视图本身

2.    删除了视图创建是产生的结构文件

 

视图的作用

1.    方便:简化SQL语句,不用每次都写很长的SQL查询语句

2.    安全:通过视图,可以隐藏一些敏感信息

3.    可定制化:可以为单独的用户提供不同的字段信息

 

多表视图中不允许存在同名字段

 

视图的数据操作

就是对视图的数据进行增删改查

 

单表视图可以进行增删改查,但是视图的数据操作实际上是对视图的基表的数据操作

基表:a not null,b,c not null,d

视图1select a,b,c,fromT,插入数据会成功,只有d字段没有插入值,d字段值为null,但是d字段允许null,所以数据操作成功

视图2select a,b,dfrom T,插入数据会失败,因为没有c字段值,c字段默认会被设成null,但是c字段不能为null,所以数据插入失败

 

视图能否插入数据全看视图的中的字段,是否包含基表中全部不为null的字段,如果全部包含,那么就可以插入数据;否则不能插入数据。(前提:该实体是单表视图)

 

多表视图不能进行增删操作,改是可以的。

 

向单表视图添加数据

添加数据的时候,视图中没有的字段会使用表中字段对应的

 

向多表视图插入数据

不能插入数据

 

删除数据

单表视图,可以删除  多表视图,不能删除

 

多表视图更新数据

 

所有表或者视图的权限(增删改查操作),都可以通过用户权限来限定,一般情况下,视图的操作权限,都只有查看。

 

With check option:在通过视图进行更新语句的时候,witch check option进行结果判断

1.    修改后的记录要能够被视图所查询到

Create view 视图名字 asselect语句 where字段 = with check option

 

Check option

 

创建的 create view from表名where字段=条件with check option

 

加了check option的当前字段=条件这个字段不能修改

0 0
原创粉丝点击