練習:使用 SQL 查詢 Azure SQL Database
Contoso 已布建 SQL 資料庫,並將所有清查數據匯入數據存放區。 身為首席開發人員,系統會要求您對數據執行一些查詢。
在此練習中,您將查詢資料庫,以尋找資料庫中有多少產品,以及特定產品的庫存項目數目。
設定
為了節省時間,資料庫會透過執行腳本進行布建以及填入。 您將從 GitHub 存放庫下載文稿。 文稿會執行下列作業:
- 建立 Azure SQL Database 伺服器。
- 建立連結至伺服器的 Azure SQL 資料庫。
- 開啟防火牆以允許來自因特網的 SQL 流量。
- 連接到資料庫並執行 SQL 腳本來建立資料表並插入數據。
在 Cloud Shell 中執行下列 git clone 命令,以複製包含 GitHub 中數據和設定腳本的存放庫。 存放庫會複製到名為 dp-900/sql 的本機資料夾。
git clone https://github.com/MicrosoftLearning/DP-900T00A-Azure-Data-Fundamentals dp-900執行下列命令以移至 dp-900/sql 資料夾。
cd dp-900/sql執行 setup.sh 來建立 Azure SQL 資料庫和伺服器,如下所示:
bash setup.sh
指令碼需要幾分鐘的執行時間。 當腳本完成時,它會顯示資料庫的連線詳細數據。 記下使用者名稱和密碼。
連線至查詢編輯器
您將使用 Azure 入口網站中的內建查詢編輯器來連線到資料庫並查詢數據。
使用您啟用沙箱的相同帳戶登入 Azure 入口網站。
在入口網站的首頁上選取 [SQL 資料庫],然後選擇您剛建立的伺服器上的 [庫存資料庫]。
在資料庫的 [ 概觀 ] 頁面上,選取 [ 設定伺服器防火牆]。
在 [ 防火牆設定] 頁面上,選取 [新增用戶端 IP],然後選取 [ 儲存]。
關閉 [防火牆設定] 頁面,然後返回資料庫的 [概 觀 ] 頁面。
在 [ 概觀] 頁面上,選取左側功能表中的 [查詢編輯器][預覽 ]。
輸入您稍早執行安裝程式文本時所記錄的使用者名稱和密碼,然後選取 [ 確定]。
您會看到類似此範例的畫面:
小提示
在此步驟中新增用戶端 IP 不會考慮任何現有的 VPN 連線。 如果您無法完成步驟 7,請停用任何 VPN 連線,或從顯示的任何錯誤手動新增其他 IP 位址。
對資料庫執行查詢
將下列 SQL 語句複製到編輯器中。 選取 [執行],檢查所有專案是否正常運作。 您應該會看到四個清查項目的清單
SELECT * FROM Inventory
以下列語句取代目前的 SQL 語句,只顯示庫存中的香蕉數目:
SELECT * FROM Inventory WHERE Name = 'banana'應該有150個香蕉。
以以下語法取代 SQL 語法,以按庫存數量排序獲取庫存項目:
SELECT * FROM Inventory ORDER BY Stock
將 SQL 語句取代為如下所示的 語句。 此語句是使用 JOIN 運算子來結合 CustomerOrder 數據表和 Inventory 數據表中的數據的查詢。 它會列出客戶所下訂單的詳細資訊,連同每個訂購的項目的庫存資訊。
SELECT * FROM Inventory JOIN CustomerOrder ON Inventory.Id = CustomerOrder.InventoryId
變更查詢,以尋找已訂購柳丁的所有客戶名稱。
SELECT CustomerOrder.CustomerName FROM CustomerOrder JOIN Inventory ON CustomerOrder.InventoryId = Inventory.ID AND Inventory.Name = 'orange'此查詢應該會傳回兩個客戶:John Smith 和 Jane Brown
瞭解有多少客戶訂購檸檬。 此查詢會使用 COUNT\ 函式,其會傳回符合查詢準則的數據列數目。
SELECT COUNT(*) FROM CustomerOrder JOIN Inventory ON CustomerOrder.InventoryId = Inventory.ID AND Inventory.Name = 'lemon'此查詢的結果應該表示只有一個客戶已訂購檸檬。
約翰·史密斯訂購了哪些水果?
SELECT Inventory.Name FROM CustomerOrder JOIN Inventory ON CustomerOrder.InventoryId = Inventory.ID AND CustomerOrder.CustomerName = 'John Smith'此查詢的結果應該會顯示 John Smith 只訂購了橙子。
所有客戶訂購的項目總數量為何? CustomerOrder 資料表中的 Quantity 數據行包含每個訂單的數量。 此查詢會使用 SUM 聚合函數,將數量加總以產生總計:
SELECT SUM(CustomerOrder.Quantity) FROM CustomerOrder答案應該是 29。
您現在已瞭解如何對 SQL 資料庫執行 SQL 查詢。 如果您有時間,請嘗試使用 INSERT 語句將更多數據列新增至這兩個數據表、使用 UPDATE 語句修改數據列,以及使用 DELETE 語句移除數據列。