WHERE
는 조건식이 참이 되는 row만 선택한다.
MySQL에서는 true
를 1로 표현한다. false
는 0으로 표현한다.
SELECT 1 = 1;
결과 1
SELECT 0 = 1;
결과 0
값을 비교하는 기호이다.
연산자 | 활용 | 의미 | 예시 |
---|---|---|---|
= | A = B | A와 B가 같다 | 1 = 1 |
!= | A != B | A와 B가 같지 않다 | 1 != 2 |
> | A > B | A가 B보다 크다 | 10 > 1 |
>= | A >= B | A가 B보다 크거나 같다 | 10 >= 10 |
< | A < B | A가 B보다 작다 | 10 < 100 |
<= | A <= B | A가 B보다 작거나 같다 | 10 <= 100 |
예시 1
# 이름이 'pikachu' 인 포켓몬의 번호 찾기
SELECT number
FROM mypokemon
WHERE name = 'pikachu';
예시 2
# 속도가 50보다 큰 포켓몬의 이름 찾기
SELECT name
FROM mypokemon
WHERE speed > 50;
예시 3
# 전기 타입이 아닌 포켓몬의 이름 찾기
SELECT name
FROM mypokemon
WHERE type != 'electric';
논리 조건을 적용하는 기호
연산자 | 활용 | 의미 |
---|---|---|
AND | A AND B | A와 B 모두 true이면 true |
OR | A OR B | A와 B 둘 중 하나만 true이면 true |
NOT | NOT A | A가 아니면 true |
예시 1
# 속도가 100 이하인 전기 타입 포켓몬의 이름 찾기
SELECT name
FROM mypokemon
WHERE speed <= 100 AND type = 'electric';
예시 2
# 벌레 타입이거나 노말 타입인 포켓몬의 이름 찾기
SELECT name
FROM mypokemon
WHERE type = 'bug' OR type = 'normal';
예시 3
# 속도가 100 이하고 벌레 타입이 아닌 포켓몬의 이름 찾기
SELECT name
FROM mypokemon
WHERE speed <= 100 AND NOT(type = 'bug'); ## type != 'bug'도 같은 구문
BETWEEN
IN
등특정 범위 내의 데이터를 선택할 때 사용하는 연산자이다.
[컬럼 이름] BETWEEN A AND B
형식으로 사용한다.A <= [컬럼 이름] AND [컬럼 이름] <= B
와 동일하다.SELECT name
FROM mypockmon
WHERE speed BETWEEN 50 AND 100;
# speed >= 50 AND speed <= 100 과 동일하다
목록 내 포함되는 데이터를 선택할 때 사용하는 연산자이다.
[컬럼 이름] IN (A, B, ..., C)
형식으로 사용한다.()
내의 값에 포함되는 값을 가진 row만 선택한다.[컬럼 이름] IN (A, B)
쿼리는 [컬럼 이름] = A OR [컬럼 이름] = B
와 동일하다.OR
연산자보다 표현 및 이해가 쉽다.# 벌레 타입이거나 노말 타입인 포켓몬의 이름 찾기
SELECT name
FROM mypockmon
WHERE type IN ('bug', 'normal');
특정 문자열이 포함된 데이터를 선택하는 연산자이다.