탐구생활/SQL 탐구생활

SQL 기초 구문 배우기(SQL Joins, SQL UNION)

daily uza 2023. 5. 16.
728x90

목차

    SQL JOIN

    JOIN 절은 두 개 이상의 테이블 사이의 관련 열을 기반으로 행을 결합하는 데 사용됩니다.

    SQL JOIN 실습하기

    "Orders" 테이블에서 선택한 항목을 살펴보겠습니다.

    OrderID CustomerID OrderDate
    10308 2 1996-09-18
    10309 37 1996-09-19
    10310 77 1996-09-20

    그런 다음 "Customers" 테이블에서 선택한 항목을 확인합니다.

    CustomerID CustomerName ContactName Country
    1 Alfreds Futterkiste Maria Anders Germany
    2 Ana Trujillo Emparedados y helados Ana Trujillo Mexico
    3 Antonio Moreno Taquería Antonio Moreno Mexico

    "Orders" 테이블의 "CustomerID" 열은 "Customers" 테이블의 "CustomerID"를 참조합니다. 위의 두 테이블 간의 관계는 "CustomerID" 열입니다. 그런 다음 두 테이블에서 일치하는 값이 있는 레코드를 선택하는 다음 SQL 문(INNER JOIN 포함)을 만들 수 있습니다.

    SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
    FROM Orders
    INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

    다양한 유형의 SQL JOIN

    SQL JOIN 종류
    SQL JOIN 종류

    SQL (INNER)JOIN 실습하기

    (INNER) JOIN: 두 테이블에서 일치하는 값이 있는 레코드를 반환합니다.

    SELECT column_name(s)
    FROM table1
    INNER JOIN table2
    ON table1.column_name = table2.column_name;

    SQL LEFT (OUTER)JOIN 실습하기

    LEFT (OUTER) JOIN: 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 반환합니다.

    SELECT column_name(s)
    FROM table1
    LEFT JOIN table2
    ON table1.column_name = table2.column_name;

    SQL RIGHT (OUTER)JOIN 실습하기

    RIGHT (OUTER) JOIN: 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 일치하는 레코드를 반환합니다.

    SELECT column_name(s)
    FROM table1
    RIGHT JOIN table2
    ON table1.column_name = table2.column_name;

    FULL (OUTER) JOIN: 왼쪽 또는 오른쪽 테이블에 일치하는 항목이 있으면 모든 레코드를 반환합니다.

    SQL FULL (OUTER)JOIN 실습하기

    SELECT column_name(s)
    FROM table1
    FULL OUTER JOIN table2
    ON table1.column_name = table2.column_name
    WHERE condition;

    SQL SELF JOIN 실습하기

    SQL SELF JOIN은 일반 조인이지만 테이블이 자체적으로 조인됩니다. T1과 T2는 동일한 테이블에 대한 서로 다른 테이블 별칭입니다.

    SELECT column_name(s)
    FROM table1 T1, table1 T2
    WHERE condition;

    SQL UNION

    UNION 연산자는 둘 이상의 SELECT 문의 결과 집합을 결합하는 데 사용됩니다. UNION 내의 모든 SELECT 문은 동일한 수의 열을 가져야 합니다. 열의 데이터 유형도 유사해야 합니다. 모든 SELECT 문의 열도 같은 순서여야 합니다.

    SQL UNION 기본예제

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2;

    SQL UNION ALL 기본예제

    UNION 연산자는 기본적으로 고유한 값만 선택합니다. 중복 값을 허용하려면 UNION ALL을 사용합니다.

    SELECT column_name(s) FROM table1
    UNION ALL
    SELECT column_name(s) FROM table2;

    SQL UNION/UNION ALL 실습하기

    "Customers" table:

    CustomerID CustomerName ContactName Address City PostalCode Country
    1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
    2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
    3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico

    "Suppliers" table:

    SupplierID SupplierName ContactName Address City PostalCode Country
    1 Exotic Liquid Charlotte Cooper 49 Gilbert St. London EC1 4SD UK
    2 New Orleans Cajun Delights Shelley Burke P.O. Box 78934 New Orleans 70117 USA
    3 Grandma Kelly's Homestead Regina Murphy 707 Oxford Rd. Ann Arbor 48104 USA

    SQL UNION, 일부 고객 또는 공급업체의 도시가 동일한 경우 UNION은 고유한 값만 선택하기 때문에 각 도시는 한 번만 나열됩니다. UNION ALL을 사용하여 중복 값도 선택할 수 있습니다.

    SELECT City FROM Customers
    UNION
    SELECT City FROM Suppliers
    ORDER BY City;

    SQL UNION ALL, 다음 SQL 문은 "Customers" 및 "Suppliers" 테이블 모두에서 도시(중복 값도 있음)를 반환합니다.

    SELECT City FROM Customers
    UNION ALL
    SELECT City FROM Suppliers
    ORDER BY City;

    SQL UNION ALL, 임시열(가상의 열)생성한 SQL UNION ALL

    SELECT 'Customer' AS Type, ContactName, City, Country
    FROM Customers
    UNION
    SELECT 'Supplier', ContactName, City, Country
    FROM Suppliers;

    Written by [DAILY UZA], powered by ChatGPT

    728x90

    댓글

    💲 추천 글