연산자 |
의미 |
AND |
조건을 모두 만족하는 경우 TRUE |
OR |
하나의 조건이라도 만족하는 경우 TRUE |
NOT |
조건을 만족하지 않는 경우 TRUE |
BETWEEN |
조건값이 범위 사이에 있으면 TRUE |
IN |
조건값이 목록에 있으면 TRUE |
LIKE |
조건값이 패턴에 맞으면 TRUE (문자열에서 사용한다) |
AGE
# 성별이 남자이고 나이가 40세보다 큰 데이터를 이름의 역순으로 정렬하여 검색
select * from celab where sex='M' and age>40 order by name DESC;
OR
# 나이가 25세보다 작거나 30세보다 큰 데이터 검색
select * from celab where age<25 OR age>30 order by age;
# 아이디가 홀수면서 성별이 남자거나, 아이디가 짝수면서 소속사가 YG엔터테인먼트인 데이터를 나이순으로 정렬하여 검색
select * from celab
where ((id%2) =1 and sex='M') or ((id%2=0) and agency='YG엔터테이먼트')
order by age ASC;
NOT
# 성별이 여자가 아닌 데이터 검색
select * from celab where NOT sex='F';
# 직업이 가수가 아니면서 성별이 여자이거나, 나이가 40보다 작지 않으면서 아이디가 홀수인 데이터를 조회하세요.
select *
from celab
where (NOT job_title = '가수' AND sex='F') or (NOT age<40 AND (id%2)=1);
BETWEEN
# 나이가 20세에서 40세 사이의 데이터 검색
select *
from celab
where age BETWEEN 20 AND 40;
# 생년월일이 1980년에서 1995 사이가 아니면서, 여자이거나 소속사가 YG면서, 나이가 20~45세 사이가 아닌 데이터
select *
from celab
where birthday NOT BETWEEN 19800101 AND 19951231 AND
sex='F' or agency='YG엔터테이먼트' AND
NOT age BETWEEN 20 AND 45;
IN
# 나이가 28세 , 28세 중 하나인 데이터 검색
select *
from celab
where age IN (28, 48);
# or로 표현 가능
select *
from celab
where age=28 OR age=48;
# 소속사가 나무엑터스, 안테나, 울림엔터테인먼트가 아니면서,
# 성별이 여자이거나 나이가 45세 이상인 데이터를 검색.
# 내 오답
select *
from celab
where agency NOT IN ('나무엑터스', '안테나', '울림엔터테이먼트') AND
sex='F' AND age>=45;
# 정답
select *
from celab
where NOT agency IN ('나무엑터스', '안테나', '올림엔터테이먼트') AND
(sex='F' OR age>=45);
LIKE
# 직업명에 '가수'가 포함된 데이터를 검색
select *
from celab
where job_title LIKE '%가수%';
# 이름이 두글자인 데이터를 조회하세요
select *
from celab
where name LIKE '__';
# celab테이블에서 나이가 30세 이상 50세 이하이면서 개그맨이 아닌 데이터를 조회하세요.
select *
from celab
where (age >= '30' AND age<='50') AND NOT job_title LIKE '%개그맨%';
# 같은 답
select *
from celab
where (age BETWEEN 30 AND 50) AND job_title NOT LIKE '%개그맨%';