视图: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选项,那么要验证所修改的数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)