글 목록으로 돌아가기
2026년 3월 25일·General·SQL·2 min read

SQL 문제 풀면서 자주 틀렸던 기본 문법 정리

SQL 문제를 풀다 보니 어려운 문법보다도 기본적인 부분에서 자주 실수하게 되는 것 같다. 이번에는 실제로 헷갈렸던 것들을 중심으로 기본 문법을 정리했다.

AI 노트

글을 빠르게 훑을 수 있도록 요약과 읽기 가이드를 제공합니다.

1. CASE 문은 조건문처럼 생각하기

CASE 
    WHEN 조건1 THEN 결과1
    WHEN 조건2 THEN 결과2
    ELSE 기본결과
END

CASE WHEN은 SQL에서 조건문처럼 자주 쓸 수 있다. 값을 분류하거나 특정 기준에 따라 다른 문자열을 출력할 때 유용하다.

여기서 꼭 기억할 점은 WHEN에서 비교할 때 ==가 아니라 =를 쓴다는 것이다.

2. NULL 비교는 =가 아니라 IS NULL

SQL에서는 NULL을 일반 값처럼 =로 비교하면 안 된다.

WHERE name IS NULL
WHERE name IS NOT NULL

이 부분은 생각보다 자주 틀렸다.

3. IFNULL로 NULL 대체하기

IFNULL(length, 10)

어떤 값이 NULL일 때 기본값으로 대체하고 싶으면 IFNULL을 사용한다.

4. SELECT 별칭은 WHERE 절에서 바로 못쓴다.

SQL은 실행 순서가 우리 눈으로 읽는 순서와 사뭇 다르다. 대충 보면 이런 흐름이다.

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

그래서 SELECT에서 AS로 만든 별칭은 같은 쿼리의 WHERE에서 바로 사용할 수 없다.

5. LIMIT 1은 하나만 뽑고 싶을 때

SELECT *
FROM table_name
ORDER BY created_at DESC
LIMIT 1;

가장 위 한줄만 보고 싶을 때 자주 쓴다.

6. LIKE는 부분 문자열 탐색

WHERE address LIKE '%경기도%'

문자열 전체가 아니라 일부만 포함되는 보고 싶을 때는 LIKE를 쓴다.

7. 날짜/시간 관련 함수

시간만 뽑기

HOUR(date_column)

날짜 형식 바꾸기

DATE_FORMAT(date_column, '%Y-%m-%d')

8. 숫자 관련 함수

ROUND는 반올림

ROUND(score,2)

TRUNCATE는 지정한 자리 아래를 버림

TRUNCATE(14500, -4)

결과는 10000

9.IN은 서브쿼리와 같이 자주 쓰임

WHERE user_id IN (SELECT user_id FROM ...)

서브쿼리 결과 집합에 포함되는지 볼 때 굉장히 자주 쓰임

마무리

SQL은 문법 자체보다도 기본 비교 방식과 실행 순서를 정확히 이해하는 게 더 중요하다고 느꼈다.

특히 아래 네 가지는 계속 기억해야 한다.

  • CASE WHEN에서 = 사용
  • NULL 비교는 IS NULL
  • AS 별칭은 WHERE에서 바로 사용 불가
  • 일부 문자열 검색은 LIKE

Comment

댓글 0

익명 로그인 없이 남길 수 있지만 수정과 삭제는 작성 당시 입력한 비밀번호로만 가능합니다.

아직 댓글이 없습니다

첫 번째 피드백을 남겨 보세요.