Sql_sup
title: 2025-10-29 author: 강병호 date: 2025-10-29 category: TIL/강병호/2025/10 layout: post (자유) —
프로그래머스 SQL 기본 문제를 풀면서 바로 떠오르지 않은 문법들에 대해 정리합니다. MySQL를 기준으로 작성합니다.
WHERE
- 비교 연산자:
- 값이 같지 않음:
<>또는!= IS NOT은 주로NULL과 함께
- 값이 같지 않음:
- 날짜 필터링:
YEAR(date_col) = 2021(연도 추출)MONTH(date_col) = 3(월 추출)date LIKE '2021%'(문자열 패턴 검색)
- 비트(Bitwise) 연산:
&연산자를 사용해 특정 형질(비트) 보유 여부 확인. (예:GENOTYPE & 4 > 0-> 3번째 형질 보유) - 연산자 우선순위:
AND가OR보다 **우선순위가 높기에 **A AND (B OR C)와 같은 논리는 반드시 괄호()를 사용
GROUP BY, HAVING
- 중복 데이터 검색 (다중 컬럼):
GROUP BY col1, col2HAVING COUNT(*) > 1
- 중복 행 전체 조회:
COUNT(*) OVER (PARTITION BY col1, col2)윈도우 함수를 사용.
ORDER BY, LIMIT
- 다중 정렬: 1순위, 2순위 정렬 조건을 쉼표로 구분
ORDER BY LENGTH DESC, ID ASC
SELECT
NULL값 대체: IFNULL(col, ‘대체값’)- 날짜 형식 변환:
DATE_FORMAT(date_col, '%Y-%m-%d') - 진수 변환 (10진수 -> 2진수):
BIN(숫자)CONV(숫자, 10, 2)
- 문자열 자르기: :
SUBSTRING(문자열, -N, 1)