[강의 요약]
[Part 05. SQL_ Ch07. Logical Operations] 강의 수강
01~09 수강. ANR OR NOT
🐢 100일 챌린지 🔥 : [▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰ ] 70/100일 (70%)
곧 SQLD 시험이라 시간관계상 30분 이상 최소한의 강의만 수강할듯함
드디어 70일....!
SQL에서 조건을 조합해서 더 정밀한 검색을 하기 위해 사용하는 것이 논리 연산자다.
단순히 WHERE 조건 하나만 사용하는 게 아니라, AND, OR, NOT을 사용하면 보다 복잡한 설정이 가능하다.
실습 환경은 저번과 동일하다.
USE zerobase;
[AND]
▶ AND 연산자
모두 만족하는 조건
SELECT * FROM celeb
WHERE age = 29 AND gender = 'F';
- 나이가 29세 그리고 성별이 여성인 경우만 조회
- 모든 조건이 TRUE여야 전체 결과가 TRUE
▶ 예제: 성별이 남자이고 나이가 40세 초과
SELECT * FROM celeb
WHERE gender = 'M' AND age > 40
ORDER BY name DESC;
- AND는 조건을 좁혀주는 필터링 도구
▶ 연습 문제
-- 문제 1
SELECT * FROM celeb
WHERE gender = 'M' AND agency = 'YG엔터테이먼트'
ORDER BY agency;
-- 문제 2
SELECT * FROM celeb
WHERE gender = 'M' AND age >= 30
ORDER BY age;
[OR]
▶ OR 연산자
하나만 만족해도 TRUE
SELECT * FROM celeb
WHERE age < 25 OR age > 30;
- 둘 중 하나라도 만족하면 결과에 포함
▶ 복합 조건 예제
괄호로 구분하는 게 필수다.
SELECT * FROM celeb
WHERE (age < 29 AND gender = 'F')
OR (age > 30 AND gender = 'M')
ORDER BY age, gender;
▶ YG 또는 나무엑터스 소속 + 30세 미만 조건
SELECT * FROM celeb
WHERE (agency = 'YG엔터테이먼트' OR agency = '나무엑터스')
AND age < 30;
▶ 참고용 예시들
-- 문제 1
SELECT * FROM celeb
WHERE agency = 'YG엔터테이먼트' OR agency = '안테나'
ORDER BY agency;
-- 문제 2
SELECT * FROM celeb
WHERE (gender = 'M' AND agency = 'YG엔터테이먼트')
OR age < 30
ORDER BY age, agency;
-- 문제 3
SELECT * FROM celeb
WHERE (id % 2 = 1 AND gender = 'M')
OR (id % 2 = 0 AND agency = 'YG엔터테이먼트')
ORDER BY age;
▶ 잘못된 OR 사용
괄호 없이 작성한 경우, 고전 해석 순서가 달라져 오류가 발생하거나 원치 않는 결과가 나올 수 있다.
[NOT]
▶ NOT 연산자
조건을 만족하지 않는 경우
SELECT * FROM celeb
WHERE NOT gender = 'F';
-- 또는
WHERE gender != 'F';
- NOT은 =, IN, BETWEEN, LIKE 등 다양한 조건과 함께 사용 가능하다.
▶ 복합 예제: NOT + AND + OR
SELECT * FROM celeb
WHERE (agency = 'YG엔터테이먼트' AND NOT gender = 'M')
OR (job = '가수' AND agency != 'YG엔터테이먼트');
- AND와 OR, NOT이 조합될 땐 괄호를 꼭 사용해야함
▶ 생년월일 조건까지 추가된 예제
SELECT * FROM celeb
WHERE (birth > '1990-01-01' AND NOT gender = 'F')
OR (birth < '1979-01-01' AND NOT agency = '안테나');
▶ 추가 예시들
-- 문제 1
SELECT * FROM celeb
WHERE NOT agency = 'YG엔터테이먼트' AND age <= 40
ORDER BY name;
-- 문제 2
SELECT * FROM celeb
WHERE NOT gender = 'M' OR age >= 30
ORDER BY age DESC;
-- 문제 3
SELECT * FROM celeb
WHERE (NOT job = '가수' AND gender = 'F')
OR (age >= 40 AND id % 2 = 1);
[나의 생각 정리]
논리 연산자는 파이썬에서도 다뤘기 때문에 어려운 부분은 없다.
[적용점]
특정 조건으로 검색할 때 사용
“이 글은 제로베이스 데이터 스쿨 주 3일반 강의 자료 일부를 발췌하여 작성되었습니다.”
'제로베이스 데이터 취업 파트타임 > 100일 챌린지_일일 학습 일지' 카테고리의 다른 글
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.27] (1) | 2025.05.27 |
---|---|
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.26] (0) | 2025.05.26 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.24] (1) | 2025.05.24 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.23] (1) | 2025.05.23 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.22] (0) | 2025.05.22 |