
USE zerobase;



SELECT column1, column2, ... FROM tablename WHERE condition1 AND condition2 AND condition3 ... ;
AND 예제 1
나이가 29세이고 성별이 여성인 데이터 검색
SELECT * FROM celeb WHERE age=29 AND sex='F' ;

AND 예제 2
성별이 남자이고 나이가 40세 보다 큰 데이터를 이름의 역순으로 정렬하여 검색 (desc 빼먹음)
SELECT * FROM celeb WHERE sex='M' AND age > 40 ORDER BY name;

SELECT column1, column2, ... FROM tablename WHERE condition1 OR condition2 OR condition3 ... ;
OR 예제 1
나이가 25세보다 작거나 30세보다 큰 데이터 검색
SELECT * FROM celeb WHERE age < 25 OR age>30 ORDER BY age;

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

SELECT * FROM celeb WHERE age < 29 AND sex='F';


SELECT * FROM celeb WHERE age > 30 AND sex='M';


SELECT * FROM celeb WHERE (age < 29 AND sex='F') OR (age > 30 AND sex='M');


SELECT * FROM celeb WHERE (age < 29 AND sex='F') OR (age > 30 AND sex='M') ORDER BY age, sex;

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

SELECT * FROM celeb WHERE agency='YG엔터테인먼트' OR agency='나무엑터스';


SELECT * FROM celeb WHERE agency='YG엔터테인먼트' OR agency='나무엑터스' AND age < 30;


SELECT * FROM celeb WHERE (agency='YG엔터테인먼트' OR agency='나무엑터스') # 괄호 추가 AND age < 30;

SELECT column1, column2, ... FROM tablename WHERE NOT condition;
NOT 예제 1
성별이 여자가 아닌 데이터 검색
SELECT * FROM celeb WHERE NOT sex='F';
NOT 예제 2 - 1
소속사가 YG엔터테이먼트이면서 남자가 아니거나 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색

SELECT * FROM celeb WHERE agency='YG엔터테인먼트';


SELECT * FROM celeb WHERE agency='YG엔터테인먼트' AND NOT sex='M';


SELECT * FROM celeb WHERE job_title='가수';


SELECT * FROM celeb WHERE job_title='가수' AND NOT agency='YG엔터테인먼트';


SELECT * FROM celeb WHERE (agency='YG엔터테인먼트' AND NOT sex='M') OR (job_title='가수' AND NOT agency='YG엔터테인먼트');

NOT 예제 3 - 1
생일이 1990년 이후이면서 여자가 아니거나, 생일이 1979년 이전이면서 소속사가 안테나가 아닌 데이터 검색
NOT 예제 3 - 2

SELECT * FROM celeb WHERE birthday > 19891231;


SELECT * FROM celeb WHERE birthday > 19891231 AND NOT sex='F';

SELECT * FROM celeb WHERE birthday < 19800101;


SELECT * FROM celeb WHERE birthday < 19800101 AND NOT agency = '안테나';


SELECT * FROM celeb WHERE (birthday > 19891231 AND NOT sex='F') OR (birthday < 19800101 AND NOT agency = '안테나');

SELECT column1, column2, ... FROM tablename WHERE column1 BETWEEN value1 AND value2;
BETWEEN 예제 1 - 1
나이가 20세에서 40세 사이의 데이터 검색
SELECT * FROM celeb WHERE age BETWEEN 20 AND 40;

BETWEEN 예제 1 - 2
나이가 20세에서 40세 사이의 데이터 검색
SELECT * FROM celeb WHERE age >= 20 AND age <= 40;

BETWEEN 예제 2 - 1
생년월일이 1980년에서 1995년 사이가 아니면서 여자이거나,
소속사가 YG엔터테이먼트이면서 나이가 20세에서 45세 사이가 아닌 데이터 검색
BETWEEN 예제 2 - 2

SELECT * FROM celeb WHERE birthday BETWEEN 19800101 AND 19951231;


SELECT * FROM celeb WHERE NOT birthday BETWEEN 19800101 AND 19951231;


SELECT * FROM celeb WHERE NOT birthday BETWEEN 19800101 AND 19951231 AND sex='F';


SELECT * FROM celeb WHERE agency = 'YG엔터테인먼트';


SELECT * FROM celeb WHERE agency = 'YG엔터테인먼트' AND NOT age BETWEEN 20 AND 45;


