
본 글은 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 NULLIS 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;