在 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 查詢。在即將發佈的文章中,我們將介紹一些更進階的功能。