首頁 > 資料庫 > mysql教程 > MYSQL入门学习之十:视图的基本操作_MySQL

MYSQL入门学习之十:视图的基本操作_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-01 13:37:42
原創
918 人瀏覽過

bitsCN.com

MYSQL入门学习之十:视图的基本操作

 

相关链接:

MYSQL入门学习之一:基本操作

http:///database/201212/173868.html

MYSQL入门学习之二:使用正则表达式搜索

http:///database/201212/173869.html

MYSQL入门学习之三:全文本搜索

http:///database/201212/173873.html

MYSQL入门学习之四:MYSQL的数据类型

http:///database/201212/175536.html

MYSQL入门学习之五:MYSQL的字符集

http:///database/201212/175541.html

MYSQL入门学习之六:MYSQL的运算符

http:///database/201212/175862.html

MYSQL入门学习之七:MYSQL常用函数

http:///database/201212/175864.html

MYSQL入门学习之八:数据库及表的基本操作

http:///database/201212/175867.html

MYSQL入门学习之九:索引的简单操作

http:///database/201212/176772.html

 

一、视图的基本介绍    

        视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。

        使用视图需要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必知必会》

bitsCN.com
相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
java - 關於註解@Database(ForceMaster = true)的問題
來自於 1970-01-01 08:00:00
0
0
0
mongodb 怎麼合併多個 database
來自於 1970-01-01 08:00:00
0
0
0
Mongodb如何批次刪除指定條件的資料庫?
來自於 1970-01-01 08:00:00
0
0
0
防止ASP.NET VB.NET中下拉清單複製項目的方法
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板