Navicat 部落格

2018 年 1 月 3 日,由 Robert Gravelle 撰寫

在 Navicat for MySQL、PostgreSQL、SQLite、MariaDB 和 Navicat Premium 的非 Essentials 版本中使用查詢建立工具,即使只有些許的 SQL 知識都能建立和編輯查詢。在今天的文章中,我們將使用它來編寫查詢,以得到在指定年份發佈的電影中出現過的演員的清單。

來源資料庫

我們將要構建的查詢將在 Sakila 範例資料庫執行。MySQL AB文件團隊的前成員 Mike Hillyer建立了 Sakila 資料庫,專門提供用於書籍、教學和文章(就像這篇文章)的標準結構描述。

該資料庫包含許多以電影業為主題的資料表,涵蓋了演員和電影製片廠以至影碟出租店的所有內容。如需下載和安裝 Sakila 資料庫的說明,請參閱Generating Reports on MySQL Data(產生 MySQL 資料的報表)教學。

開啟查詢建立工具

你可以將查詢建立工具視為能視覺化地構建查詢的工具。它可以在「查詢設計器」中存取。現在,我們將透過開啟一個新查詢來啟動它:

  • 按一下主要工具列上的「查詢」圖示,然後按一下「物件」工具列中的「新增查詢」按鈕:
  • 在「查詢設計器」中,按一下「查詢建立工具」按鈕以開啟視覺 SQL 建立工具。

    資料庫物件顯示在左窗格中,而右窗格則分為兩部分:上面的「圖表設計」窗格和下面的「語法」窗格:

構建年度電影演員的查詢

首先,選取資料表以便查詢建立工具知道要在欄位清單顯示哪些欄位:

  • 將資料表或檢視從左窗格拖到「圖表設計」窗格,或者按兩下它以將其加到查詢中。我們需要 actor、film_actor 和 film 資料表。
  • 若要添加資料表別名,你可以按一下每個資料表旁邊的「<alias>」來指定資料表的別名。或者,只需在「圖表設計」窗格中按兩下資料表名稱,然後輸入別名。
  • 請注意查詢建立工具知道資料表之間的關係。這是因為之前已經在資料表物件中宣告了外部索引鍵條件約束:

  • 若要在查詢中包含欄位,請在「圖表設計」窗格中勾選欄位名稱的左邊的方塊。若要包含所有欄位,請按一下物件標題左邊的方塊。現在,我們選取演員的名字和姓氏以及電影名稱。

加入 WHERE 準則

按一下 WHERE 關鍵字旁邊的「<按這裡加入條件>」會加入預設的 WHERE 條件「<--> = <-->」。

  • 按一下左邊的「<--> = <-->」選取一個欄位。這將彈出一個對話方塊,包含欄位清單和編輯索引標籤。
  • 按一下「清單」索引標籤,然後選擇 f.release_year 欄位。
  • 按一下「確定」關閉對話方塊。
  • 接下來,按一下右邊的「<--> = <-->」設定發佈年份。這次在「編輯」索引標籤中輸入值「2006」。按一下「確定」關閉對話方塊。
  • 按一下「確定」關閉查詢建立工具。你現在應該可以在查詢編輯器中看到自動產生的 SELECT 語句
  • SELECT
    a.first_name,
    a.last_name,
    f.title
    FROM
    actor AS a
    INNER JOIN film_actor AS fa ON fa.actor_id = a.actor_id
    INNER JOIN film AS f ON fa.film_id = f.film_id
    WHERE
    f.release_year = 2006
    	
  • 按一下「執行」按鈕以執行查詢。結果將依電影名稱排序:

總結

有別於以往的查詢編寫,無論你是新手還是經驗豐富的 DBA,Navicat 的查詢建立工具都可以令你更輕鬆地編寫 SELECT 查詢。在即將發佈的文章中,我們將介紹一些更進階的功能。

Navicat 文章
頻道記錄
分享
部落格封存檔