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번째 형질 보유)
  • 연산자 우선순위: ANDOR보다 **우선순위가 높기에 ** A AND (B OR C)와 같은 논리는 반드시 괄호 ()를 사용

GROUP BY, HAVING

  • 중복 데이터 검색 (다중 컬럼):
    • GROUP BY col1, col2
    • HAVING 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)

results matching ""

    No results matching ""