SELECT * FROM celeb WHERE (NOT birthday BETWEEN 19800101 AND 19951231 AND sex='F') OR (agency = 'YG엔터테인먼트' AND NOT age BETWEEN 20 AND 45);

SELECT column1, column2, ... FROM tablename WHERE column IN (value1, value2, ...);
IN 예제 1 - 1
나이가 28세, 48세 중 하나인 데이터 검색
SELECT * FROM celeb WHERE age IN (28, 48);

IN 예제 1 - 2
나이가 28세, 48세 중 하나인 데이터 검색
SELECT * FROM celeb WHERE age=28 OR age=48;

IN 예제 2 - 1
소속사가 나무엑터스, 안테나, 울림엔터테이먼트가 아니면서, 성별이 여자거나 나이가 45세 이상인 데이터 검색
IN 예제 2 - 2

SELECT * FROM celeb WHERE agency IN ('나무엑터스', '안테나', '울림엔터테인먼트');


SELECT * FROM celeb WHERE NOT agency IN ('나무엑터스', '안테나', '울림엔터테인먼트');


SELECT * FROM celeb WHERE NOT agency IN ('나무엑터스', '안테나', '울림엔터테인먼트') AND sex='F';


소속사가 나무엑터스, 안테나, 울림엔터테이먼트가 아니면서, 나이가 45세 이상
SELECT * FROM celeb WHERE NOT agency IN ('나무엑터스', '안테나', '울림엔터테인먼트') AND age >= 45;


SELECT * FROM celeb WHERE NOT agency IN ('나무엑터스', '안테나', '울림엔터테인먼트') AND sex='F' OR age >= 45;


SELECT * FROM celeb WHERE NOT agency IN ('나무엑터스', '안테나', '울림엔터테인먼트') AND (sex='F' OR age >= 45);

SELECT column1, column2, ... FROM tablename WHERE column LIKE pattern;
LIKE 예제 1 - 1
소속사 이름이 ‘YG엔터테이먼트’ 인 데이터를 검색
SELECT * FROM celeb WHERE agency LIKE 'YG엔터테인먼트';

SELECT * FROM celeb WHERE agency = 'YG엔터테인먼트';

LIKE 예제 2 'YG%'
‘YG’로 시작하는 소속사 이름을 가진 데이터를 검색
SELECT * FROM celeb WHERE agency LIKE 'YG%';

SELECT * FROM celeb WHERE agency LIKE '%엔터테인먼트';

LIKE 예제 4 '%가수%'
직업명에 ‘가수’가 포함된 데이터를 검색
SELECT * FROM celeb WHERE job_title LIKE '%가수%';

LIKE 예제 5 '_G%'
소속사 이름의 두번째 글자가 G인 데이터를 검색
SELECT * FROM celeb WHERE agency LIKE '_G%';

LIKE 예제 6 '가_%'
직업명이 ‘가' 로 시작하고 최소 2글자 이상인 데이터 검색
SELECT * FROM celeb WHERE job_title LIKE '가_%';

LIKE 예제 7 '가____%'
직업명이 '가' 로 시작하고 최소 5글자 이상인 데이터 검색
SELECT * FROM celeb WHERE job_title LIKE '가____%';

LIKE 예제 8 '영%모델'
직업명이 ‘영'으로 시작하고 '모델’로 끝나는 데이터 검색
SELECT * FROM celeb WHERE job_title LIKE '영%모델';

LIKE 예제 9
영화배우와 텔런트를 병행하는 연예인 검색
SELECT * FROM celeb WHERE job_title LIKE '%영화배우%' AND job_title LIKE '%탤런트%;

LIKE 예제 10 - 1
직업이 하나 이상인 연예인 중 영화배우 혹은 텔런트가 아닌 연예인 검색

SELECT * FROM celeb WHERE job_title LIKE '%,%';


SELECT * FROM celeb WHERE job_title LIKE '%영화배우%' OR job_title LIKE '%탤런트%';


SELECT * FROM celeb WHERE NOT (job_title LIKE '%영화배우%' OR job_title LIKE '%탤런트%');


SELECT * FROM celeb WHERE job_title LIKE '%,%' AND NOT (job_title LIKE '%영화배우%' OR job_title LIKE '%탤런트%');

위 글은 제로베이스 데이터 취업 스쿨의 강의자료를 참고하여 작성되었습니다.