转载地址:http://www.2cto.com/database/201212/176775.html

一、视图的基本介绍  www.2cto.com  
        视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。
        使用视图需要MySQL5及以后的版本支持。
        下面是视图的一些常见应用:
        重用SQL语句;
        简化复杂的SQL操作;
        使用表的组成部分而不是整个表;
        保护数据;
        更改数据格式和表示;
        在视图创建之后,可以用与表基本相同的方式利用它们。
        但对于大量的复杂或嵌套视图,性能可能下降得很厉害。因此在部署相应的应用前,应进行充分的测试。
二、使用视图的规则和限制
        与表一样,视图必须唯一命名(不能给视图取与别的视图或表相同的名字);
        对于可以创建的视图数目没有限制;
        为了创建视图,必须具有足够的访问权限;
        视图可嵌套;
        ORDER BY可以用在视图中;
        视图不能索引,也不能有关联的触发器或默认值;
        视图可以和表一起使用;
三、使用视图
1、创建视图
        create  view view_name
        AS
        select 语句
        示例:
        mysql> create or replace view v_pic_url
            -> as
            -> select
            ->     id,url
            -> from v9_picture
            -> where catid=17;
2、查看创建视图的语句
        SHOW CREATE VIEW viewname;
        示例:
        mysql> show create view v_pic_url;
        +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
        | View      | Create View                                                                                                                                                                                                     | character_set_client | collation_connection |
        +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
        | v_pic_url | CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_pic_url` AS select `v9_picture`.`id` AS `id`,`v9_picture`.`url` AS `url` from `v9_picture` where (`v9_picture`.`catid` = 17) | latin1               | latin1_swedish_ci    |
        +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
3、删除视图
        DROP VIEW viewname;
        示例:
        mysql> drop view v_pic_url;
4、更新视图结构
        可以先将视图DROP,再使用CREATE语句创建;
        也可以直接使用CREATE OR REPLACE VIEW语句;
四、更新视图数据
        通常,视图是可更新的(即,可以对它们使用INSERT、UPDATE和DELETE)。更新一个视图将更新其基表。如果对视图增加或删除行,实际上是对其基表增加或删除行。
        但是,并非所有视图都是可更新的。如果视图定义中有以下操作,则不能进行视图的更新:
        分组(使用GROUP BY和HAVING);
        联结;
        子查询;
        并;
        聚焦函数;
        DISTINCT;
        导出(计算)列;
        一般,应该将视图用于检索而不用于更新。

【转】MYSQL入门学习之十:视图的基本操作的更多相关文章

  1. 【转】MYSQL入门学习之十二:存储过程的基本操作

    转载地址:http://www.2cto.com/database/201212/177380.html 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合.可将其视为批文件,虽 ...

  2. 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列

    1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...

  3. 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

    1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...

  4. 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装

    1.0 我的操作系统是CentOS Linux release 7.6.1810  (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...

  5. 【数据库】3.0 MySQL入门学习(三)——Windows系统环境下MySQL安装

    1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 h ...

  6. 【python】入门学习(十)

    #入门学习系列的内容均是在学习<Python编程入门(第3版)>时的学习笔记 统计一个文本文档的信息,并输出出现频率最高的10个单词 #text.py #保留的字符 keep = {'a' ...

  7. 【转】MYSQL入门学习之十一:触发器的基本操作

    转载地址:http://www.2cto.com/database/201212/176781.html 触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句 ...

  8. 【转】MYSQL入门学习之七:MYSQL常用函数

    转载地址:http://www.2cto.com/database/201212/175864.html 一.数学函数  www.2cto.com           ABS(x)           ...

  9. 【数据库】2.0 MySQL入门学习(二)——如何获得MySQL以及MySQL安装

    1.0 如何获得MySQL: www.oracle.com https://dev.mysql.com/downloads/ 2.0 例如进入Oracle官网,找到MySQL: 进入页面后,切换到“资 ...

随机推荐

  1. Perforce 使用笔记

    Perforce requires at least two executables: the server (p4d), and at least one Perforce client progr ...

  2. 导出iPhone中安装的APP的iPA文件

    1.让iPhone连接电脑,打开iTunes,选择本电脑,然后点立即备份. 2.完成上一步的操作之后,选择应用,在iTunes中就会列出你从App Store中下载的应用,自己连接真机调试的应用是没有 ...

  3. C# WebApi传参之Get请求-AJAX

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.  学无止境,精益求精    在介绍本篇博客之前,先来温故下AJax的请求, ...

  4. C# 模拟并发

    每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客! 当然,题外话说多了,咱进入正题! 在处理大数据的时候,经常会发生并发,并发的情况发生后,会出现数据污读,从而产生脏数据. 首 ...

  5. Java基础之线程——使用Runnable接口(JumbleNames)

    控制台程序. 除了定义Thread新的子类外,还可以在类中实现Runnable接口.您会发现这比从Thread类派生子类更方便,因为在实现Runnable接口时可以从不是Thread的类派生子类,并且 ...

  6. Java堆内存

    Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象. 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ).老年代 ( Old ).新生代 ( Yo ...

  7. [Reprint] C++函数模板与类模板实例解析

    这篇文章主要介绍了C++函数模板与类模板,需要的朋友可以参考下   本文针对C++函数模板与类模板进行了较为详尽的实例解析,有助于帮助读者加深对C++函数模板与类模板的理解.具体内容如下: 泛型编程( ...

  8. [原创]java WEB学习笔记72:Struts2 学习之路-- 文件的上传下载,及上传下载相关问题

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. web处理jsp文件的三个阶段

    web处理jsp文件的三个阶段 翻译阶段(servlet) 编译阶段(class) 执行阶段(print页面标签) 推送html到浏览器

  10. sql xml 入门

    /*sql xml 入门:    --by jinjazz    --http://blog.csdn.net/jinjazz        1.xml:        能认识元素.属性和值      ...