SQL에는 여러가지 구문이 있는데 그 중에서도 WHERE 구문에서 어떤 조건을 추릴 때 가장 많이 조합하는 게 연산자(들)이다.
사실 내가 헷갈려서 정리하는거 맞음. 앞으로도 SQL 관련으로 지속적으로 정리할거 생기면 카테고리가 늘어날수도 있습니다. 미디움에는 해당 안 되는 얘기겠지만. 그리고 올리자마자 스킨 형식 개발살나준 티스토리 고맙다 아주. 덕분에 아직도 못나감. ㅠ
연산자의 종류
산술연산자
+ - * /
각각 더하기, 빼기, 곱하기, 나누기. 보통 숫자형 더할 때 쓰는데 날짜 더할때도 쓴다.
비교연산자
= <> > >= < <=
순서대로 같음, 같지 않음(!=랑 같은거) 크다 크거나 같다 작다 작거나 같다
뒤에 네 개는 초과, 이상, 미만, 이하로 외우면 편하다.
논리연산자
AND, OR, NOT
엑셀에서도 많이 보는 그거 맞다. AND나 OR은 A (연산자) B꼴로 쓰고, NOT은 NOT A 형식으로 쓴다. 이것도 많이 써본 분들은 대충 뭔지 알 것이다.
||
키보드에 보면 백슬래시(혹은 원표시)가 있는데, 쉬프트하고 그거 누르면 저 작대기 나온다. 문자 결합 연산자인데 저거 쓰면

아, 공백은 셀프였구나.
BETWEEN
BETWEEN A AND B 형식으로 쓰고, WHERE 조건 >= A AND 조건 <= B랑 같은 의미이다. 아래 예시를 보자.
SELECT * FROM POKEMON WHERE DEX_NO BETWEEN 1 AND 151 ORDER BY DEX_NO;
SELECT * FROM POKEMON WHERE DEX_NO >= 1 AND DEX_NO <= 151 ORDER BY DEX_NO;
둘 다 포켓몬 도갑에서 관동도감 내놓으라는 의미이다. (관동도감: 1~151)
IN(list)
저 리스트 안에 하나라도 들어있으면 참이다. 이것도 뭔 소린지 모르겠다고? 당신이 SQL 쌉고인물이 아닌 이상에야 지극히 정상이다. 애초에 이 글을 보러 오는 사람들 중 SQL 쌉고인물은 없겠지만…
select * from POKEMON WHERE TYPE1 IN('에스퍼','고스트','악');
포켓몬의 1타입이 에스퍼, 고스트, 악 중 하나이면 내놓으라는 소리. 근데 문제가 하나 있다. 어떤 포켓몬은 강철/에스퍼고 어떤 포켓몬은 에스펴/강철이면 이 경우에는 후자만 보이고 전자가 안 보이잖아요?
select * from POKEMON WHERE TYPE1 IN('에스퍼','고스트','악') OR TYPE2 IN('에스퍼','고스트','악');
이렇게 하면 강철/에스퍼도 보인다.
LIKE('문자%')
정규식은 따로 있고 쟈는 걍 와일드카드라고 생각하면 된다.
select * from POKEMON where FORM_CODE LIKE 'MEGA%';
메가진화 하는 포켓몬 중에 X, Y로 분기가 갈리는 포켓몬이 있는데 이렇게 되면 메진몬 따로, X따로, Y따로 찾아야 하잖아요? 아니 어느 세월에 그럴거임? 저거 한방이면 MEGA(걍 메진), MEGAX(X 메진), MEGAY(Y 메진)까지 다 찾아주는디?
IS NULL
NULL이면 참이다.
select * from POKEMON WHERE TYPE2 IS NULL ORDER BY DEX_NO;
이렇게 하면 단일타입 포켓몬만 찾아준다.
한가지 주의해야 할 점이 있는데, 쟤는 NOT 붙일때 밖에 붙이는 게 아니라 안에 붙여서 IS NOT NULL이 맞다.
'Coding > 코딩잡담' 카테고리의 다른 글
| DML과 DDL (0) | 2025.10.24 |
|---|---|
| 정규식 테스트 사이트 (0) | 2025.10.16 |
| 걍 간단한걸로 만들걸… ㅡㅡ (0) | 2025.10.03 |
| 너란 SQL... (0) | 2025.09.30 |
| 정형 데이터 vs 비정형 데이터 (0) | 2025.09.27 |