AND, OR, NOT
AND
โANDโ ์ฐ์ฐ์๋ SQL์์ ์ฌ๋ฌ ์กฐ๊ฑด์ ๋์์ ๋ง์กฑํด์ผ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ฆ, โANDโ ๋ฅผ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ ๋ชจ๋ ์กฐ๊ฑด์ธ ์ฐธ(TRUE)์ผ ๋๋ง ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
- ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ ์ธ๋ฐํ ํํฐ๋ง์ ์ํํ๊ณ ์ ํ ๋ ์ ์ฉํ๋ฉฐ, ํนํ ๋ณต์กํ ๋ฐ์ดํฐ ์งํฉ์์ ๊ธฐ์ค์ ๋ถํฉํ๋ ์ ํํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ณ ์ ํ ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
โANDโ ์ฌ์ฉ ์
-
์ฌ๋ฌ ๊ธฐ์ค์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ ๊ฒ์ : ๋์ด๊ฐ 30์ธ ์ด์์ด๋ฉด์ โNew Yorkโ์ ๊ฑฐ์ฃผํ๋ ๋ชจ๋ ์ฌ๋์ ์ฐพ๊ณ ์ถ์ ๋
SELECT * FROM people WHERE age >= 30 AND city = 'New York' ;
์ด ์ฟผ๋ฆฌ๋ โageโ ์ด์ด 30 ์ด์์ด๋ฉด์ ๋์์ โcityโ ์ด์ด โNew Yorkโ์ธ ๋ชจ๋ ํ์ ๋ฐํํฉ๋๋ค.
-
๋ ์ง ๋ฒ์์ ํน์ ์กฐ๊ฑด์ ๋์์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ ๊ฒ์ : 2023๋
1์ 1์ผ๋ถํฐ 2023๋
3์ 31์ผ ์ฌ์ด์ ๋ฑ๋ก๋๊ณ , ์ํ๊ฐ โํ์ฑํโ์ธ ๋ชจ๋ ๊ณ์ ์ ์ฐพ๊ณ ์ถ์ ๋
SELECT * FROM account WHERE registration_date BETWEEN '2023-01-01' AND '2023-03-31' AND status = 'Active';
์ด ์ฟผ๋ฆฌ๋ โregistration_dateโ ๊ฐ ์ง์ ๋ ๋ ์ง ๋ฒ์ ๋ด์ ์์ผ๋ฉฐ, โstatusโ ๊ฐ โActiveโ ์ธ ํ์ ๋ฐํํฉ๋๋ค.
โANDโ ์ฐ์ฐ์์ ํน์ง
- โANDโ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋๋ ๊ฐ ์กฐ๊ฑด์ด ์๋ก ์ด๋ค ๊ด๊ณ์ ์๋์ง ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ํธ ๋ฐฐํ์ ์ธ ์กฐ๊ฑด์ โANDโ ๋ก ์ฐ๊ฒฐํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ํญ์ ๋น์ด ์์ ๊ฒ์ ๋๋ค.
- ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ ํฐ ๋ฐ์ดํฐ ์ธํธ์์๋ ์ธ๋ฑ์ค์ ์กฐ๊ฑด์ ํจ์จ์ ์ธ ์ฌ์ฉ์ด ์ค์ํฉ๋๋ค. ๊ฐ๋ฅํ ํ, ์ฑ๋ฅ์ ์ํฅ์ ๋ ๋ฏธ์น๋ ์กฐ๊ฑด์ ๋จผ์ ์ ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
โANDโ ์ฐ์ฐ์๋ ๋ณต์์ ์กฐ๊ฑด์ ์กฐํฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์ ํ ๋ ํ์์ ์ธ ๋๊ตฌ์
๋๋ค.
์ด๋ฅผ ํตํด ๋ ์ ํํ๊ณ ์๋ฏธ ์๋ ๋ฐ์ดํฐ ์งํฉ์ ์ป์ ์ ์์ผ๋ฉฐ, SQL ์ฟผ๋ฆฌ ์์ฑ ์ ๋ค์ํ ์ํฉ์ ๋ง์ถฐ ์ ์ฐํ๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค.
OR
โORโ ์ฐ์ฐ์๋ SQL์์ ์ฃผ์ด์ง ์กฐ๊ฑด ์ค ํ๋ ์ด์์ด ์ฐธ(TRUE)์ผ ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ณ ์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- โORโ ์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์กฐ๊ฑด ์ค ํ๋๋ผ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ์ ์์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ์ ์ ์ฐ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- โORโ ์ ๋ค์ํ ์๋๋ฆฌ์ค์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ฉฐ, ํนํ ์ฌ๋ฌ ๋ค๋ฅธ ๊ฐ๋ฅ์ฑ์ ๋ชจ๋ ํฌํจํด์ผ ํ ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
โORโ ์ฌ์ฉ ์
-
์ฌ๋ฌ ๋ค๋ฅธ ๊ฐ ์ค ํ๋๋ฅผ ๋ง์กฑํ๋ ๋ฐ์ดํฐ ๊ฒ์ : โManagerโ ๋๋ โSalesโ ๋ถ์์ ์ํ ๋ชจ๋ ์ง์์ ์ฐพ๊ณ ์ถ์ ๋
SELECT * FROM employees WHERE department = 'Manager' OR department = 'Sales';
์ด ์ฟผ๋ฆฌ๋ โdepartmentโ ์ด์ด โManagerโ์ด๊ฑฐ๋ โSalesโ์ธ ๋ชจ๋ ํ์ ๋ฐํํฉ๋๋ค.
-
์ฌ๋ฌ ์กฐ๊ฑด ์ค ํ๋ ์ด์์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ ๊ฒ์ : ๋์ด๊ฐ 18์ธ ๋ฏธ๋ง์ด๊ฑฐ๋ 65์ธ ์ด์์ธ ๋ชจ๋ ์ฌ๋์ ์ฐพ๊ณ ์ถ์ ๋
SELECT * FROM people WHERE age < 18 OR age >= 65;
์ด ์ฟผ๋ฆฌ๋ โageโ ์ด์ด 18์ธ ๋ฏธ๋ง์ด๊ฑฐ๋ 65์ธ ์ด์์ธ ๋ชจ๋ ํ์ ๋ฐํํฉ๋๋ค.
โORโ ์ฐ์ฐ์์ ํน์ง
- โORโ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋๋ ์ฃผ์ด์ง ์กฐ๊ฑด ์ค ํ๋๋ผ๋ ์ฐธ์ด๋ฉด ๊ฒฐ๊ณผ ์งํฉ์ ํด๋น ํ์ด ํฌํจ๋ฉ๋๋ค. ๋ชจ๋ ์กฐ๊ฑด์ด ๊ฑฐ์ง(FALSE)์ธ ๊ฒฝ์ฐ์๋ง ๊ฒฐ๊ณผ์์ ์ ์ธ๋ฉ๋๋ค.
- ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฅธ ๊ฐ๋ฅ์ฑ์ ํ์ฉํ๋ ๋ฐ ์ ์ฉํ๋ฉฐ, ํนํ ์ฌ์ฉ์์ ์ ๋ ฅ์ด๋ ์ ํ์ ๋ฐ๋ผ ๋ค์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค์ผ ํ ๋ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
- โANDโ ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉ๋ ์ ์์ผ๋, ์ด ๊ฒฝ์ฐ ์ฐ์ ์์์ ์ฃผ์ํด์ผ ํ๋ฉฐ, ๊ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฐ์ ๊ฐ์ ์ฐ์ ์์๋ฅผ ๋ช ํํ๊ฒ ๊ตฌ๋ถํด์ผ ํฉ๋๋ค.
์ฌ์ฉ ์ ๊ณ ๋ ค์ฌํญ
- โORโ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋๋ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ์ฃผ์ํด์ผ ํฉ๋๋ค. ํนํ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ ์์๋ โORโ ์กฐ๊ฑด์ด ๋ง์ ์๋ก ์ฟผ๋ฆฌ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค.
- ๊ฐ๋ฅํ ๊ฒฝ์ฐ, โORโ ์ ์ฌ์ฉํ๋ ๋์ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ๊ณ ๋ คํด๋ณด๋ ๊ฒ๋ ์ข์ต๋๋ค. ์๋ฅผ ๋ค์ด, โINโ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด โORโ ๊ณผ ์ ์ฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ป์ ์ ์์ ๋๊ฐ ๋ง์ต๋๋ค.
- ๋ณต์กํ ์ฟผ๋ฆฌ์์๋ โORโ ๊ณผ โANDโ ๋ฅผ ํผํฉํ์ฌ ์ฌ์ฉํ ๋ ๊ดํธ๋ฅผ ์ ์ ํ ์ฌ์ฉํ์ฌ ๋ช ํํ ๋ ผ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
โORโ ์ฐ์ฐ์๋ ๋ค์ํ ์กฐ๊ฑด์ ์ ์ฐํ๊ฒ ์ฒ๋ฆฌํ๊ณ ์ ํ ๋ ๋งค์ฐ ์ ์ฉํ๋ฉฐ, SQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ณผ์ ์์ ํ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํ ์ ์๊ฒ ํด์ค๋๋ค.
NOT
โNOTโ ์ฐ์ฐ์๋ SQL์์ ์กฐ๊ฑด์ ๋ ผ๋ฆฌ๋ฅผ ๋ถ์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ฆ, โNOTโ ์ ํน์ ์กฐ๊ฑด์ด ๊ฑฐ์ง(FALSE)์ผ ๋ ์ฐธ(TRUE)์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋๋ก ํฉ๋๋ค.
- ์ด๋ฅผ ํตํด ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ณ ์ ํ ๋ ๋งค์ฐ ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์์ต๋๋ค.
- โNOTโ ์ฐ์ฐ์๋ โWHEREโ ์ ๋ด์์ ๋ค๋ฅธ ์ฐ์ฐ์(์: โINโ, โBETWEENโ, โLIKEโ, โEXISTSโ)์ ํจ๊ป ์ฌ์ฉ๋์ด, ํด๋น ์กฐ๊ฑด์ ๋ฐ๋๋๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ ์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
โNOTโ ์ฌ์ฉ ์
-
ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ๋ฐ์ดํฐ ๊ฒ์ : โSalesโ ๋ถ์์ ์ํ์ง ์๋ ๋ชจ๋ ์ง์์ ์ฐพ๊ณ ์ถ์ ๋
SELECT * FROM employees WHERE NOT department = 'Sales';
์ด๋ โdepartmentโ ๊ฐ โSalesโ ๊ฐ ์๋ ๋ชจ๋ ํ์ ๋ฐํํฉ๋๋ค.
-
ํน์ ๋ฒ์์ ์ํ์ง ์๋ ๋ฐ์ดํฐ ๊ฒ์ : 20์ธ์์ 30์ธ ์ฌ์ด๊ฐ ์๋ ์ฌ๋์ ์ฐพ๊ณ ์ถ์ ๋
SELECT * FROM people WHERE NOT age BETWEEN 20 AND 30;
์ด๋ ๋์ด๊ฐ 20์ธ ์ด์ 30์ธ ์ดํ๊ฐ ์๋ ๋ชจ๋ ์ฌ๋์ ์ฐพ์ต๋๋ค.
-
์ง์ ๋ ๋ชฉ๋ก์ ํฌํจ๋์ง ์๋ ๋ฐ์ดํฐ ๊ฒ์ : โManagerโ์ โSalesโ ๋ถ์์ ์ํ์ง ์์ ๋ชจ๋ ์ง์์ ์ฐพ๊ณ ์ถ์ ๋
SELECT * FROM employee WHERE department NOT IN ('Manager', 'Sales');
์ด ์ฟผ๋ฆฌ๋ โdepartmentโ ๊ฐ โManagerโ ๋๋ โSalesโ๊ฐ ์๋ ๋ชจ๋ ํ์ ๋ฐํํฉ๋๋ค.
โNOTโ ์ฐ์ฐ์์ ํน์ง.
- โNOTโ ์ฐ์ฐ์๋ ์กฐ๊ฑด์ ๋ ผ๋ฆฌ๋ฅผ ๋ถ์ ํ์ฌ, ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋ ์ฐธ์ ๋ฐํํฉ๋๋ค.
- โNOTโ ์ โWHEREโ ์ ์์ ๋ค์ํ ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ, ํน์ ์กฐ๊ฑด์ ์ ์ธํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ์ ํ ๋ ์ ์ฉํฉ๋๋ค.
- ๋ณต์กํ ์กฐ๊ฑด์์๋ โNOTโ ์ ์ฌ์ฉํ์ฌ ์์ธ์ ์ธ ๊ฒฝ์ฐ๋ฅผ ์ฝ๊ฒ ํํฐ๋งํ ์ ์์ต๋๋ค.
์ฌ์ฉ ์ ๊ณ ๋ ค์ฌํญ.
- โNOTโ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋๋ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ์ฃผ์ํด์ผ ํฉ๋๋ค. ํนํ, โNOTโ ์ด ํฌํจ๋ ์กฐ๊ฑด์ ์ธ๋ฑ์ค ํ์ฉ์ด ์ด๋ ค์ ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
- ๋ช ํํ์ง ์์ ๋ ผ๋ฆฌ๋ฅผ ํผํ๊ธฐ ์ํด, ๊ฐ๋ฅํ ํ โNOTโ ์ ์ฌ์ฉ์ ์ต์ํํ๊ณ , ๋์ ๋ช ํํ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฒ์ด ์ข์ต๋๋ค.
โNOTโ ์ฐ์ฐ์๋ SQL ์ฟผ๋ฆฌ์์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์ ํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
ํ์ง๋ง, ์ฟผ๋ฆฌ์ ๋ช
ํ์ฑ๊ณผ ์ฑ๋ฅ์ ๊ณ ๋ คํ์ฌ ์ ์คํ๊ฒ ์ฌ์ฉํด์ผ ํฉ๋๋ค.