본문 바로가기
데이터/SQL

[SQLD]230306 SQLD

by stubborngastropod 2023. 3. 7.
728x90

SQL 기본

GROUP BY, HAVING 절

GROUP BY

데이터를 그룹별로 묶을 수 있도록 해주는 절

그룹핑의 기준이 되는 컬럼(들)과 함께 사용

집계 함수

COUNT(*): 전체 Row를 Count하여 반환

COUNT(컬럼): 컬럼값이 NULL인 Row를 제외하고 Count하여 반환

COUNT(DISTINCT 컬럼): 컬럼값이 NULL이 아닌 Row에서 중복을 제거한 Count를 반환

SUM(컬럼), AVG(컬럼), MIN(컬럼), MAX(컬럼)

HAVING

데이터를 그룹핑한 후 특정 그룹을 골라낼 때 사용

  • SELECT문의 논리적 순서: FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

ORDER BY 절

ORDER BY

SELECT한 데이터를 정렬

ASC: 오름차순(기본값), DESC: 내림차순

SELECT NAME, MEMBER_NO FROM MEMBERINFO ORDER BY NAME DESC;

JOIN

JOIN

각기 다른 테이블을 한 번에 보여줄 때 쓰는 쿼리

EQUI JOIN

같은 조건으로 JOIN하는 것, 가장 흔한 방식

SELECT ~ FROM ~ WHERE A.PRODUCT_CODE = B.PRODUCT_CODE;

Non EQUI JOIN

같은 조건이 아닌 조건(BETWEEN, <, >)으로 JOIN 하는 방식

SELECT ~ FROM ~ WHERE B.REG_DATE BETWEEN A.START_DATE AND A.END_DATE

3개 이상 TABLE JOIN

WHERE A.PRODUCT_CODE = B.PRODUCT_CODE
  AND B.REG_DATE BETWEEN A.START_DATE AND A.END_DATE

OUTER JOIN

JOIN 조건에 만족하지 않는 행들도 출력되는 형태

SELECT ~ FROM ~ WHERE A.PRODUCT_CODE = B.PRODUCT_CODE(+)

STANDARD JOIN

여러 벤더에서 호환되도록 표준이 되도록 지정된 ANSI SQL(표준 조인)

INNER JOIN

JOIN 조건에 충족하는 데이터만 출력

SELECT ~ FROM PRODUCT A INNER JOIN PRODUCT_REVIEW B
  ON A.PRODUCT CODE = B.PRODUCT_CODE;

OUTER JOIN

JOIN 조건에 충족하는 데이터가 아니어도 출력

  • LEFT OUTER JOIN, RIGHT OUTER JOIN

왼쪽에 표기된 테이블의 데이터는 무조건 출력, 오른쪽 테이블에 JOIN되는 데이터가 없을 경우 오른쪽 테이블 컬럼 값이 NULL로 출력

SELECT ~ FROM PRODUCT A LEFT OUTER JOIN PRODUCT_REVIEW B
  ON A.PRODUCT_CODE = B.PRODUCT_CODE;
  • FULL OUTER JOIN

왼쪽, 오른쪽 테이블 데이터가 모두 출력

SELECT ~ FROM RUNNING_MAN A FULL OUTER JOIN INFINITE_CHALLENGE B
  ON A.CAST = B.CAST;

NATURAL JOIN

두 테이블에서 같은 이름을 가진 컬럼들이 모두 동일한 데이터를 가지고 있을 경우 JOIN이 되는 방식

SELECT * FROM RUNNING_MAN A NATURAL JOIN INFINITE_CHALLENGE B;

USING 조건절을 이용해 원하는 컬럼만 JOIN에 서ㅏ용 가능

SELECT CAST,
       A.JOB AS R_JOB
       B.JOB AS I_JOB
  FROM IZONE A JOIN LESSERAFIM B
USING (POSITION, GENDER);

CROSS JOIN

A와 B 테이블 사이에 JOIN 조건이 없는 경우 조합할 수 있는 모든 경우를 출력(Cartesian Product)

SELECT A.NAME,
       A.JOB,
       B.DRINK_CODE,
       B.DRINK_NAME
  FROM ENTERTAINER A CROSS JOIN DRINK B;

 

참고자료: 2022 유선배 SQL개발자(SQLD) 과외노트

http://www.yes24.com/Product/Goods/115027455

 

2023 유선배 SQL개발자(SQLD) 과외노트 - YES24

SQL Server 분야 베스트 1위!핵심만 쏙쏙 담은 알찬 수험서! SD에듀가 가장 효율적·효과적인 합격의 길을 제안합니다.유튜브 선생님에게 배우는 유·선·배, 『유선배 SQL개발자 과외노트』와 함께 20

www.yes24.com

 

728x90

'데이터 > SQL' 카테고리의 다른 글

[SQLD]230308-09 SQLD  (0) 2023.03.10
[SQLD]230305 sqld  (0) 2023.03.06
[SQLD]230301 sqld  (0) 2023.03.01

댓글