1. 기본 조회
sql
SELECT 컬럼 FROM 테이블
WHERE 조건
ORDER BY 컬럼 ASC/DESC
LIMIT 숫자
OFFSET 숫자 -- 몇 번째부터 시작할지
2. 집계 함수
sql
COUNT() -- 개수
SUM() -- 합계
AVG() -- 평균
MAX() -- 최댓값
MIN() -- 최솟값
ROUND(값, 자릿수) -- 반올림
CEIL() -- 올림
FLOOR() -- 내림
3. 그룹핑
sql
GROUP BY 컬럼
HAVING 조건 -- 집계 후 필터링
- WHERE → 집계 전 필터링
- HAVING → 집계 후 필터링
4. 조건
sql
WHERE 컬럼 = 값
WHERE 컬럼 != 값
WHERE 컬럼 LIKE '%값%' -- 포함
WHERE 컬럼 LIKE '값%' -- 시작
WHERE 컬럼 LIKE '%값' -- 끝
WHERE 컬럼 IN (1, 2, 3) -- 여러 값
WHERE 컬럼 NOT IN (1, 2, 3)
WHERE 컬럼 BETWEEN 1 AND 10 -- 범위
WHERE 컬럼 IS NULL
WHERE 컬럼 IS NOT NULL
5. JOIN
sql
INNER JOIN -- 두 테이블 모두 있는 것만
LEFT JOIN -- 왼쪽 기준, 오른쪽 없으면 NULL
RIGHT JOIN -- 오른쪽 기준, 왼쪽 없으면 NULL
FULL OUTER JOIN -- 양쪽 모두 포함
CROSS JOIN -- 모든 조합 (카테시안 곱)
SELF JOIN -- 같은 테이블끼리 JOIN
6. 서브쿼리
sql
-- FROM 절 서브쿼리
SELECT * FROM (SELECT ...) AS 별칭
-- WHERE 절 서브쿼리
WHERE 컬럼 = (SELECT MAX(컬럼) FROM 테이블)
-- EXISTS
WHERE EXISTS (SELECT 1 FROM 테이블 WHERE 조건)
7. WINDOW 함수
sql
-- 순위
ROW_NUMBER() OVER (ORDER BY 컬럼) -- 1,2,3,4
RANK() OVER (ORDER BY 컬럼) -- 1,2,2,4 (동점 건너뜀)
DENSE_RANK() OVER (ORDER BY 컬럼) -- 1,2,2,3 (동점 안건너뜀)
-- 그룹 내 순위
RANK() OVER (PARTITION BY 그룹 ORDER BY 컬럼)
-- 누적 합계
SUM(컬럼) OVER (ORDER BY 컬럼)
-- 이전/다음 값
LAG(컬럼, 1) OVER (ORDER BY 컬럼) -- 이전 행
LEAD(컬럼, 1) OVER (ORDER BY 컬럼) -- 다음 행
8. 날짜 함수
sql
YEAR(날짜) -- 연도
MONTH(날짜) -- 월
DAY(날짜) -- 일
NOW() -- 현재 시각
DATE(날짜) -- 날짜만 추출
DATEDIFF(날짜1, 날짜2) -- 날짜 차이
DATE_FORMAT(날짜, '%Y-%m-%d') -- 날짜 형식 지정
9. 문자열 함수
sql
UPPER() -- 대문자
LOWER() -- 소문자
LENGTH() -- 문자 길이
SUBSTRING(컬럼, 시작, 길이) -- 문자 자르기
CONCAT(A, B) -- 문자 합치기
TRIM() -- 공백 제거
REPLACE(컬럼, 찾을값, 바꿀값)
10. 조건부 출력
sql
CASE WHEN 조건 THEN 값
WHEN 조건 THEN 값
ELSE 값
END AS 컬럼명
-- 간단한 버전
IF(조건, 참일때, 거짓일때) -- MySQL만 가능
11. NULL 처리
sql
COALESCE(컬럼, 대체값) -- NULL이면 대체값 출력
IFNULL(컬럼, 대체값) -- MySQL만 가능
12. 집합 연산
sql
UNION -- 두 쿼리 결과 합치기 (중복 제거)
UNION ALL -- 두 쿼리 결과 합치기 (중복 포함)
INTERSECT -- 두 쿼리 공통 결과
EXCEPT -- 첫 번째 쿼리에만 있는 결과
13. CTE (공통 테이블 표현식)
sql
WITH cte AS (
SELECT ...
)
SELECT * FROM cte
서브쿼리를 깔끔하게 정리할 때 사용해요!
14. 테이블 생성/수정 (DDL)
sql
CREATE TABLE 테이블 (컬럼 타입)
ALTER TABLE 테이블 ADD 컬럼 타입
DROP TABLE 테이블
'SQL' 카테고리의 다른 글
| 2025.12.11 SQL문 ( INSERT, UPDATE, DELETE) (0) | 2025.12.11 |
|---|---|
| 25.12.10 데이터베이스, SELECT문 (0) | 2025.12.10 |