SQL: Join 연산 및 키의 개념

찬민·2024년 8월 6일
0

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;

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

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

    예시:

    SELECT * FROM Products CROSS JOIN Categories;

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

Primary Key와 Foreign Key의 차이

Primary KeyForeign 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 테이블에서 CustomerIDCustomers 테이블의 CustomerID를 참조하는 Foreign Key로 설정된 SQL 문이다.

0개의 댓글