데이터 중에 특정 조건을 필터링 해야할 때가 있습니다.
SQL 의 ‘WHERE’ 문법을 이용하면 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.
SELECT *
FROM 테이블
WHERE 필터링 조건
| 비교연산자 | 의미 | 예시 |
|---|---|---|
| = | 같다 | age=21, gender=’female’ |
| <> | 같지 않다 (다르다) | age<>21, gender<>’female’ |
| > | 크다 | age>21 |
| >= | 크거나 같다 | age>=21 |
| < | 작다 | age<21 |
| <= | 작거나 같다 | age<=21 |
- 기본 문법 : **between** a **and** b
예시 : 나이가 10-20사이
WHERE age BETWEEN 10 AND 20
- 기본 문법 : **in** (A, B, C)
예시 : 나이가 15, 21, 31
WHERE age IN (15,21,31)
예시 : ‘김’ 으로 시작하는 이름
WHERE name LIKE '김%'
예시 : 식당 이름에 ‘Next’ 를 포함하는 경우
WHERE restaurant_name LIKE '%Next%'
예시 : ‘임’ 으로 끝나는 이름
WHERE name LIKE '%임'
CASE WHEN절은 아래와 같은 기본 구조를 가지고 있어요.
WHEN은 조건에 따라 더 추가 할 수 있어요. 조건식을 모두 만족하지 않을 경우, ELSE로 간주되게 됩니다
SELECT CASE WHEN 조건식1 THEN 결과1
WHEN 조건식2 THEN 결과2
ELSE 결과3
END AS 새로운 컬럼이름
FROM 테이블명
| 연산자 | 연산의 예 | 의미 |
|---|---|---|
| >, < | N<10, N>10 | N이 10 미만, N이 10 초과 |
| >=, <= | N<=10, N>=10 | N이 10 이하, N이 10 이상 |
| = | N=10 | N이 10인 값 |
| != | N!=10 | N이 10이 아닌 값 |
| LIKE | LIKE('%과자%') | 문자열이 ~와 같을 때 |
| AND | A AND B | A 그리고 B를 모두 만족하는 값 |
| OR | A OR B | A 또는 B인 값 |
| NOT, ! | NOT A, !A | A가 아닌 값 |
| BETWEEN | A BETWEEN 10 AND 20 | A가 10과 20 사이에 포함된 값 |
| IS NULL | A IS NULL | A 값이 비어있는 값 |
| IS NOT NULL | A IS NOT NULL | A 값이 비어있지 않는 값 |