• <menu id="w2i4a"></menu>
  • logo Navicat使用教程-2019.1

    文檔首頁>>Navicat使用教程-2019.1>>Navicat使用教程:了解關(guān)系數(shù)據(jù)庫中的視圖

    Navicat使用教程:了解關(guān)系數(shù)據(jù)庫中的視圖


    數(shù)據(jù)庫視圖是一個虛擬表或邏輯表,由SELECT查詢組成。與數(shù)據(jù)庫表非常相似,視圖也包含可以查詢的行和列。包括MySQL在內(nèi)的大多數(shù)數(shù)據(jù)庫管理系統(tǒng),甚至都允許您通過視圖更新基礎(chǔ)表中的數(shù)據(jù),但有一些需要注意的事項(xiàng)。在今天的文章中,我們將學(xué)習(xí)一種視圖以及如何使用Navicat Premium作為客戶端為MySQL 8創(chuàng)建視圖。

    Navicat Premium 是一套數(shù)據(jù)庫管理工具,讓你使用一個程序即可同時連接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 數(shù)據(jù)庫。

    點(diǎn)擊下載Navicat Premium試用版

    基本語法

    在MySQL中,您可以使用CREATE VIEW語句創(chuàng)建一個新視圖。這是基本語法:

    CREATE
       [ALGORITHM = {MERGE | TEMPTABLE | UNDEFINED}]
    VIEW view_name [(column_list)]
    AS
    select-statement;

    現(xiàn)在,讓我們更詳細(xì)地檢查語法。

    視圖處理算法

    ALGORITHM屬性告訴MySQL創(chuàng)建視圖時使用哪種機(jī)制。MySQL提供了三種算法:MERGE、TEMPTABLE和UNDEFINED:

    • MERGE算法將輸入查詢與定義視圖的SELECT語句組合為一個查詢。然后,MySQL執(zhí)行組合查詢以返回合并的結(jié)果集。MERGE算法不能應(yīng)用于包含聚合函數(shù)(例如MIN、MAX、SUM、COUNT、AVG或DISTINCT、GROUP BY、HAVING、LIMIT、UNION和UNION ALL)的SELECT語句。如果無法應(yīng)用MERGE算法,MySQL會自動將算法更改為UNDEFINED。

    • TEMPTABLE算法首先基于定義視圖的SELECT語句創(chuàng)建一個臨時表,然后針對該臨時表執(zhí)行輸入查詢。因?yàn)镸ySQL必須創(chuàng)建一個臨時表來存儲結(jié)果集并將數(shù)據(jù)從基表移到臨時表,所以TEMPTABLE算法的效率不如MERGE算法。

    • 創(chuàng)建視圖而不指定顯式算法時,UNDEFINED是默認(rèn)算法。UNDEFINED算法使MySQL可以選擇使用MERGE還是TEMPTABLE算法。由于效率更高,MySQL首先選擇了MERGE算法,但如果不能采用MERGE,則會選擇TEMPTABLE算法。

    視圖名稱

    只要遵循與表相同的命名規(guī)則,就可以為視圖選擇任何名稱。此外,視圖和表在數(shù)據(jù)庫中共享相同的名稱空間,因此您不能為視圖指定與任何現(xiàn)有視圖相同的名稱。

    SELECT語句

    在SELECT語句中,您可以從數(shù)據(jù)庫中存在的任何表或視圖中查詢數(shù)據(jù)。但是,SELECT語句遵循一些規(guī)則:

    • SELECT語句可以在WHERE子句中包含子查詢,但不能在FROM子句中包含子查詢。

    • SELECT語句不能引用任何變量,包括局部變量、用戶變量和會話變量。

    • SELECT語句不能引用準(zhǔn)備好的語句的參數(shù)。

    在Navicat中創(chuàng)建視圖

    在Navicat中,可以通過單擊主工具欄上的“視圖”按鈕,然后單擊“對象”工具欄上的“新視圖”來創(chuàng)建新視圖:

    Navicat使用教程:了解關(guān)系數(shù)據(jù)庫中的視圖

    “定義”選項(xiàng)卡是您編寫SQL的地方。您甚至可以使用View Builder來幫助編寫語句!

    Navicat使用教程:了解關(guān)系數(shù)據(jù)庫中的視圖

    可以在“高級”選項(xiàng)卡上找到“算法”,以及其他一些選項(xiàng):

    Navicat使用教程:了解關(guān)系數(shù)據(jù)庫中的視圖

    完成后,您可以使用“預(yù)覽”按鈕測試您的“視圖”,然后單擊“保存”將其保存。

    結(jié)論

    視圖是將一個或多個表的數(shù)據(jù)以可查詢的格式組合在一起的好方法,但請記住,使用數(shù)據(jù)庫視圖存在一些缺點(diǎn)。首先,從數(shù)據(jù)庫視圖查詢數(shù)據(jù)可能會很慢——特別是如果該視圖是基于其他視圖創(chuàng)建的。此外,每當(dāng)更改視圖引用的表的結(jié)構(gòu)時,都必須記住要更改視圖。


    想要購買Navicat Premium正版授權(quán),或了解更多產(chǎn)品信息請點(diǎn)擊“咨詢在線客服”

    850×682.png

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();