数据库 · 31 10 月, 2024

SQL Server連接兩張表的實例:從零開始(sqlserver兩張表)

SQL Server連接兩張表的實例:從零開始

在數據庫管理系統中,SQL Server是一個廣泛使用的關聯數據庫管理系統。當我們需要從多個表中提取數據時,連接(JOIN)操作是必不可少的。本文將從零開始介紹如何在SQL Server中連接兩張表,並提供實際的示例來幫助讀者理解這一過程。

什麼是表連接?

表連接是指在SQL查詢中,根據某些條件將兩張或多張表的數據結合在一起。這樣可以從不同的表中提取相關的信息,形成一個更完整的數據集。SQL Server支持多種連接類型,包括內部連接(INNER JOIN)、外部連接(LEFT JOIN、RIGHT JOIN)、全外部連接(FULL JOIN)等。

示例數據表

為了更好地理解表連接,我們將使用以下兩張示例表:

  • Customers(顧客表)
  •     +----+----------+
        | ID | Name     |
        +----+----------+
        | 1  | Alice    |
        | 2  | Bob      |
        | 3  | Charlie  |
        +----+----------+
        
  • Orders(訂單表)
  •     +----+------------+----------+
        | ID | CustomerID | Amount   |
        +----+------------+----------+
        | 1  | 1          | 100      |
        | 2  | 1          | 150      |
        | 3  | 2          | 200      |
        +----+------------+----------+
        

內部連接(INNER JOIN)

內部連接是最常用的連接類型,它只返回在兩張表中都有的記錄。以下是使用內部連接查詢顧客及其訂單的SQL語句:


SELECT Customers.Name, Orders.Amount
FROM Customers
INNER JOIN Orders ON Customers.ID = Orders.CustomerID;

執行上述查詢後,結果將顯示所有有訂單的顧客及其訂單金額:

+-------+--------+
| Name  | Amount |
+-------+--------+
| Alice | 100    |
| Alice | 150    |
| Bob   | 200    |
+-------+--------+

左外部連接(LEFT JOIN)

左外部連接返回左表中的所有記錄,即使在右表中沒有匹配的記錄。以下是使用左外部連接查詢顧客及其訂單的SQL語句:


SELECT Customers.Name, Orders.Amount
FROM Customers
LEFT JOIN Orders ON Customers.ID = Orders.CustomerID;

執行上述查詢後,結果將顯示所有顧客及其訂單金額,即使某些顧客沒有訂單:

+-------+--------+
| Name  | Amount |
+-------+--------+
| Alice | 100    |
| Alice | 150    |
| Bob   | 200    |
| Charlie | NULL  |
+-------+--------+

右外部連接(RIGHT JOIN)

右外部連接返回右表中的所有記錄,即使在左表中沒有匹配的記錄。以下是使用右外部連接查詢顧客及其訂單的SQL語句:


SELECT Customers.Name, Orders.Amount
FROM Customers
RIGHT JOIN Orders ON Customers.ID = Orders.CustomerID;

由於在這個例子中,所有訂單都有對應的顧客,因此結果與內部連接相同。

總結

在本文中,我們介紹了如何在SQL Server中連接兩張表,並通過實際的示例展示了內部連接和外部連接的用法。這些基本的SQL查詢技巧對於數據分析和報告生成至關重要。無論您是數據庫管理員還是開發人員,掌握這些技能都能幫助您更有效地處理數據。

如果您需要高效的數據庫解決方案,考慮使用香港VPS云服务器來支持您的業務需求。無論是數據存儲還是應用程序托管,選擇合適的服务器將為您的項目提供穩定的基礎。