视图

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__视图的更多相关文章

  1. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  2. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

  3. 在WPF中使用依赖注入的方式创建视图

    在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...

  4. ABP文档 - Mvc 视图

    文档目录 本节内容: 简介 AbpWebViewPage 基类 简介 ABP通过nuget包Abp.Web.Mvc集成到Mvc视图里,你可以像往常那样创建常规的视图. AbpWebViewPage 基 ...

  5. 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  6. 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  7. SQL Server-聚焦在视图和UDF中使用SCHEMABINDING(二十六)

    前言 上一节我们讨论了视图中的一些限制以及建议等,这节我们讲讲关于在UDF和视图中使用SCHEMABINDING的问题,简短的内容,深入的理解,Always to review the basics. ...

  8. SQL Server-聚焦使用视图若干限制/建议、视图查询性能问题,你懵逼了?(二十五)

    前言 上一节我们简单讲述了表表达式的4种类型,这一系列我们来讲讲使用视图的限制,简短的内容,深入的理解,Always to review the basics. 避免在视图中使用ORDER BY 上一 ...

  9. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

随机推荐

  1. Matplotlib 基本图表的绘制

    图表类别:线形图.柱状图.密度图,以横纵坐标两个维度为主 同时可延展出多种其他图表样式 plt.plot(kind='line', ax=None, figsize=None, use_index=T ...

  2. python2.7入门---循环语句(while)

        接下来就要了解循环语句了.我们都知道,程序在一般情况下是按顺序执行的.编程语言提供了各种控制结构,允许更复杂的执行路径.循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环 ...

  3. sed 集合(项目中的笔记)

    奇数行和偶数行合并为一行: Like: Sequence number: 5398Sequence name: Glyma.16G123500.1Sequence number: 5399Sequen ...

  4. vux用法

    其实官网写的很详细了 但是好多时候没有仔细看的耐心 下面基本也是vux官网步骤: 很多人需要$t未定义问题 其实按着官网来就能解决这个报错: 如果你遇到 $t 报错问题,请不要开 issue,升级 v ...

  5. C++学习013多态

    何为多态 面向对象最要的特征之一就是多态,而纯虚函数是实现多态的主要方式.它可以提供一个通过用的接口,同样调用一个方法, 由于运算对象不同,方法也不同,这也就是所谓的动态绑定. #include &l ...

  6. Django数据模型--字段整理

    一.字段 1.CharField: 字段数据类型为字符串 2.IntegerField: 字段数据类型为整形 3.BooleanField: 布尔类型 4.NullBooleanField: 允许为空 ...

  7. 【app.js】配置及App函数说明

    app.js中的App函数用来注册一个小程序或设置全局变量. App函数: 语法:App(Object)     参数: Object json对象     说明: App函数必须在app.js中调用 ...

  8. eclipse返回快捷键

    1.图上第一个箭头(Ctrl + Q) 返回上一个编辑点(编辑,修改代码) 2.图上第二个箭头(Alt + Left) 返回上一个操作点(点击进入方法等操作) 3.图上第三个箭头(Alt + Righ ...

  9. python------- IO 模型

                                                    IO模型介绍                                               ...

  10. CSP201509-1:数组分段

    引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的“计算机职业资格认证”考试,针对计算机软件开发. ...