SQL: Join 연산 및 키의 개념

찬민·2024년 8월 6일

TIL

목록 보기
30/62

Join 연산

Join 연산은 SQL에서 두 개 이상의 테이블을 결합하여 하나의 결과 집합을 만드는 연산이다. 데이터베이스에서 여러 테이블에 분산된 데이터를 통합하고 관련된 정보를 조회하기 위해 사용된다. Join 연산을 통해 테이블 간의 관계를 정의하고, 복잡한 쿼리를 작성할 수 있다. 주요 Join 연산의 종류와 그 사용 방법은 다음과 같다:

  1. INNER JOIN: 두 테이블 간의 공통된 데이터를 결합하여 새로운 결과를 생성한다. 즉, 조인 조건을 만족하는 행만 결과에 포함된다.

    예시:

    SELECT * FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

    Orders 테이블과 Customers 테이블을 CustomerID 컬럼을 기준으로 결합하며, 두 테이블에서 일치하는 행만 결과로 반환하는 SQL 문이다.

  2. LEFT JOIN (LEFT OUTER JOIN): 왼쪽 테이블의 모든 데이터를 반환하며, 오른쪽 테이블과 일치하는 데이터가 없는 경우 NULL 값을 반환한다.

    예시:

    SELECT * FROM Orders LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

    Orders 테이블의 모든 데이터와 해당 데이터에 매칭되는 Customers 테이블의 데이터를 반환한다. 매칭되는 데이터가 없을 경우, NULL로 채워진다.

  3. RIGHT JOIN (RIGHT OUTER JOIN): 오른쪽 테이블의 모든 데이터를 반환하며, 왼쪽 테이블과 일치하는 데이터가 없는 경우 NULL 값을 반환한다.

    예시:

    SELECT * FROM Orders RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

    Customers 테이블의 모든 데이터와 해당 데이터에 매칭되는 Orders 테이블의 데이터를 반환한다. 매칭되는 데이터가 없을 경우, NULL로 채워진다.

  4. FULL JOIN (FULL OUTER JOIN): 두 테이블에서 일치하는 모든 데이터와, 일치하지 않는 데이터도 포함하여 반환한다. 즉, 두 테이블의 모든 데이터를 포함하며, 일치하지 않는 부분은 NULL로 표시된다.

    예시:

    SELECT * FROM Orders FULL JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

    Orders와 Customers 테이블의 모든 데이터를 반환하며, 두 테이블에서 일치하지 않는 데이터는 NULL로 채워진다.

  5. CROSS JOIN: 두 테이블의 모든 조합을 반환하는 조인이다. 즉, 두 테이블의 모든 가능한 쌍을 결과로 반환한다.

    예시:

    SELECT * FROM Products CROSS JOIN Categories;

    Products 테이블의 모든 행과 Categories 테이블의 모든 행을 조합하여 반환하는 SQL 문이다.

Primary Key와 Foreign Key의 차이

Primary Key와 Foreign Key는 데이터베이스에서 테이블 간의 관계를 정의하고, 데이터의 무결성을 유지하는 중요한 개념이다. 두 키는 각각의 역할과 기능이 다르며, 다음과 같은 차이점을 가지고 있다:

  1. Primary Key:

    • Primary Key는 테이블의 각 행(row)을 고유하게 식별하는 컬럼 또는 컬럼 집합이다. Primary Key는 테이블 내에서 중복되지 않는 고유한 값을 가져야 하며, NULL 값을 가질 수 없다.

    예시:

    CREATE TABLE Employees (
        EmployeeID INT PRIMARY KEY,
        Name VARCHAR(50),
        Position VARCHAR(50)
    );

    Employees 테이블에서 EmployeeID는 각 직원의 고유 식별자이며 Primary Key로 설정된 SQL 문이다.

  2. Foreign Key:

    • Foreign Key는 다른 테이블의 Primary Key를 참조하는 컬럼이다. Foreign Key는 한 테이블에서 다른 테이블로의 관계를 정의하며, 참조된 테이블에서 존재해야 하는 값을 가져야 한다.

    예시:

    CREATE TABLE Orders (
        OrderID INT,
        CustomerID INT,
        OrderDate DATE,
        FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
    );

    Orders 테이블에서 CustomerID는 Customers 테이블의 CustomerID를 참조하는 Foreign Key로 설정된 SQL 문이다.

0개의 댓글