2025. 12. 8. 11:57ㆍSQL
데이터 분석의 본질은 결국 '비교'라고 생각한다.
"누가 가장 많이 샀을까?", "어떤 영화가 가장 길까?" 같은 질문에 답하려면, 뒤죽박죽 섞여 있는 데이터를 순서대로 나열(정렬)하는 것이 필수다.
오늘은 SQL에서 가장 속 시원한 기능인 ORDER BY(줄 세우기)와, 정확한 단어를 몰라도 찰떡같이 찾아주는 LIKE(스마트 검색) 연산자를 실습했다.
엑셀에서 필터 걸고 정렬 버튼 누르는 것보다 훨씬 직관적이고 강력하다.
1. 가나다순 정렬 (오름차순): 기본 중의 기본
고객 명단(customer)이 ID 순서대로 되어 있어서 이름을 찾기가 힘들었다. 이걸 이름(A-Z) 순서대로 정렬해 보자.
문법은 영어 그대로다. "ORDER BY( ~순서로 정렬해라)"
SELECT first_name, last_name, email
FROM customer
ORDER BY first_name ASC; -- ASC(오름차순)는 생략 가능

Aaron, Adam... 알파벳 순서대로 예쁘게 정렬됐다. 마음이 편안해진다.
2. 랭킹 뽑기 (내림차순 DESC) ⭐
사실 실무에서는 오름차순보다 내림차순(DESC)을 훨씬 많이 쓴다고 한다.
"매출 1위", "가장 비싼 상품" 처럼 Top N을 뽑아야 하기 때문이다.
영화 테이블(film)에서 러닝타임(length)이 가장 긴 영화부터 순서대로 조회해 봤다.
SELECT title, length
FROM film
ORDER BY length DESC;

💡 비전공자의 실수 포인트
처음에ORDER BY를WHERE보다 앞에 썼다가 에러가 났다.
생각해보면 당연하다. "데이터를 먼저 골라낸(WHERE) 다음에, 그 결과를 정렬(ORDER BY)하는 것"이다. 순서가 중요하다!
(SELECT -> FROM -> WHERE -> ORDER BY)
3. 검색의 신세계 (LIKE와 %)
이름이 정확히 기억 안 나고 "J로 시작했던 것 같은데..." 싶을 때가 있다.
이때 = 대신 LIKE와 와일드카드 %를 쓰면 탐정처럼 데이터를 찾아낼 수 있다.
- 'J%': J로 시작하는 모든 것 (Jared, John, James...)
- '%man': man으로 끝나는 모든 것 (Superman, Batman...)
- '%er%': 중간에 er이 들어가는 모든 것
SELECT first_name, last_name
FROM customer
WHERE first_name LIKE 'J%';

4. 여러 개 콕 집어내기 (IN)
"ID가 1번, 10번, 20번인 회원"을 찾을 때 OR를 3번 쓰는 건 비효율적이다. (코드도 못생겨진다)IN을 쓰면 괄호 안에 나열하기만 하면 된다.
SELECT customer_id, first_name, last_name
FROM customer
WHERE customer_id IN (1, 10, 20);

5. 범위 검색 (BETWEEN)
"가격이 $2.00 ~ $5.00 사이인 영화"를 찾을 때도 마찬가지다.>=, <= 같은 부등호를 여러 번 쓰는 대신 BETWEEN을 쓰면 훨씬 직관적이다.
SELECT title, rental_rate
FROM film
WHERE rental_rate BETWEEN 2.00 AND 5.00;

📝 오늘의 문법 요약 (Cheat Sheet)
오늘은 데이터를 입맛대로 요리하는 핵심 기능들을 배웠다. 특히 LIKE는 실무에서 정말 많이 쓰일 것 같다.
| 문법 | 설명 | 예시 | 비고 |
| ORDER BY ... ASC | 오름차순 정렬 (기본) | ORDER BY price | 1 -> 10, A -> Z |
| ORDER BY ... DESC | 내림차순 정렬 | ORDER BY price DESC | 10 -> 1, Z -> A |
| LIKE '%' | 패턴 검색 | LIKE 'Kim%' | 'Kim'으로 시작하는 모든 것 |
| IN (...) | 목록 중 하나 | IN (1, 3, 5) | 여러 값을 한 번에 선택 |
| BETWEEN | 범위 검색 | BETWEEN 10 AND 20 | A와 B 사이 (양끝 포함) |
[데이터 분석 독학기 #6 끝]
'SQL' 카테고리의 다른 글
| "김 대리가 이달의 판매왕?" 엑셀 피벗 없이 SQL로 1초 만에 실적 분석하기 (GROUP BY) (0) | 2025.12.14 |
|---|---|
| 사장님이 "총매출 얼마야?" 물으실 때, 엑셀 켜지 않고 1초 만에 대답하는 법 (SQL 집계함수) (0) | 2025.12.14 |
| 엑셀 필터 걸다가 퇴근 못할 뻔... SQL WHERE절로 100만 건 데이터 0.1초 만에 찾기 (0) | 2025.12.07 |
| 엑셀이 멈췄다... 비전공자가 SQL로 100만 건 데이터 3초 만에 조회한 썰 (SELECT, FROM) (0) | 2025.12.07 |
| 맥북 DBeaver에서 SQL 예제 데이터(DVD Rental) 복원 오류, 3분 만에 해결하기 (0) | 2025.11.28 |