練習:使用 SQL 查詢 Azure SQL Database

已完成

Contoso 已布建 SQL 資料庫,並將所有清查數據匯入數據存放區。 身為首席開發人員,系統會要求您對數據執行一些查詢。

在此練習中,您將查詢資料庫,以尋找資料庫中有多少產品,以及特定產品的庫存項目數目。

設定

為了節省時間,資料庫會透過執行腳本進行布建以及填入。 您將從 GitHub 存放庫下載文稿。 文稿會執行下列作業:

  • 建立 Azure SQL Database 伺服器。
  • 建立連結至伺服器的 Azure SQL 資料庫。
  • 開啟防火牆以允許來自因特網的 SQL 流量。
  • 連接到資料庫並執行 SQL 腳本來建立資料表並插入數據。
  1. 在 Cloud Shell 中執行下列 git clone 命令,以複製包含 GitHub 中數據和設定腳本的存放庫。 存放庫會複製到名為 dp-900/sql 的本機資料夾。

    git clone https://github.com/MicrosoftLearning/DP-900T00A-Azure-Data-Fundamentals dp-900
    
  2. 執行下列命令以移至 dp-900/sql 資料夾。

    cd dp-900/sql
    
  3. 執行 setup.sh 來建立 Azure SQL 資料庫和伺服器,如下所示:

    bash setup.sh
    

指令碼需要幾分鐘的執行時間。 當腳本完成時,它會顯示資料庫的連線詳細數據。 記下使用者名稱和密碼。

連線至查詢編輯器

您將使用 Azure 入口網站中的內建查詢編輯器來連線到資料庫並查詢數據。

  1. 使用您啟用沙箱的相同帳戶登入 Azure 入口網站。

  2. 在入口網站的首頁上選取 [SQL 資料庫],然後選擇您剛建立的伺服器上的 [庫存資料庫]

    主畫面上的 [SQL Database] 功能表選項。

  3. 在資料庫的 [ 概觀 ] 頁面上,選取 [ 設定伺服器防火牆]。

    SQL Database 實例的 [概觀] 頁面。用戶已選取 [設定伺服器防火牆]。

  4. 在 [ 防火牆設定] 頁面上,選取 [新增用戶端 IP],然後選取 [ 儲存]。

    SQL Database 實例的 [防火牆設定] 頁面。用戶已選取 [新增用戶端 IP]。

  5. 關閉 [防火牆設定] 頁面,然後返回資料庫的 [概 ] 頁面。

  6. 在 [ 概觀] 頁面上,選取左側功能表中的 [查詢編輯器][預覽 ]。

  7. 輸入您稍早執行安裝程式文本時所記錄的使用者名稱和密碼,然後選取 [ 確定]。

    Azure 入口網站中的 SQL Database 登入頁面。

    您會看到類似此範例的畫面:

    SQL Database 查詢編輯器。

小提示

在此步驟中新增用戶端 IP 不會考慮任何現有的 VPN 連線。 如果您無法完成步驟 7,請停用任何 VPN 連線,或從顯示的任何錯誤手動新增其他 IP 位址。

對資料庫執行查詢

  1. 將下列 SQL 語句複製到編輯器中。 選取 [執行],檢查所有專案是否正常運作。 您應該會看到四個清查項目的清單

    SELECT * 
    FROM Inventory
    

    在 SQL Database 查詢編輯器中執行基本查詢。

  2. 以下列語句取代目前的 SQL 語句,只顯示庫存中的香蕉數目:

    SELECT * 
    FROM Inventory 
    WHERE Name = 'banana'
    

    應該有150個香蕉。

    在 SQL Database 查詢編輯器中執行 WHERE 查詢。

  3. 以以下語法取代 SQL 語法,以按庫存數量排序獲取庫存項目:

    SELECT * 
    FROM Inventory 
    ORDER BY Stock
    

    在 SQL Database 查詢編輯器中執行 ORDER 查詢。

  4. 將 SQL 語句取代為如下所示的 語句。 此語句是使用 JOIN 運算子來結合 CustomerOrder 數據表和 Inventory 數據表中的數據的查詢。 它會列出客戶所下訂單的詳細資訊,連同每個訂購的項目的庫存資訊。

    SELECT * 
    FROM Inventory 
    JOIN CustomerOrder ON Inventory.Id = CustomerOrder.InventoryId
    

    在 SQL Database 查詢編輯器中執行 JOIN 查詢。

  5. 變更查詢,以尋找已訂購柳丁的所有客戶名稱。

    SELECT CustomerOrder.CustomerName 
    FROM CustomerOrder
    JOIN Inventory ON CustomerOrder.InventoryId = Inventory.ID
    AND Inventory.Name = 'orange'
    

    此查詢應該會傳回兩個客戶:John Smith 和 Jane Brown

  6. 瞭解有多少客戶訂購檸檬。 此查詢會使用 COUNT\ 函式,其會傳回符合查詢準則的數據列數目。

    SELECT COUNT(*) 
    FROM CustomerOrder
    JOIN Inventory ON CustomerOrder.InventoryId = Inventory.ID
    AND Inventory.Name = 'lemon'
    

    此查詢的結果應該表示只有一個客戶已訂購檸檬。

  7. 約翰·史密斯訂購了哪些水果?

    SELECT Inventory.Name 
    FROM CustomerOrder
    JOIN Inventory ON CustomerOrder.InventoryId = Inventory.ID
    AND CustomerOrder.CustomerName = 'John Smith'
    

    此查詢的結果應該會顯示 John Smith 只訂購了橙子。

  8. 所有客戶訂購的項目總數量為何? CustomerOrder 資料表中的 Quantity 數據行包含每個訂單的數量。 此查詢會使用 SUM 聚合函數,將數量加總以產生總計:

    SELECT SUM(CustomerOrder.Quantity) 
    FROM CustomerOrder
    

    答案應該是 29。

您現在已瞭解如何對 SQL 資料庫執行 SQL 查詢。 如果您有時間,請嘗試使用 INSERT 語句將更多數據列新增至這兩個數據表、使用 UPDATE 語句修改數據列,以及使用 DELETE 語句移除數據列。