제로베이스 데이터 취업 스쿨 9주차 - 2 (SQL 3일차 - Union, Join, Concat)

김휘담·2024년 3월 26일

이 테이블들을 토대로 예제 실습 진행

UNION

  • 여러 개의 SQL문을 합쳐서 하나의 SQL문으로 만들어주는 방법(단, 컬럼의 개수가 같아야 함 -> 단순히 컬럼의 개수를 맞췄다고 해서 원하는 값이 안 나올 수 있음)
  • UNION: 중복된 값을 제거하여 알려줌, UNION ALL: 중복된 값도 모두 보여줌
SELECT column1, column2, ... from tableA UNION | UNION ALL SELECT column1, column2, .. FROM tableB;

예제 1 - UNION

예제 2 - UNION ALL

JOIN

  • 두 개 이상의 테이블을 결합하는 것

INNER JOIN

  • 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인방식
SELECT column1, column2, ... from tableA INNER JOIN tableB ON tableA.column = tableB.column WHERE condition;

예제

LEFT JOIN

  • 두 개의 테이블에서 공통영역을 포함해 왼쪽 테이블의 다른 데이터를 포함하는 조인방식
SELECT column1, column2, ... from tableA LEFT JOIN tableB ON tableA.column = tableB.column WHERE condition;

예제

RIGHT JOIN

  • 두 개의 테이블에서 공통영역을 포함해 오른쪽 테이블의 다른 데이터를 포함하는 조인방식
SELECT column1, column2, ... from tableA RIGHT JOIN tableB ON tableA.column = tableB.column WHERE condition;

FULL OUTER JOIN

  • 두 개의 테이블에서 공통영역을 포함해 양쪽 테이블의 다른 영역을 모두 포함하는 조인방식
SELECT column1, column2, ... from tableA FULL OUTER JOIN tableB ON tableA.column = tableB.column WHERE condition;

하지만, MySQL에서는 FULL JOIN을 지원하지 않으므로 아래의 쿼리로 같은 결과를 만들 수 있음

SELECT column1, column2, ... from tableA LEFT JOIN tableB ON tableA.column = tableB.column WHERE condition
UNION
SELECT column1, column2, ... from tableA RIGHT JOIN tableB ON tableA.column = tableB.column WHERE condition;

예제

SELF JOIN

SELECT column1, column2, ... FROM tableA, tableB, ... WHERE condition;

예제 1

예제 2

CONCAT, ALIAS, DISTINCT, LIMIT

CONCAT

  • 여러 문자열을 하나로 합치거나 연결
SELECT CONCAT('string1', 'string2', ...);

예제

ALIAS

  • 컬럼이나 테이블 이름에 별칭 생성(as는 생략가능)
SELECT columns as alias FROM tablename;

예제 1

예제 2

DISTINCT

  • 검색한 결과의 중복 제거
SELECT DISTINCT column1, column2, .... FROM tablename;

예제

LIMIT

  • 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회
SELECT column1, column2, .... FROM tablename WHERE condition LIMIT number;

예제

profile
김휘담

0개의 댓글