视图

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. Vee-validate学习

    Vee-validate使用方法 首先引入 <script src="https://cdn.bootcss.com/vee-validate/2.0.9/vee-validate.j ...

  2. (数据科学学习手札29)KNN分类的原理详解&Python与R实现

    一.简介 KNN(k-nearst neighbors,KNN)作为机器学习算法中的一种非常基本的算法,也正是因为其原理简单,被广泛应用于电影/音乐推荐等方面,即有些时候我们很难去建立确切的模型来描述 ...

  3. UVA11988 Broken Keyboard (a.k.a. Beiju Text)【数组模拟链表】

    参考:https://blog.csdn.net/lianai911/article/details/41831645 #include <iostream> #include <c ...

  4. 从C到C++ (3)

    从C到C++ (3) 一.    C++中增加了引用 1.引用是给某一个变量起别名.引用的一般格式: 类型 &引用名 = 变量名 定义引用时一定要初始化.在实际应用中,引用一般用作参数传递与返 ...

  5. java网络编程框架

    虽然写过一些网络编程方面的东西,但还没有深入研究过这方面的内容,直接摘录一些文章,后续整理 原文地址:http://blog.csdn.net/lwuit/article/details/730613 ...

  6. python 自动化-"Elements not visible"

    一,今天试着跑一个多乘客下单的python脚本, 总是遇到  Elements not visible 或者  not clickable的错误 解决方法: 1. 首先观察脚本运行时, 报错的那个元素 ...

  7. 创建vpc网络

    vpc相关功能点: 模块 功能点 描述 备注 VPC 创建vpc网络 创建vpc网络,指定vpc网络名称   修改vpc网络 修改vpc网络名称   删除vpc网络 删除vpc网络   vpc相关命令 ...

  8. 问题 A: a+b

    问题 A: a+b 时间限制: 1 Sec  内存限制: 32 MB提交: 285  解决: 124[提交][状态][讨论版][命题人:外部导入] 题目描述 实现一个加法器,使其能够输出a+b的值. ...

  9. 腾讯云,搭建 FTP 文件服务

    腾讯云,搭建 FTP 文件服务 腾讯云,搭建 FTP 文件服务 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 yum 安装 vsftpd: yum insta ...

  10. C++ 递归读取目录下所有文件

    windows版本 #include <iostream> #include <io.h> #include <fstream> #include <stri ...