본문 바로가기
mySql

[mysql] Logical Operators

by ram_ 2022. 12. 4.
연산자 의미
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 '%개그맨%';

'mySql' 카테고리의 다른 글

AWS RDS  (0) 2022.12.07
[mysql] Union / Join / Concat / Alias / Distinct / Limit  (0) 2022.12.05
[mysql] ORDER BY / Comparison Operators  (0) 2022.12.04
[mysql] insert / select / where / update / delete  (0) 2022.12.04
[mysql] table  (0) 2022.12.04