이 글은 24.01.18에 본인 벨로그에 작성했던 글을 옮겨 온 것이다.
LOGICAL OPERATION
NOT
- 조건을 만족하지 않는 경우에 TRUE, 만족하면 FALSE
(1)
소속사가 YG엔터테인먼트이면서 남자가 아니거나, 직업이 가수이면서 소속사가 YG엔터테인먼트가 아닌 데이터 검색하기!
SELECT *
FROM CELEB
WHERE (AGENCY = 'YG엔터테인먼트' AND NOT SEX = 'M')
OR (JOB_TITLE = '가수' AND NOT AGENCY = 'YG엔터테인먼트');
(2)
생일이 1990년 이후고 여자가 아니거나, 생일이 1979년 이전이고 소속사가 안테나가 아닌 데이터 검색하기!
SELECT *
FROM CELEB
WHERE (YEAR(BIRTHDAY) > 1990 AND NOT SEX = 'F')
OR (YEAR(BIRTHDAY) < 1979 AND NOT AGENCY = '안테나');
IN
- 목록 안에 조건값이 존재하는 경우 TRUE
(1)
소속사가 나무엔터스, 안테나, 울림엔터테인먼트가 아니면서 성별이 여자거나, 나이가 45세 이상인 데이터 검색하기!
SELECT *
FROM CELEB
WHERE NOT AGENCY ('나무엑터스', '안테나', '울림엔터테인먼트')
AND (SEX = 'F' OR AGE >= 45);
(2)
소속사가 안테나, YG엔터테인먼트 중 하나가 아니고, 성별이 여자인 데이터 검색하기
select *
from celeb
where not agency in ('안테나', 'YG엔터테인먼트')
and sex = 'F';
(3)
아이유, 송강, 강동원, 차승원 중에 YG엔터테인먼트 소속이 아니거나 나이가 4~50세인 사람을 찾자.
SELECT *
FROM CELEB
WHERE NAME IN ('아이유', '송강', '강동원', '차승원')
AND (NOT AGENCY = 'YG엔터테인먼트' OR AGE BETWEEN 40 AND 50);
UNION / UNION ALL
여러 SQL문을 합치는 함수
이씨이거나 1970년대생인 데이터 검색
SELECT * FROM CELEB WHERE NAME LIKE '이%'
UNION ALL
SELECT * FROM CELEB WHERE YEAR(BIRTHDAY) BETWEEN 1970 AND 1979;