- WHERE 조건식
- 조건식이
True (참)
이 되는 로우만 선택한다.
쿼리 문법SELECT [컬럼이름] FROM [테이블 이름] WHERE 조건식;
mypokemon 데이터베이스 테이블
비교 연산자
=, >, < 등
논리 연산자
NOT, AND, OR 등
기타 주요 연산자
BETWEEN, IN 등
연산자 | 활용 | 의미 | 예시 |
---|---|---|---|
= | A = B | A와 B가 같다 | 1=1 |
!= | A != B | A와 B 가 같지않다 | 1 != 0 |
> | A > B | A가 B보다 크다 | 10<1 |
>= | A >= B | A가 B보다 크거나 같다 | 10 >= 10 |
< | A < B | A가 B 보다 작다 | 10 < 100 |
<= | A <= B | A가 B 보다 작거나 같다 | 10 <= 10 |
요청1 : 피카츄의 number를 찾아주세요
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';
A = 속도가 100 이하
B = 전기 타입요청2 : 벌레 타입이거나 노말 타입인 포켓몬의 이름을 찾아주세요.
SELECT name FROM mypokemon WHERE type = 'bug' OR type = 'normal';
요청3 : 속도가 100 이하이고 벌레 타입이 아닌 포켓몬의 이름을 찾아주세요.
SELECT name FROM mypokemon WHERE speed <= 100 AND NOT(type='bug');
✏️NOT();
NOT(type = 'bug');
type != 'bug'
동일하다.
BETWEEN
- 특정 범위 내의 데이터를 선택할 때 사용하는 연산자
- [컬럼 이름] BETWEEN A AND B
- 해당 컬럼 값이 A 와 B 사이에 포함되는 값을 가진 로우만 선택합니다. (
A <= 컬럼 값 <= B
)- [컬럼 이름]
BETWEEN A AND B
쿼리는A <= [컬럼 이름] <= B
와 동일합니다
쿼리 문법SELECT[컬럼 이름] FROM[테이블 이름] WHERE[컬럼 이름]BETWEEN [조건1] AND [조건2]
예제
: 속도가 50과 100 사이인 포켓몬의 이름을 찾아주세요
SELECT name FROM mypokemon WHERE speed BETWEEN 50 AND 100;
✏️
speed >= 50 AND speed
<= 100 와 동일하다
IN
- 목록 내 포함되는 데이터를 선택할 때 사용하는 연산자
- [컬럼 이름] IN (A, B, C)
[컬럼 이름] IN (A,B)
쿼리는[컬럼 이름] = A OR [컬럼 이름] = B
와 동일하다.- 목록에 넣을 값이 여러 개 일때, OR 연산자보다 표현 및 이해가 쉽다.
SELECT [컬럼 이름] FROM [테이블 이름] WHERE [컬럼 이름] IN ([조건1],[조건2]);
예제
: : 벌레 타입이거나 노말 타입인 포켓몬의 이름을 찾아주세요.
SELECT name FROM mypokemon WHERE type IN ('bug', 'normal');
LIKE
- 특정 문자열이 포함된 데이터를 선택하는 연산자
- [컬럼 이름] LIKE [검색할 문자열]
- 해당 컬럼 값이 [검색할 문자열]을 포함하고 있는 로우만 선택
- 와일드 카드를 사용하여 검색 조건을 구체적으로 표현 가능
와일드 카드 | 의미 |
---|---|
% | 0개 이상의 문자 |
_ | 1개의 문자 |
%
: 0개 이상의 문자 = 알 수 없음
_
: 1개
__
: 2개
_%
: 1개 이상의 문자 = 알 수 없음
예제
%e
= 'e' 로 끝나는 문자열
e, ee, eevee, apple, pineapple
e%
= 'e' 로 시작하는 문자열
e, ee, eevee, eric
%e%
= 'e'가 포함된 문자열
e, ee, eevee, apple, pineapple, aespa
_e
= 'e'로 끝나고 'e' 앞에 1개의 문자가 있는 문자열
ee, ae, ce
%_e
= 'e' 로 끝나고 'e' 앞에 1개 이상의 문자가 있는 문자열
ee, eevee, apple, pineapple
%_e_%
= 'e' 가 포함하고 'e'앞 뒤로 1개 이상의 문자가 있는 문자열
eevee, aespa
쿼리 문법
SELECT [컬럼 이름] FROM [테이블 이름] WHERE [컬럼 이름] LIKE [검색할 문자열];
예제
이름이 ‘chu’로 끝나는 포켓몬의 이름을 찾아주세요.
SELECT name FROM mypokemon WHERE name LIKE '%chu';
이름에 ‘a’가 포함되는 포켓몬의 이름을 찾아주세요.
SELECT name FROM pokemon WHERE name LIKE '%a%';
- 데이터 값이 존재하지 않는다는 표현
- 0이나 공백이 아닌 알 수 없는 값을 의미
INSERT INTO mypokemon (name, type) VALUES ('kkobugi',''); SELECT * FROM mypokemon;
- 데이터가 NULL 인지 아닌지를 확인하는 연산자
- [컬럼 이름] IS NULL
- NULL 이 있는 로우만 선택
- NULL 이 아닌 데이터를 검색하고 싶다면
IS NOT NULL
[컬럼 이름] = NULL
또는[컬럼 이름] != NULL
같은 표현은 사용하지 않는다.
쿼리 문법
SELECT [컬럼 이름] FROM [테이블 이름] WHERE [컬럼 이름] IS NULL;
예제
number가 null인 포켓몬의 이름을 찾아주세요
SELECT name FROM mypokemon WHERE number IS NULL;
number = NULL 은 사용 불가합니다
type이 null이 아닌 포켓몬을 찾아주세요.
SELECT name FROM mypokemon WHERE type IS NOT NULL;