<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    朋的博客

    MySQL資料,Java技術,管理思想,博弈論,Ajax,XP極限編程,H.264,HEVC,HDR
    隨筆 - 86, 文章 - 59, 評論 - 1069, 引用 - 0
    數據加載中……

    MySQL 5.0新特性之視圖(中文教程,原創)

             花了國慶的部分時間,終于完成了這個教程的翻譯了,現在可以想象當年候捷先生翻譯Think in Java是多么困難的了,唉,累啊,好久沒運動過了,快找個機會去玩玩??上钲跊]什么地方可以運動的,訂運動場稍微慢一點就沒了……政府問題,不去討論。

             回到正題,關于這個翻譯我十分推薦大家看看,因為對MySQL來說,實現了視圖確實是一個很大的進步,而且能給MySQL開發者帶來的好處不僅僅是速度上的,更多是開發和維護效率上的改進。


            這里舉一個書中的例子吧:


    Example: Constraint checks 示例:約束條件檢查

    MySQL支持NOT NULL的列約束,如:
     
    CREATE TABLE t ( 

      column1 INT NOT NULL,  

      column2 INT NOT NULL); 
     


    這并非MySQL約束的全部功能,但是還是不能做到只允許兩列中其中一列可以為空或者讓列1數值在1到5之間,又或者使列1在某些特殊情況下可以為空。不過,我們可以使用視圖的定義通過下面的方法實現:

    CREATE TABLE t (column1 INT, column2 INT);
     
    CREATE VIEW v AS

    SELECT column1, column2 FROM t

    WHERE (column1 is NOT NULL OR column2 IS NOT NULL) 

      AND column1 BETWEEN 1 AND 5

    WITH CHECK OPTION; 

     
    之后就可以通過對視圖v進行插入或更新,達到我前面所需要的效果,在特殊情況下允許為空。


     是不是比較有用呢?前面我寫了篇關于MySQL子查詢的文章,但有了視圖其實可以免去部分使用子查詢的情況,大家看看下面這個例子吧:



    示例:子查詢的替代
     
    在MySQL 4.1版本以后就開始支持FROM語句中的子查詢了,例如:

     
    SELECT *

    FROM (SELECT * FROM t2 UNION SELECT * FROM t3) AS t2_t3; 

     
    但是下面這樣做會更好:
     

    CREATE VIEW t2_t3 AS

    SELECT * FROM t2 UNION SELECT * FROM t3;
     
    SELECT * FROM t2_t3;



    把這個轉化為對視圖的查詢會更好更方便,因為你可能會使用復雜的對大數字的查詢語句(比方說55個字),語句中包括對系統變量的一些定義,那如果有人改變了表t2,你可能要改這個55字的SELECT語句,然而使用視圖,一切都沒變,你需要改的只是視圖定義中的表名。 


     
    另一個子查詢的例子:在MySQL 5.0.3中不允許使用AVG(DISTINCT ...),因為下面這個語句是非法語句: 

     
    SELECT AVG(DISTINCT column1) FROM t;
     
    但采用下面方法能實現一樣的效果,而且是合法的:
     
    CREATE VIEW v AS SELECT DISTINCT column1 FROM t;
     
    SELECT AVG(column1) FROM v;


    下面是中文版的下載地址:

    http://www.tkk7.com/Files/chenpengyi/MySQL-Views-Translation-CN.rar
    轉載時保留個人及出處信息,否則可能被視為侵權,呵呵。

    如果需要英文原版,可以到下面地址下載:
    http://dev.mysql.com/tech-resources/articles/mysql-views.pdf


    posted on 2005-10-05 11:39 benchensz 閱讀(6968) 評論(5)  編輯  收藏 所屬分類: 隨便寫寫(比較有用,值得看看)

    評論

    # re: MySQL 5.0新特性之視圖(中文教程,原創)  回復  更多評論   

    還有幾本書有中文翻譯沒有?
    我只看到過
    主題 MySQL 5.x 相關資料 (全中文) zz « 上一主題 | 下一主題 »

    sensebb_1 發表于:2005-10-14 17:57

    發帖: 862
    積分: 0
    注冊: 2003-04-14
    MySQL 5.0
    的正式版相信不久就出來了 (現在是 5.0.13 rc1),
    快快了解一下它吧!


    * MySQL 5.0 新特性教程 (系列)

    - 第一部分: 存儲過程 (Store Procedure)
    第一講: http://www.phpv.net/article.php/1460
    第二講: http://www.phpv.net/article.php/1461
    第三講: http://www.phpv.net/article.php/1462
    第四講: http://www.phpv.net/article.php/1463

    * MySQL 5.0 中的觸發器 (trigger)

    http://www.phpv.net/article.php/1473

    * 看不懂 MySQL 出錯時的代碼? 這里有詳細的錯誤碼
    (Error Number) 對應表:

    http://www.phpv.net/article.php/1477

    還缺:
    MySQL 5.0 Data Dictionary
    The MySQL 5.0 Archive Storage Engine
    MySQL 5.0's Pluggable Storage Engine Architecture, Part 1: An Overview
    2005-10-31 13:44 | l1t

    # re: MySQL 5.0新特性之視圖(中文教程,原創)  回復  更多評論   

    那怎樣修改視圖呢?
    比如說我寫一個視圖為
    create view test as select * from table1;
    當我想改成 select name from table1;
    的時候我怎么改?。?
    2005-11-25 16:25 | gqin

    # re: MySQL 5.0新特性之視圖(中文教程,原創)  回復  更多評論   

    Good place, but need more!
    2006-02-10 17:48 | timmy

    # re:那怎樣修改視圖呢?  回復  更多評論   

    @gqin
    mysql5手冊里有
    create or replace view test as select name from table1;

    alter view test as select name from table1;
    2006-02-28 16:17 | guest

    # re: MySQL 5.0新特性之視圖(中文教程,原創)  回復  更多評論   

    alter view test as select name from table1
    2006-04-05 20:59 | 陳朋奕
    主站蜘蛛池模板: 曰韩无码AV片免费播放不卡| 亚洲AV成人无码网站| 成人黄网站片免费视频| 亚洲精品自在在线观看| 任你躁在线精品免费| 亚洲av永久无码精品漫画| 秋霞人成在线观看免费视频| 西西人体44rt高清亚洲| 久久精品无码专区免费青青| 亚洲精品视频在线| 亚洲视频免费播放| 2020久久精品亚洲热综合一本 | 最新69国产成人精品免费视频动漫| 亚洲欧洲日产国码www| www.999精品视频观看免费| 亚洲综合欧美色五月俺也去| 永久免费观看的毛片的网站| 男女猛烈xx00免费视频试看| 国产aⅴ无码专区亚洲av麻豆 | 中文字幕亚洲免费无线观看日本 | 国产精品成人观看视频免费| 亚洲看片无码在线视频| 国产在线观看免费完整版中文版| 免费人成再在线观看网站 | 在线观看成人免费视频| 黄网站色视频免费观看45分钟| 三上悠亚亚洲一区高清| 99在线在线视频免费视频观看| 亚洲国产精品日韩在线观看 | 最新欧洲大片免费在线| 国产精品亚洲二区在线| 亚洲日本va中文字幕久久| 91免费国产在线观看| 黄色三级三级免费看| 亚洲精品视频在线观看免费| 日本不卡视频免费| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | WWW国产成人免费观看视频| 亚洲一区二区电影| 日本特黄特色aa大片免费| 99久久99这里只有免费的精品 |