AND, OR, IN

eunbi kim·2024년 3월 29일
0
  • AND
  • OR
  • NOT

저번 시간에 사용한 celeb 테이블로 실습을 진행한다.

AND

조건을 모두 만족하는 경우 TRUE를 반환한다.

나이가 29세이고 성별이 여성인 데이터 검색:

select * from celeb where age=29 and sex='F';

성별이 남자이고 나이가 40세보다 큰 데이터를 이름의 역순으로 정렬하여 검색:

select * from celeb where sex='M' and age>40 order by name desc;

OR

하나의 조건이라도 만족하는 경우 TRUE를 반환한다.

나이가 25세보다 작거나 30세보다 큰 데이터 검색:

select * from celeb where age<25 or age>30;

나이가 29세보다 작고 여자이거나, 나이가 30세보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색:

select * from celeb where (age<29 and sex='F') or (age>30 and sex='M') order by age, sex;

YG엔터테인먼트 소속이거나 나무엑터스 소속인 연예인 중, 나이가 30세보다 작은 데이터를 검색:

select * from celeb where (agency='YG엔터테인먼트' or agency='나무엑터스') and age<30;

  • 문제 풀이

celeb 테이블에서 소속사가 YG엔터테인먼트이거나 안테나인 데이터를 소속사 순으로 정렬하여 조회하세요.

select * from celeb where agency='YG엔터테인먼트' or agency='안테나' order by agency;

celeb 테이블에서 남자이면서 YG엔터테인먼트 소속이거나, 나이가 30세보다 작은 데이터를 나이, 소속사 순으로 정렬하여 검색하세요.

select * from celeb where (sex='M' and agency='YG엔터테인먼트') or (age<30) order by age, agency;

celeb 테이블에서 아이디가 홀수면서 성별이 남자거나, 아이디가 짝수면서 소속사가 YG엔터테인먼트인 데이터를 나이순으로 정렬하여 검색하세요.

select * from celeb where ((ID%2) = 1 and sex='M') or ((ID%2) = 0 and agency='YG엔터테인먼트') order by age;


NOT

조건을 만족하지 않는 경우 TRUE를 반환한다.

성별이 여자가 아닌 데이터 검색:

select * from celeb where not sex='F';

소속사가 YG엔터테인먼트이면서 남자가 아니거나, 직업이 가수이면서 소속사가 YG엔터테인먼트가 아닌 데이터 검색:

select * from celeb where (agency='YG엔터테인먼트' and not sex='M') or
(job_title='가수' and not agency='YG엔터테인먼트')

생일이 1990년 이후이면서 여자가 아니거나, 생일이 1979년 이전이면서 소속사가 안테나가 아닌 데이터 검색:

select * from celeb where (birthday>'1989-12-31' and not sex='F') or
(birthday<'1979-01-01' and not agency='안테나');

  • 문제 풀이

Celeb 테이블에서 소속사가 YG엔터테인먼트가 아니고 나이가 40세 이하인 데이터를 이름순으로 정렬하여 조회하세요.

mysql> select * from celeb where not agency='YG엔터테인먼트' and age<=40 order by name;

Celeb 테이블에서 성별이 남자가 아니거나 나이가 30세 이상인 데이터를 나이의 역순으로 정렬하여 조회하세요.

mysql> select * from celeb where not sex='M' or age>=30 order by age desc;

Celeb 테이블에서 직업이 가수가 아니면서 성별이 여자이거나, 나이가 40보다 작지 않으면서 홀수인 데이터를 조회하세요.

select * from celeb where (not job_title='가수' and sex='F') or
(not age<40 and (id%2) = 1);

0개의 댓글