๋ฐ์ํ

๐ ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ ๋ถ์ฌ ์กฐํํ๊ธฐ(WHERE)
-- ํ์ผ๋ช
: 02_Select_Where.sql
-- ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ ๋ถ์ฌ ์กฐํํ๊ธฐ
-- 1) ๋น๊ต์ฐ์ฐ์๋ก ์กฐ๊ฑด์ ์ฌ์ฉํ๊ธฐ
-- ์์ 1) ์๊ธ(SALARY)์ด 1500 ์ด์์ธ ์ฌ์ ์กฐํํ๊ธฐ
-- ์ฌ์ฉ๋ฒ) SELECT ์ปฌ๋ผ๋ช
, ์ปฌ๋ผ๋ช
2... FROM ํ
์ด๋ธ๋ช
-- WHERE ์กฐ๊ฑด์ (์ปฌ๋ผ๋ช
(๋ถ๋ฑํธ >, >=, <, <=, =(๊ฐ๋ค), <>(๊ฐ์ง์๋ค)) ๊ฐ);
SELECT ENAME, SALARY FROM EMPLOYEE
WHERE SALARY > 1500;
-- ์์ 2) 10๋ฒ ๋ถ์์ ์์ ์ฌ์์ ์ถ๋ ฅํ์ธ์
SELECT * FROM EMPLOYEE
WHERE DNO = 10;
-- ์์ 3) ์ฌ์๋ช
(ENAME)์ด SCOTT์ธ ์ฌ์์ ์ถ๋ ฅํ์ธ์
SELECT * FROM EMPLOYEE
WHERE ENAME='SCOTT';
-- ์์ 4) ์
์ฌ์ผ์ด(HIREDATE) ์ด '1981/01/01' ์ด์ ์ธ ์ฌ์๋ง ์ถ๋ ฅ
SELECT * FROM EMPLOYEE
WHERE HIREDATE <= '1981/01/01';
๐ ๋ ผ๋ฆฌ์ฐ์ฐ์์ ํจ๊ป ์กฐ๊ฑด์ ์ฌ์ฉํ๊ธฐ
-- 2) ๋
ผ๋ฆฌ ์ฐ์ฐ์์ ํจ๊ป ์กฐ๊ฑด์ ์ฌ์ฉํ๊ธฐ
-- ๋
ผ๋ฆฌ ์ฐ์ฐ์ : AND, OR, NOT
-- ์ฑ๋ฅ : AND > OR(NOT)
-- ์์ 5) ๋ถ์๋ฒํธ(DNO) ๊ฐ 10์ด๊ณ , ์ง๊ธ(JOB)์ด 'MANAGER'์ธ ์ฌ์์ ์ถ๋ ฅํ์ธ์
SELECT * FROM EMPLOYEE
WHERE DNO = 10
AND JOB = 'MANAGER';
-- ์ฐ์ต 1) ๊ธ์ฌ๊ฐ 1000๊ณผ 1500 ์ฌ์ด์ ์ฌ์ ์กฐํํ๊ธฐ
SELECT * FROM EMPLOYEE
WHERE SALARY >= 1000
AND SALARY <= 1500;
-- ์์ 6) ๋ถ์๋ฒํธ๊ฐ 10์ด๊ฑฐ๋ ์ง๊ธ์ด 'MANAGER' ์ธ ์ฌ์๋ง ์ถ๋ ฅํ๊ธฐ
SELECT * FROM EMPLOYEE
WHERE DNO = 10
OR JOB = 'MANAGER';
-- ์์ 7) 10๋ฒ ๋ถ์์ ์์๋ ์ฌ์์ ์ ์ธํ๊ณ ๋๋จธ์ง ์ฌ์ ์ถ๋ ฅํ๊ธฐ
-- ์ฌ์ฉ๋ฒ) SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
-- WHERE NOT ์ปฌ๋ผ๋ช
; (๊ทธ ๊ฐ์ ๋ฐ๋๋๋ ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ๋จ)
SELECT * FROM EMPLOYEE
WHERE NOT DNO = 10;
-- ๋ค๋ฅธ ๋ฐฉ๋ฒ : ๋น๊ต์ฐ์ฐ์ <> ์ฌ์ฉ
SELECT * FROM EMPLOYEE
WHERE DNO <> 10;
-- ์ฐ์ต 2) ๊ธ์ฌ๊ฐ 1000 ๋ฏธ๋ง์ด๊ฑฐ๋ 1500 ์ด๊ณผ์ธ ์ฌ์ ์ถ๋ ฅ
SELECT * FROM EMPLOYEE
WHERE SALARY < 1000
OR SALARY > 1500;
-- ์ฐ์ต 3) ์ปค๋ฏธ์
์ด 300 ์ด๊ฑฐ๋ 500์ด๊ฑฐ๋ 1400 ์ธ ์ฌ์ ์ถ๋ ฅ
SELECT * FROM EMPLOYEE
WHERE COMMISSION = 300
OR COMMISSION = 500
OR COMMISSION = 1400;
๐ BETWEEN ์์ฝ์ด
-- 3) BETWEEN ์์ฝ์ด
-- ์์ 8) ๊ธ์ฌ๊ฐ 1000๊ณผ 1500 ์ฌ์ด์ ์ฌ์ ์กฐํํ๊ธฐ
SELECT * FROM EMPLOYEE
WHERE SALARY >= 1000
AND SALARY <= 1500;
-- BETWEEN ์ฌ์ฉ
-- ์ฌ์ฉ๋ฒ ) SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
-- WHERE ์ปฌ๋ผ๋ช
BETWEEN ์์๊ฐ AND ํฐ ๊ฐ;
-- ์ฌ์ฉ์ฒ : ์์๊ฐ ~ ํฐ ๊ฐ ์ฌ์ด์ ๊ฒฐ๊ณผ ์กฐํํ๊ธฐ ํ ๋ ์ฌ์ฉ
SELECT * FROM EMPLOYEE
WHERE SALARY BETWEEN 1000 AND 1500;
-- NOT BETWEEN
-- ์์ 9) ๊ธ์ฌ๊ฐ 1000 ๋ฏธ๋ง ์ด๊ฑฐ๋ 1500 ์ด๊ณผ์ธ ์ฌ์ ์กฐํํ๊ธฐ
SELECT * FROM EMPLOYEE
WHERE SALARY < 1000
OR SALARY > 1500;
-- NOT BETWEEN ์ฌ์ฉ
SELECT * FROM EMPLOYEE
WHERE SALARY NOT BETWEEN 1000 AND 1500;
-- ์ฐ์ต 3) 1982๋
์ ์
์ฌํ ์ฌ์ ์กฐํํ๊ธฐ
SELECT * FROM EMPLOYEE
WHERE HIREDATE BETWEEN '1982/01/01' AND '1982/12/31';
๐ IN ์์ฝ์ด
-- 4) IN ์์ฝ์ด
-- ์์ 10) ์์ฌ๊ธ(COMMISSION)์ด 300์ด๊ฑฐ๋ 500์ด๊ฑฐ๋ 1400์ธ ์ฌ์ ์กฐํ
SELECT * FROM EMPLOYEE
WHERE COMMISSION = 300
OR COMMISSION = 500
OR COMMISSION = 1400;
-- IN ์ฌ์ฉ
-- ์ฌ์ฉ๋ฒ ) SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
-- WHERE ์ปฌ๋ผ๋ช
IN (๊ฐ, ๊ฐ2, ๊ฐ3....);
-- ์ฌ์ฉ์ฒ : OR๋ก ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋จํ๊ฒ ์ฌ์ฉ๊ฐ๋ฅ
SELECT * FROM EMPLOYEE
WHERE COMMISSION IN (300, 500, 1400);
-- NOT IN ์ฌ์ฉ
-- ์์ 11) ์์ฌ๊ธ(COMMISSION)์ด 300์ด ์๋๊ณ , 500์ด ์๋๊ณ , 1400์ด ์๋ ์ฌ์ ์กฐํ
-- ์ฌ์ฉ๋ฒ ) SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
-- WHERE ์ปฌ๋ผ๋ช
NOT IN (๊ฐ, ๊ฐ2, ๊ฐ3....);
SELECT * FROM EMPLOYEE
WHERE COMMISSION NOT IN (300, 500, 1400);
๐ LIKE ๊ฒ์
-- 5) LIKE ๊ฒ์(*****)
-- ์ ์ : ์ผ๋ถ ํค์๋(์๋ฌธ์, ํ๊ธ)๋ง ์ฌ์ฉํด์ ๋น์ทํ ๊ฒ๋ค๋ง ์ถ๋ ค์ ์กฐํํ๊ธฐ
-- ์์ 12) ์ด๋ฆ์ด 'F'๋ก ์์ํ๋ ์ฌ์ ์กฐํํ๊ธฐ
-- ์ฌ์ฉ๋ฒ) SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
-- WHERE ์ปฌ๋ผ๋ช
LIKE '%ํค์๋%';
-- % : ํค์๋๋ฅผ ์ ์ธํ ๋ฌธ์๋ค
SELECT * FROM EMPLOYEE
WHERE ENAME LIKE 'F%';
-- ์ฐ์ต 4) ์ด๋ฆ์ 'M'์ด ํฌํจ๋์ด ์๋ ์ฌ์ ์กฐํํ๊ธฐ
SELECT * FROM EMPLOYEE
WHERE ENAME LIKE '%M%';
-- ์ฐ์ต 5) ์ด๋ฆ์ด 'N'์ผ๋ก ๋๋๋ ์ฌ์ ์กฐํํ๊ธฐ
SELECT * FROM EMPLOYEE
WHERE ENAME LIKE '%N';
-- ์์ 13) ์ด๋ฆ์ ๋๋ฒ ์งธ ๊ธ์๊ฐ 'A'์ธ ์ฌ์ ์กฐํํ๊ธฐ
-- LIKE๊ธฐํธ : %(ํค์๋๋ฅผ ์ ์ธํ ์ด๋ค ๋ฌธ์์ด์ ์๋ฏธ)
-- : _(ํค์๋๋ฅผ ์ ์ธํ ์ด๋ค ํ ๋ฌธ์๋ฅผ ์๋ฏธ)
SELECT * FROM EMPLOYEE
WHERE ENAME LIKE '_A%';
-- ์ฐ์ต 6) ์ด๋ฆ์ ์ธ๋ฒ ์งธ ๊ธ์๊ฐ 'A'์ธ ์ฌ์ ์กฐํํ๊ธฐ
SELECT * FROM EMPLOYEE
WHERE ENAME LIKE '__A%';
-- ์์ 14)IN, BETWEEN ์ ๋ฐ๋๋ฅผ ๋ํ๋ผ ๋ NOT ์์ ๋ถ์ฌ์ ์ฌ์ฉํ์
-- LIKE์ ๋ฐ๋๋ฅผ ๋ํ๋ผ ๋ ๋๊ฐ์ด ์ฌ์ฉํ ์ ์์ : NOT LIKE
-- ์ด๋ฆ์ A๊ฐ ํฌํจ๋์ง ์๋ ์ฌ๋์ ์กฐํํ์ธ์
SELECT * FROM EMPLOYEE
WHERE ENAME NOT LIKE '%A%';
๐ NULL ๊ฒ์
-- 6) NULL ๊ฒ์(์กฐํ)
-- ์์ 15) ์์ฌ๊ธ(COMMISSION)์ด NULL ์ธ ์ฌ์์ ์กฐํํ์ธ์
-- NULL์ ํน์ง : ์ฐ์ฐ/๋น๊ต ๋ชจ๋ ๊ฒ์ด ์๋จ -> ๊ฒฐ๊ณผ๋ NULL
-- ์์ฝ์ด : NULL ์กฐํ์ : WHERE ์ปฌ๋ผ๋ช
IS NULL;
SELECT * FROM EMPLOYEE
WHERE COMMISSION IS NULL;
-- IN๊ณผ BETWEEN, LIKE์ ๋ฐ๋๋ ์์ NOT
-- IS NOT NULL์ด ์กด์ฌํจ
SELECT * FROM EMPLOYEE
WHERE COMMISSION IS NOT NULL;
๐ ORDER BY ์ ๋ ฌ
-- 7) ORDER BY : ์ ๋ ฌ ๊ธฐ๋ฅ
-- ์์ 16) ์ฌ์ ํ
์ด๋ธ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ธ์
-- ์ฌ์ฉ๋ฒ ) SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
-- ORDER BY ์ ๋ ฌ๋์์ปฌ๋ผ ASC/DESC;
-- ์ฐธ๊ณ ) ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ๋ํญ ์ ํ
SELECT * FROM EMPLOYEE
ORDER BY SALARY ASC; -- ASC(์ค๋ฆ์ฐจ์, ์๋ต๊ฐ๋ฅ)
-- ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
SELECT * FROM EMPLOYEE
ORDER BY SALARY DESC; -- DESC(๋ด๋ฆผ์ฐจ์, ์๋ต๋ถ๊ฐ)
-- ์ฐ์ต7) ์ฌ์ ํ
์ด๋ธ์์ ์ฌ์๋ช
์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
SELECT * FROM EMPLOYEE
ORDER BY ENAME;
-- ์ฐ์ต8) ์
์ฌ์ผ ๋ฐ์ดํฐ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
SELECT * FROM EMPLOYEE
ORDER BY HIREDATE DESC;
-- ์ฐ์ต9) ์ฌ์ํ
์ด๋ธ์์ ๊ธ์ฌ๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ , ์ฌ์๋ช
์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
SELECT * FROM EMPLOYEE
ORDER BY SALARY DESC, ENAME ASC;
๋ฐ์ํ
'SQL > SQL_์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TABLE_CUD (0) | 2023.09.14 |
---|---|
SUBQUERY (0) | 2023.09.14 |
๊ทธ๋ฃนํจ์ (0) | 2023.09.14 |
์ค๋ผํด ๋ด์ฅํจ์ (0) | 2023.09.08 |
SQL ๊ธฐ๋ณธ (0) | 2023.09.08 |