mysql 视图

mysql 视图,第1张

1、什么是视图

视图:MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果

2、视图应用场景

多个地方用到同样的查询结果该查询结果使用的sql语句较复杂

4、视图的好处

使用简单安全数据独立 

5、创建或者修 改视图

创建视图的语法

修改视图的语法

6、视图更新性

视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。(1)包含以下关键字的sql语句:分组函数、distinct、group  by、having、union或者union all(2)常量视图(3)Select中包含子查询(4)join(5)from一个不能更新的视图(6)where子句的子查询引用了from子句中的表

7、删除视图的语法

用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。

8、查看视图结构的语法

show tables如果需要查询某个视图的定义,可以使用show create view命令进行查看

看看你视图的创建语句

是不是一个连接查询建立的,还有这个视图是不是只读的

如果是连接查询创建的视图的话,你这么 *** 作的话删除的可能不止是一个表里的数据,数据库为了保证数据的完整性,不会允许你这么做。如果是只读的话,当然也就是只有读权限。

不过看报错,你这应该是第一种情况,所以,你只能从这个构建这个视图的表里逐步删除数据,才能把你要删除视图的数据删除,这么说懂吗?

语法

: CREATE VIEW <视图名>[(列名1,列名2,……)]

[WITH ENCRYPTION]

AS

SELECT_STATEMENT

[WITH CHECK OPTION]----就是这个属性决定该视图能否修改数据,真实作用是修改视图的数据最终是在产生视图的基表中,继而表现在视图上。

功能:创建视图

例1:创建一个成绩单视图

CREATE VIEW dbo.vw_cjd(name, cid, result)

AS

SELECT name, report.cid, report.result FROM student JOIN report

ON student.sid=report.sid

例2:显示成绩单视图

Select * from vw_cjd

修改视图与删除视图

1. 修改视图

语法:ALTER VIEW <视图名>[(列名1,列名2,……)] [WITH ENCRYPTION]

AS

SELECT statement [WITH CHECK OPTION]

例:修改视图vw_cjd

ALTER VIEW vw_cjd

AS

Select name, report.cid, report.result, address From student join report

ON student.sid=report.sid

查看Select * from vw_cjd

2. 删除视图

语法:DROP VIEW <视图名>

例:删除视图vw_cjd

DROP VIEW vw_cjd

视图定义信息

一、视图定义信息

1.在企业管理体制器中查看

2.查询视图Information_schema.views

3.查询系统表syscomments

4.使用命令 sp_helptext 对象名

二、隐藏视图定义

with encryption

通过视图修改数据

¨只能影响一个基表;

¨如果指定WITH CHECK OPTION选项,那么要验证所修改的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8403200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存