SQL 기초_4

YJ·2023년 4월 13일
0

▷ 오늘 학습 계획: SQL 강의(기초7~9)

📖 07_Logical Operators

3) BETWEEN

SELECT column1, column2
FROM tablename
WHERE column1 BETWEEN value1 AND value2;
# 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);

4) IN

SELECT column1, column2
FROM tablename
WHERE column IN (value1, value2);
# 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 IN ('YG엔터테이먼트') OR age BETWEEN 40 AND 50);

5) LIKE

SELECT column1, column2
FROM tablename
WHERE column LIKE pattern;
# 직업이 하나 이상인 연예인 중 영화배우 혹은 텔런트가 아닌 연예인 검색
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 NOT job_title 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 LIKE '%탤런트%' AND NOT job_title LIKE '%가수%'));

▷ 내일 학습 계획: EDA 테스트

[이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.]

0개의 댓글