본 글은 Fastcampus의 MySQL Database 강의를 수강하며 정리한 내용입니다.
강의 링크
WHERE
WHERE [조건식]
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE 조건식;
비교 연산자
연산자 | 활용 | 의미 | 예시 |
---|---|---|---|
= | 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 <= 10 |
=
연산자 예시
SELECT number
FROM mypokemon
WHERE name = 'pikachu';
>
연산자 예시
SELECT name
FROM mypokemon
WHERE speed > 50;
!=
연산자 예시
SELCET 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 |
AND
연산자 예시
SELECT name
FROM mypokemon
WHERE speed <= 10 AND type = 'electric';
OR
연산자 예시
SELECT name
FROM mypokemon
WHERE type = 'bug' OR type = 'normal';
NOT
연산자 예시
SELECT name
FROM mypokemon
WHERE speed <= 100 AND NOT(type = 'bug'); -- type != 'bug'와 동일한 의미
기타 주요 연산자
BETWEEN
[컬럼 이름] BETWEEN A AND B
[컬럼 이름] BETWEEN A AND B
쿼리는 A <= [컬럼 이름] AND [컬럼 이름] <= B
와 동일SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] BETWEEN [조건 1] AND [조건 2];
BETWEEN 예시
SELECT name
FROM mypokemon
WHERE speed BETWEEN 50 AND 100;
IN
[컬럼 이름] IN (A, B, ..., C)
[컬럼 이름] IN (A, B)
쿼리는 [컬럼 이름] = A OR [컬럼 이름] = B
와 동일OR
연산자보다 표현 및 이해가 쉽다.SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] IN ([조건 1], [조건 2], ...);
IN 예시
SELECT name
FROM mypokemon
WHERE type IN ('bug', 'normal');
LIKE
[컬럼 이름] LIKE [검색할 문자열]
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] LIKE [검색할 문자열];
LIKE 예시
SELECT name
FROM mypokemon
WHERE name LIKE '%a_%'; -- '%a%_'와 동일한 의미
와일드 카드
와일드 카드 | 의미 |
---|---|
% | 0개 이상의 문자 |
_ | 1개의 문자 |
와일드카드 예시
%e
: e로 끝나는 문자열e%
: e로 시작하는 문자열%e%
: e가 포함된 문자열_e
: e로 끝나고 e 앞에 1개의 문자가 있는 문자열%_e
: e로 끝나고 앞에 1개 이상의 문자가 있는 문자열%_e_%
: e를 포함하고 e 앞뒤로 각각 1개 이상의 문자가 있는 문자열NULL
IS NULL
[컬럼 이름] IS NULL
IS NOT NULL
을 사용[컬럼 이름] = NULL
또는 [컬럼 이름] != NULL
과 같은 표현은 허용되지 않는다.SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] IS NULL;
IS NULL 예시
SELECT name
FROM mypokemon
WHERE number IS NULL;
IS NOT NULL 예시
SELECT name
FROM mypokemon
WHERE type IS NOT NULL;
USE pokemon;
SELECT *
FROM mypokemon
WHERE name LIKE '%i%' AND speed <= 50;
SELECT name AS weak_pokemon
FROM mypokemon
WHERE attack < 50 OR defense < 50;
SELECT name, attack + defense + speed AS total
FROM mypokemon
WHERE attack + defense + speed >= 150;