- BETWEEN
- IN
- LIKE
Celeb 테이블과 실습을 진행하였다~.~
조건값이 범위 사이에 있으면 TRUE를 반환한다.
나이가 20세에서 40세 사이의 데이터 검색:
select * from celeb where age between 20 and 40;
Between을 안 써도, AND를 이용하여 검색할 수 있다.
select * from celeb where age>=20 and age<=40;
생년월일이 1980년에서 1985년 사이가 아니면서 여자이거나,
소속사가 YG 엔터테인먼트이면서 나이가 20세에서 45세 사이가 아닌 데이터 검색:
select * from celeb where (not birthday between '1980-01-01' and '1995-12-31');
Celeb 테이블에서 나이가 30세에서 60세 사이이고 성별이 남자인 데이터를 나이순으로 정렬하여 조회하세요.
select * from celeb where (age between 30 and 60) and sex='M' order by age;
Celeb 테이블에서 나이가 30세에서 60세 사이가 아니거나 YG엔터테인먼트 소속인 데이터를 나이의 역순으로 정렬하여 조회하세요.
select * from celeb where (not age between 30 and 60) or
(agency='YG엔터테인먼트') order by age desc;
Celeb 테이블에서 아이디가 1에서 5 사이의 값이면서 성별이 여자이거나,
아이디가 홀수이면서 성별이 남자이면서 나이가 20세에서 30세 사이인 데이터를 조회하세요.
select * from celeb where (ID between 1 and 5 and sex='F') or
((ID%2) = 1 and sex='M' and age between 20 and 30);
목록 안에 조건이 존재하는 경우 TRUE를 반환한다.
나이가 28세, 48세 중 하나인 데이터 검색:
select * from celeb where age in (28, 48);
OR를 이용해도 같은 의미이다.
select * from celeb where age=28 or age=48;
소속사가 나무엑터스, 안테나, 울림엔터테인먼트가 아니면서,
성별이 여자거나 나이가 45세 이상인 데이터 검색:
select * from celeb where (not agency in ('나무엑터스', '안테나', '울림엔터테인먼트')) and
(sex='F' or age>=45);
괄호 중요하다~!
Celeb 테이블에서 아이유, 이미주, 송강 중에 소속사가 '나무엑터스'인 데이터를 조회하세요.
select * from celeb where name in ('아이유', '이미주', '송강') and agency='나무엑터스';
Celeb 테이블에서 소속사가 안테나, YG엔터테인먼트 중 하나가 아니고, 성별이 여자인 데이터를 조회하세요.
select * from celeb where (not agency in ('안테나', 'YG엔터테인먼트')) and sex='F';
Celeb 테이블에서 아이유, 송강, 강동원, 차승원 중에 YG엔터테인먼트 소속이 아니거나
나이가 40세에서 50세 사이인 사람을 찾아보세요.
select * from celeb where name in ('아이유', '송강', '강동원', '차승원') and
(not agency='YG엔터테인먼트' or age between 40 and 50);
조건값이 패턴에 맞으면 TRUE를 반환한다.
패턴은 %, _ 등을 사용하여 다양한 조건을 지정해줄 수 있다.
예제 많음
소속사 이름이 'YG엔터테인먼트'인 데이터를 검색:
select * from celeb where agency like 'YG엔터테인먼트';
'YG'로 시작하는 소속사 이름을 가진 데이터를 검색:
select * from celeb where agency like 'YG%';
'엔터테인먼트'로 끝나느 소속사 이름을 가진 데이터를 검색:
select * from celeb where agency like '%엔터테인먼트';
직업명에 '가수'가 포함된 데이터를 검색:
select * from celeb where job_title like '%가수%';
소속사 이름의 두번째 글자가 G인 데이터를 검색:
select * from celeb where agency like '_G%';
직업명이 '가'로 시작하고 최소 2글자 이상인 데이터 검색:
select * from celeb where job_title like '가_%';
직업명이 '가'로 시작하고 최소 5글자 이상인 데이터 검색:
select * from celeb where job_title like '가_____%';
직업명이 '영'으로 시작하고 '모델'로 끝나는 데이터 검색:
select * from celeb where job_title like '영%모델';
영화배우와 텔런트를 병행하는 연예인 검색:
select * from celeb where job_title like '영화배우%' and
job_title like '%텔런트%';
직업이 하나 이상인 연예인 중 영화배우 혹은 텔런트가 아닌 연예인 검색:
select * from celeb where job_title like '%,%' and
not (job_title like '%영화배우%' or job_title like '%텔런트%');
Celeb 테이블에서 직업 중 가수가 포함되어 있고 성이 이씨인 데이터를 조회하세요.
select * from celeb where job_title like '%가수%' and name like '이%';
Celeb 테이블에서 성별이 남자이거나, 직업명이 '텔런트'로 끝나면서 최소 5글자 이상인 데이터를 조회하세요.
select * from celeb where sex='M' or job_title like '%__텔런트';
Celeb 테이블에서 이름이 두글자인 데이터를 조회하세요.
select * from celeb where name like '__';
Celeb 테이블에서 나이가 30세 이상 50세 이하면서 개그맨이 아닌 데이터를 조회하세요.
select * from celeb where age between 30 and 50 and job_title not like '%개그맨%';
Celeb 테이블에서 아이유, 이미주, 유재석, 송강 중에 소속사 이름이 '나무'로 시작하는 데이터를 조회하세요.
select * from celeb where name in ('아이유', '이미주', '유재석', '송강') and
agency like '나무%';
Celeb 테이블에서 아이유, 이미주, 송강, 이수현 중에 가수만 직업으로 가졌거나, 가수를 병행하지 않고 텔런트를 하는 사람을 찾으세요.
select * from celeb where name in ('아이유', '이미주', '송강', '이수현') and
(job_title like '가수' or (job_title not like '%가수%' and job_title like '%텔런트%'));