MySQL數據庫創建視圖


視圖可以說是一種虛擬表,建立在基本表的基礎上,通過關聯一個表或者多個表來獲取多個表中需要的字段,視圖只是用來查詢數據並不能用來存儲數據信息。

我有以下幾張表:

-------image表----

----org表------

-----user表-----

----album表----

 

我要將以上四張表關聯,可以用sql的join連接語句,但是會很麻煩,現在在mysql中創建一個視圖會很方便的解決這四個表連接的問題。sql語句如下:

CREATE
 VIEW v_image_org_user_album AS--創建視圖並命名v_image_org_user_album
    SELECT --先開from中表的命名
        a.id AS imgid,--將a表中的id命名為新的表(視圖)中的imgid字段,剩下的都一樣,就是將之前的字段重新命名到新視圖表中的字段
        a.comment AS comment,
        a.createtime AS createtime,
        a.path AS path,
        b.name AS authorname,
        b.orgcode AS userorgcode,
        c.name AS orgname,
        e.name AS album
    FROM
      t_image a,--image表命名為a
      t_user b,--user表命名為b
      t_organization c,--organzation表命名為c
      t_album_image d,--album_image表命名為d
      t_album e--album表命名為e
    WHERE
        a.useracc = b.account
            AND b.orgcode = c.orgcode
            AND a.id = d.imageid
            AND d.albumid = e.id

在數據庫中的的編譯器中執行該段sql語句,生成以v_image_org_user_album命名的視圖表,並且會自動匹配到數據庫中存儲的數據

然后在項目中創建相應的域類(grails項目),字段就是視圖表中新命名的字段,就可以直接按照新字段進行sql語句的增刪改查操作,但是,項目移植時視圖要重新生成。這樣就將多個表進行關聯了,可以直接使用視圖表中的字段。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM