02. DML : ๋ฐ์ดํฐ ์กฐ์์ด (USER)
2. DML : ๋ฐ์ดํฐ ์กฐ์์ด (USER)
SELECT ๋ ์ฝ๋ ๊ฒ์, INSERT ๋ ์ฝ๋ ์ฝ์
, DELETE ๋ ์ฝ๋ ์ญ์ , UPDATE ๋ ์ฝ๋ ์์
[SELECT ๋ ์ฝ๋ ๊ฒ์]
โ ๊ธฐ๋ณธ๊ณต์
SELECT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด์;
[WHERE์ ๋น๊ต์ฐ์ฐ์]
= ๊ฐ๋ค
> ๋ณด๋ค ํฌ๋ค
>= ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค
< ๋ณด๋ค ์๋ค
<= ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค
[WHERE์ SQL์ฐ์ฐ์]
Between a AND b a์ b ์ฌ์ด์ ๊ฐ์ ๊ฐ์ง (a์ b๊ฐ ํฌํจ)
IN (list) ๋ฆฌ์คํธ์ ์๋ ๊ฐ ์ค์์ ์ด๋ ํ๋๋ก ์ผ์นํจ
IS NULL ์๋ต๊ฐ๋ฅ
LIKE ๋น๊ต ๋ฌธ์์ด. ๋น๊ต ๋ฌธ์์ด๊ณผ ํํ๊ฐ ์ผ์นํ๋ค(%,_ ์ฌ์ฉ)
* % 0๊ฐ ์ด์์ ์ด๋ค ๋ฌธ์๋ฅผ ์๋ฏธ
* _ 1๊ฐ์ธ ๋จ์ผ ๋ฌธ์๋ฅผ ์๋ฏธ
[WHERE์ ๋ถ์ ์ฐ์ฐ์]
<>, !=, ^= ๊ฐ์ง ์๋ค
NOT ์นผ๋ผ๋ช
= ๊ฐ์ง ์๋ค
NOT ์นผ๋ผ๋ช
> ๋ณด๋ค ํฌ์ง ์๋ค
NOT Between a AND b : a, b ๊ฐ์ ํฌํจํ์ง ์๋๋ค
NOT IN (list) : list๊ฐ๊ณผ ์ผ์นํ์ง ์๋ค
IS NOT NULL : NULL๊ฐ์ ๊ฐ์ง ์๋ค
[WHERE์ ๋
ผ๋ฆฌ์ฐ์ฐ์]
AND ์, ๋ค ์กฐ๊ฑด์ด ๋์์ ์ฐธ
OR ์, ๋ค ์กฐ๊ฑด ์ค ํ๋๋ง ์ฐธ
NOT ๋ค์ ์ค๋ ์กฐ๊ฑด๊ณผ ๋ฐ๋
[WHERE์ ๋ถ์ ์ฐ์ฐ์]
NULL / IS NULL / IS NOT NULL
* ์ฐ์ฐ์ ์ฐ์ ์์ () > ๋น๊ต์ฐ์ฐ์, SQL์ฐ์ฐ์ > NOT์ฐ์ฐ์, AND, OR
[์์ฌ์นผ๋ผ]
- SELECT, WHERE์ ์์ ์ฌ์ฉ
- ์ค์ ํ
์ด๋ธ์ด ์กด์ฌํ์ง ์๋ ๊ฐ์ง ์นผ๋ผ
ROWNUM ๋ ์ฝ๋ ์กฐํ ์๋ฒ
ROWD ํ
์ด๋ธ ์์ฑ๊ณผ์ ์์ ์๋์ผ๋ก ์์ฑ๋๋ ๊ณ ์ ๊ฐ
* NVLํจ์ (๋์ ์นผ๋ผ๋ช
, ํด๋น ์นผ๋ผ์ด NULL์ผ ๋ ๋์ฒด๊ฐ)
* ๋ณ์นญํํ AS
* ์ฐ๊ฒฐ ์ฐ์ฐ์ '||'
* ์ค๋ณต๊ฐ ์ ๊ฑฐ DISTINCT
* TO_DATE ํจ์ ('1999/01/01', 'yyyy/mm/dd')
[๋ ์ฝ๋ ์ ๋ ฌ ORDER BY]
SELECT ํ
์ด๋ธor์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด์;
ORDER BY ํ
์ด๋ธor์นผ๋ผ๋ช
DESC;
* DECS๋ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
[INSERT ๋ ์ฝ๋ ์ฝ์
]
โ ๊ธฐ๋ณธ๊ณต์
INSERT INTO ํ
์ด๋ธ๋ช
(์นผ๋ผ๋ช
1, .. ์นผ๋ผ๋ช
n)
VALUES(๊ฐ1, ... ๊ฐn);
* ๋ชจ๋ ์นผ๋ผ์ ์๋ฃ ์
๋ ฅ ์, ์นผ๋ผ๋ช
์๋ต
[์์์ (๋ฌต์์ ) NULL ์
๋ ฅ]
INSERT INTO ํ
์ด๋ธ๋ช
(์นผ๋ผ๋ช
1, ์นผ๋ผ๋ช
2)
VALUES (๊ฐ1, ๊ฐ2);
[๋ช ์์ NULL ์ ๋ ฅ]
INSERT INTO ํ
์ด๋ธ๋ช
VALUES (40, 'OPERATIONS', NULL);
โก ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ ์ฝ๋ ์ฝ์
INSERT INTO dept02
SELECT*FROM dept;
[(๋ค์ค ํ
์ด๋ธ์) ๋ค์ค ๋ ์ฝ๋ ์ฝ์
]
INSERT ALL
INTO emp_hir VALUES(empno, ename, hiredate) -- 2. ๊ฐ๊ฐ ํ
์ด๋ธ์ ๋ฟ๋ ค์ ์ฝ์
ํ ์ ์์
INTO emp_mgr VALUES(empno, ename, mgr)
SELECT empno, ename, hiredate, mgr -- 1. ์๋ธ์ฟผ๋ฆฌ์์ ์ถ๋ ฅํ ์นผ๋ผ์ ๊ฐ๊ฐ ํ
์ด๋ธ์ ๋ฟ๋ ค์ ์ฝ์
ํ ์ ์์
FROM EMP
WHERE DEPTNO=20;
[UPDATE ๋ ์ฝ๋ ์์ ]
โ ๊ธฐ๋ณธ๊ณต์
UPDATE ํ
์ด๋ธ๋ช
SET ์นผ๋ผ๋ช
= ๊ฐ
WHERE ์กฐ๊ฑด์;
[2๊ฐ ์ด์์ ์นผ๋ผ๊ฐ ๋ณ๊ฒฝ]
UPDATE emp01
SET deptno=20, JOB='MANAGER'
WHERE ename='SCOTT';
โก ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํด ๋ ์ฝ๋ ์์
UPDATE dept01
SET loc=(SELECT loc FROM dept01 WHERE deptno=10) -- ์๋ธ์ฟผ๋ฆฌ ์กฐ๊ฑด์
WHERE deptno=20; -- ๋ฉ์ธ์ฟผ๋ฆฌ์์ ๋ฐ์ 20๋ฒ ๋ถ์์ ์์น๋ฅผ ๋ฐ๊พผ๋ค
[DELETE ๋ ์ฝ๋ ์ญ์ ]
โ ๊ธฐ๋ณธ๊ณต์
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด์;
โก ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํด ๋ ์ฝ๋ ์ญ์
DELETE FROM emp01
WHERE deptno=(SELECT deptno FROM dept WHERE dname='SALES'); -- ๋ถ์๋ฒํธ 30๋ฒ
SELECT*FROM emp01;