SQL 기초6~7 - 07~09 - NOT _ (Chapter 07. Logical Operators - [Chapter 07-5. NOT])

HA_·2023년 11월 23일
0

Chapter 07-5. NOT

1. NOT 문법

조건을 만족하지 경우 TRUE

SELECT column1, column2, ...
FROM tablename
WHERE NOT condition;

2. NOT 예제 1

성별이 여자가 아닌 데이터 검색

SELECT *
FROM celeb
WHERE NOT sex='F';

3. NOT 예제 2 - 1

소속사가 YG엔터테이먼트이면서 남자가 아니거나 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색
내가 푼 답>

SELECT *
FROM CELEB
WHERE (AGENCY='YG엔터테이먼트' AND NOT SEX='M') OR (JOB_TITLE='가수' AND NOT AGENCY='YG엔터테이먼트');

정답!

4. NOT 예제 2 - 2

소속사가 YG엔터테이먼트이면서 남자가 아니거나 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색

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

5. NOT 예제 2 - 3

소속사가 YG엔터테이먼트이면서 남자가 아니거나 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색

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

6. NOT 예제 2 - 4

소속사가 YG엔터테이먼트이면서 남자가 아니거나, 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색

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

7. NOT 예제 2 - 5

소속사가 YG엔터테이먼트이면서 남자가 아니거나, 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색

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

8. NOT 예제 2 - 6

소속사가 YG엔터테이먼트이면서 남자가 아니거나, 직업이 가수이면서 소속사가 YG엔터테이먼트가 아닌 데이터 검색

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

9. NOT 예제 3 - 1

생일이 1990년 이후이면서 여자가 아니거나, 생일이 1979년 이전이면서 소속사가 안테나가 아닌 데이터 검색
내가 푼 답>

SELECT *
FROM CELEB
WHERE (BRITHDAY > 19891231 AND NOT SEX='F') OR
(BRITHDAY < 19790101 AND NOT AGENCY='안테나');

오답! - 19800101!

10. NOT 예제 3 - 2

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

SELECT *
FROM celeb
WHERE birthday > 19891231;

11. NOT 예제 3 - 3

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

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

12. NOT 예제 3 - 4

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

SELECT *
FROM celeb
WHERE birthday < 19800101;

12. NOT 예제 3 - 4

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

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

13. NOT 예제 3 - 5

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

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

혼자서 해봅시다.

문제 1. Celeb 테이블에서 소속사가 YG엔터테이먼트가 아니고 나이가 40세 이하인 데이터를 이름순으로 정렬하여 조회하세요.

SELECT *
FROM CELEB
WHERE AGENCY='YG엔터테이먼트' AND AGE <= 40
ORDER BY NAME;

문제 2. Celeb 테이블에서 성별이 남자가 아니거나 나이가 30세 이상인 데이터를 나이의 역순으로 정렬하여 조회하세요.

SELECT *
FROM CELEB
WHERE WHERE NOT SEX='M' OR AGE >= 30  
ORDER BY AGE DESC;

문제 3. Celeb 테이블에서 직업이 가수가 아니면서 성별이 여자이거나, 나이가 40보다 작지 않으면서 아이디가 홀수인 데이터를 조회하세요.

SELECT *
FROM CELEB
WHERE (NOT JOB_TITLE='가수' AND SEX='F') OR
(AGE > 40 AND (ID%2) = 1);

0개의 댓글