mysql__视图
视图
1.什么是视图
视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不是在数据库中实际存在的,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的
视图相对于普通的表的优势主要包括以下几项:
1)、简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的符合条件的结果集
2)、安全:使用视图的用户只能访问它们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现
3)、数据独立:一旦视图的结构确定了,可以屏蔽表结构对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会对访问者的影响。
2.视图操作
2.1创建或者修改视图
创建视图:(需要有CREATE VIEW权限)
CREATE 【OR REPLACE】 【ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}】
VIEW view_name 【(column_list)】
AS select_statement
【WITH【CASCADED|LOCAL】CHECK OPTION】
修改视图:(如果使用CREATE OR REPLACE或者ALTER修改视图,那么还需要该视图的DROP权限)
ALTER 【ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}】
VIEW view_name 【】
AS select_statement
【WITH【CASCADED|LOCAL】CHECK OPTION】
MySQL视图的定义有一定的限制,from后面不能跟子查询,这和其他视图是不同的,如果需要数据移植,则需要将子查询定义为视图,简单实现
视图的可更新性和视图忠查询的定义有关系,以下类型的视图是不可更新的:
1)、包含以下关键字的SQL语句:聚合函数(SUM、MIN、MAX、COUNT等)、DISTINCT、GROUP BY、HAVING、UNION或者UNION ALL。
2)、常量视图
3)、SELECT中包含子查询
4)、JOIN
5)、FROM一个不能更新的视图
6)、WHERE子句的子查询引用了FROM子句中的表。
【WITH【CASCADED|LOCAL】CHECK OPTION】决定了是否允许更新数据使得记录不再满足视图的条件。Local只要满足本事图的条件就可以更新,CASCADED则必须满足所有针对该视图的所有视图条件才可以更新。默认值是CASCADED
2.2删除视图
用户可以一次删除一个或多个视图,前提是必须有该视图的DROP权限
DROP VIEW [IF EXISTS] view_name [,view_name]......[RESTRICT|CASCADE]
2.3查看视图
从MySQL5.1开始,show TABLES命令的时候,不但可以显示表的信息,同事也可以显示视图的信息
同样使用show TABLE STATUS命令的时候,不但可以显示表的信息,同事也可以显示视图的信息:
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']
查询某个视图的定义:
show create view view_name
也可以通过查询系统表查看视图的信息(information_schema.views)
mysql__视图的更多相关文章
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入
原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...
- 在WPF中使用依赖注入的方式创建视图
在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...
- ABP文档 - Mvc 视图
文档目录 本节内容: 简介 AbpWebViewPage 基类 简介 ABP通过nuget包Abp.Web.Mvc集成到Mvc视图里,你可以像往常那样创建常规的视图. AbpWebViewPage 基 ...
- 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- SQL Server-聚焦在视图和UDF中使用SCHEMABINDING(二十六)
前言 上一节我们讨论了视图中的一些限制以及建议等,这节我们讲讲关于在UDF和视图中使用SCHEMABINDING的问题,简短的内容,深入的理解,Always to review the basics. ...
- SQL Server-聚焦使用视图若干限制/建议、视图查询性能问题,你懵逼了?(二十五)
前言 上一节我们简单讲述了表表达式的4种类型,这一系列我们来讲讲使用视图的限制,简短的内容,深入的理解,Always to review the basics. 避免在视图中使用ORDER BY 上一 ...
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...
随机推荐
- 嵌入式框架Zorb Framework搭建六:定时器的实现
我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...
- 复位自动ID的问题有兩種方法
复位自动ID的问题 有兩種方法: 方法1: truncate table 你的表名 --這樣不但將數據刪除,而且可以重新置位identity屬性的字段. ...
- CPU计算密集型和IO密集型
CPU计算密集型和IO密集型 第一种任务的类型是计算密集型任务,其特点是要进行大量的计算,消耗CPU资源,比如计算圆周率.对视频进行高清解码等等,全靠CPU的运算能力.这种计算密集型任务虽然也可以用多 ...
- dfs Gym - 100989L
AbdelKader enjoys math. He feels very frustrated whenever he sees an incorrect equation and so he tr ...
- Coap协议学习笔记-第一篇
1. 物联网应用上一般使用单片机(或者其他SOC),单片机的RAM内存一般只有20KB~~128KB左右,然而一个TCP协议栈可能就20KB,所以只能用UDP,因为UDP相对小很多,然后在UDP上加了 ...
- Visual Studio 2014安装包
点击下载
- java script 学习
用JavaScript输出文本 <p>我的第一个段落.</p> <script> document.write(Date()); </script> & ...
- 【iOS开发】iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 110, 150)]; label.backgroundColor ...
- Elicpse新建userLibrary导入jar包时抛出NotFoundException异常
最近刚开始学Struts2.0框架.再导入jar包的时候突然心血来潮.为方便区分jar包的功能,于是想在WEB-INF -> lib 目录下想新建一个struts文件夹,以方便分类查看. 像上图 ...
- Nginx+tomcat+redis集群共享session实现负载均衡
1.nginx是一款轻量级兼备高性能的Http和反向代理服务器.所谓反向代理就是指用户发起访问请求,由代理服务器接受,然后将请求转发给正式服务器,并且将正式服务器处理完的数据返回给客户单,此时代理服务 ...