2025. 12. 7. 22:38ㆍSQL
엑셀로 대용량 데이터를 다뤄본 사람이라면 공감할 것이다.
데이터가 몇십만 줄만 넘어가도, 특정 조건으로 '필터(Filter)'를 거는 순간 모래시계가 빙글빙글 돌며 멈춰버리는 그 공포를... 😱
오늘 SQL 실습의 주제는 바로 이 "데이터 솎아내기(Filtering)"다.
SQL에서는 WHERE라는 단어 하나만 알면, "서울 사는 30대 남성 중 지난달에 가입한 사람" 같은 복잡한 조건도 0.1초 만에 뽑아낼 수 있다.
오늘은 영화 대여점 데이터에서 내가 원하는 조건의 데이터만 핀셋처럼 골라내는 과정을 기록해 본다.
1. 숫자 콕 집어내기 (=): 엑셀보다 빠르다
가장 기본은 "정확히 일치하는 값"을 찾는 것이다.
결제 내역(`payment`) 데이터에서 금액(`amount`)이 딱 $0.99인 건들만 찾아보고 싶었다.
SELECT *
FROM payment
WHERE amount = 0.99;

실행하자마자 결과가 떴다. 엑셀이었다면 필터 드롭다운 메뉴가 내려오는 데만 한세월이었을 텐데, SQL은 데이터 양과 상관없이 즉답을 내놓는다. 속이 다 시원하다.
2. 문자 찾기: 따옴표('')의 중요성
이번엔 숫자 말고, 고객 명단(`customer`)에서 이름이 'Jared'인 사람을 찾아보았다.
여기서 비전공자가 가장 많이 하는 실수가 있다.
💡 비전공자의 시행착오: 따옴표
엑셀 함수를 쓸 때 문자에 큰따옴표("")를 쓰는 습관 때문에WHERE name = "Jared"라고 썼다가 에러가 났다.
SQL에서는 문자열을 반드시 작은따옴표('')로 감싸야 한다. (이건 그냥 외워야 한다.)
SELECT *
FROM customer
WHERE first_name = 'Jared';

🚨 또 하나의 주의점: 대소문자 구분
SQL(PostgreSQL)은 대소문자를 엄격하게 구분한다.'jared'라고 소문자로 검색하면 아무것도 안 나온다. (엑셀은 대소문자 상관없이 찾아주는데, SQL은 좀 깐깐하다.)
3. 이상, 이하 찾기 (부등호 활용)
"가격이 $20 이상인 영화"처럼 범위를 찾을 때는 수학 시간에 배운 부등호(>, <, >=, <=)를 쓰면 된다.
SELECT title, replacement_cost
FROM film
WHERE replacement_cost >= 20;

분실 시 배상 비용(replacement_cost)이 20달러 이상인, 소위 '비싼 영화' 리스트만 쏙 뽑혔다.
4. 깐깐한 조건: AND (교집합)
현업에서 "가격이 싼 거 찾아줘"라고 단순하게 요청하는 상사는 없다.
"대여료는 싸면서($2.99 이하), 배상 비용도 저렴한($10 이하) 가성비 영화 찾아와" 처럼 복합적인 조건을 요구한다.
두 조건이 모두 맞아야 할 때는 AND로 연결하면 된다.
SELECT title, rental_rate, replacement_cost
FROM film
WHERE rental_rate <= 2.99
AND replacement_cost <= 10;

조건을 추가할 때마다 AND만 계속 붙여주면 된다. 엑셀에서 다중 필터를 거는 것보다 코드로 보니 논리 구조가 훨씬 명확하다.
5. 널널한 조건: OR (합집합)
반대로 "캘리포니아(California)에 살거나, 혹은 텍사스(Texas)에 사는 사람"을 찾고 싶을 땐 어떡할까?
둘 중 하나만 맞아도 되니까 OR를 쓴다.
SELECT district, phone
FROM address
WHERE district = 'California'
OR district = 'Texas';

📝 오늘의 문법 요약 (Cheat Sheet)
데이터 분석의 90%는 이 WHERE 절을 얼마나 잘 쓰느냐에 달려있다고 한다. 오늘 배운 연산자들을 정리해 둔다.
| 연산자 | 설명 | 예시 |
| = | 같다 (정확히 일치) | amount = 0.99 |
| <> 또는 != | 다르다 | amount != 0.99 |
| >=, <= | 크거나 같다 / 작거나 같다 | price >= 20 |
| AND | 그리고 (깐깐한 조건) | 조건1 AND 조건2 |
| OR | 또는 (널널한 조건) | 조건1 OR 조건2 |
| '' | 문자열 감싸기 | 'Jared' (필수!) |
[데이터 분석 독학기 #5 끝]
'SQL' 카테고리의 다른 글
| 사장님이 "총매출 얼마야?" 물으실 때, 엑셀 켜지 않고 1초 만에 대답하는 법 (SQL 집계함수) (0) | 2025.12.14 |
|---|---|
| 뒤죽박죽 데이터가 한눈에 들어오는 기적: SQL 정렬과 검색 (ORDER BY, LIKE) (0) | 2025.12.08 |
| 엑셀이 멈췄다... 비전공자가 SQL로 100만 건 데이터 3초 만에 조회한 썰 (SELECT, FROM) (0) | 2025.12.07 |
| 맥북 DBeaver에서 SQL 예제 데이터(DVD Rental) 복원 오류, 3분 만에 해결하기 (0) | 2025.11.28 |
| 맥북 에어(M4)에서 SQL 쿼리, 엑셀처럼 편하게 날리기 (무료 툴 DBeaver 설치 & 연결) (0) | 2025.11.24 |