DDL ๋ช ๋ น๊ณผ ๋์ ๋๋ฆฌ๋ฅผ ๋ฐฐ์ด๋ค.
๋ช ๋ น์ด๋ค์ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ค.
์ค๋ผํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํด์ฃผ๋ ํ๋ก๊ทธ๋จ
์ค๋ธ์ ํธ : ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ค์ํ ์ ์ฅ ๊ฐ์ฒด๋ฅผ ์์ฑ
์ธ๊ทธ๋จผํธ : ์ค๋ธ์ ํธ ์ค ํน๋ณํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ณ๋์ ์ ์ฅ ๊ณต๊ฐ์ ๊ฐ์ง๋ ๊ฒ
๋ฐ์ดํฐ๋ฒ ์ด์ค (์ฐฝ๊ณ ) - ์ค๋ธ์ ํธ,์ธ๊ทธ๋จผํธ(ํต)
โถDDL : ์ค๋ธ์ ํธ ์์ฑ,๋ณ๊ฒฝ,๊ด๋ฆฌ ํ๋ ๋ช ๋ น์ด
1) CREATE ์์ฑ : ์๋ก์ด ์ค๋ธ์ ํธ, ์คํค๋ง๋ฅผ ์์ฑ
โถ์ผ๋ฐ ํ ์ด๋ธ ์์ฑ
CREATE TABLE new_table
no NUMBER(3) //์ซ์ 3๋ฐ์ดํธ
name VARCHAR2(10) //๊ฐ๋ณํ๋ฌธ์, 10๋ฐ์ดํธ
birth DATE // ๋ ์ง
โถ๊ธฐ๋ณธ ์ ๋ ฅ ๊ฐ์ ์ค์ ํ๊ธฐ
no NUMBER(3) DEFAULT 0 //๊ฐ ์ ๋ ฅํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ๊ฐ์ ๋ฃ์
โถ ํ๊ธ ์ด๋ฆ์ผ๋ก ํ ์ด๋ธ ์์ฑ ๊ฐ๋ฅ
=๋ถํธํจ์ด ์๋ค
โถ ํ ์ด๋ธ ์ด๋ฆ!! >>
=๋ฐ๋์ ๋ฌธ์๋ก ์์ํด์ผํจ,
=30๋ฐ์ดํธ๊น์ง ๊ฐ๋ฅ,
=ํ๋ช ์ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ค๋ธ์ ํธ ์ด๋ฆ๊ณผ ์ค๋ณต ์ฌ์ฉ ์๋จ,
=ํค์๋ ์ฌ์ฉํ์ง ์๊ธฐ
โถ Global Temporary Table ์์ ํ ์ด๋ธ ์์ฑ
=ํ ์ด๋ธ์์ฑ > ๋์ ๋๋ฆฌ ์ ์ฅ > ์์ธ์คํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ํ ์ด๋ธ์ ์์ฑ > ํธ๋์ญ์ ์ด ๋๋๋ฉด ์ฌ๋ผ์ง
=ํ ์คํธ๊ฐ ๋ชฉ์ ์ธ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
=์ผ๋ฐํ ์ด๋ธ์ ๊ฒฝ์ฐ ๋ฆฌ๋ ๋ก๊ทธ๊ฐ ์์ฑ๋์ด ์๊ฐ์ด ์ค๋๊ฑธ๋ฆผ (์์ํ ์ด๋ธ์ ๋น ๋ฆ)
=์ธ์ ๋ณ๋ก ๋ง๋ค์ด์ ธ์ ๋ค๋ฅธ ์ธ์ ์์ ํ ์ด๋ธ ๊ณต์ ๋ถ๊ฐ๋ฅ
ON COMMIT delete ROWS
โถํ ์ด๋ธ ๋ณต์ฌํ๊ธฐ (CATS)
//๋ชจ๋ ์ปฌ๋ผ ๋ณต์ฌ
CREATE TABLE dept3
AS
//ํน์ ์ปฌ๋ผ ๋ณต์ฌ
CREATE TABLE dept3
AS
SELECT decode, dname
FROM dept2;
//ํ
์ด๋ธ ๊ตฌ์กฐ๋ง ๊ฐ์ ธ์ค๊ธฐ (๋ฐ์ดํฐx)
CREATE TABLE dept3
AS SELECT * FROM dept2;
WHERE 1 = 2; // ํ๋ฆฐ ์กฐ๊ฑด์ ์ฃผ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํจ
2) ALTER ์์ : ๋ง๋ค์ด์ ธ์๋ ์ค๋ธ์ ํธ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด
= ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ฆฌ๋ ๋ช ๋ น์ด์ด๋ฏ๋ก ์กฐ์ฌํ ์ฌ์ฉ
โถ์๋ก์ด ์ปฌ๋ผ ์ถ๊ฐํ๊ธฐ
ALTER TABLE dept6
ADD ( LOC VARCHAR2(10) ); //์๋ก์ด ์ปฌ๋ผ ์ถ๊ฐ๋จ
ADD ( LOC VARCHAR2(10) DEFAULT 'SEOUL'); // ๊ธฐ๋ณธ๊ฐ ์
๋ ฅํ๊ธฐ
โถํ ์ด๋ธ์ ์ปฌ๋ผ ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ
ALTER TABLE DEPT6 RENAME COLUMN location2 TO loc;
RENAME dept6 TO dept7;
โถ์ปฌ๋ผ ๋ฐ์ดํฐ ํฌ๊ธฐ ๋ณ๊ฒฝํ๊ธฐ
DESC dept7
ALTHER TABLE dept7
MODIFY( loc VARCHAR2(20));
โถ์ปฌ๋ผ ์ญ์ ํ๊ธฐ
ALTER TABLE dept7 DROP COLUMN loc;
3) TRUNCATE ์๋ผ๋ด๊ธฐ : ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ์ญ์ ํ ๊ณต๊ฐ์ ๋ฐ๋ฉํ๋ค.
** ํ ์ด๋ธ ์์ฒด๊ฐ ์ง์์ง๋ ๊ฒ์ ์๋, ์ปฌ๋ผ๊ฐ๋ง ๋๊ณ ๋ฐ์ดํฐ๋ง ์ง์์ง (์ฉ๋ ์ค์ด๋ฌ)
= ์ธ๋ฑ์ค์ ๋ด์ฉ๋ ํจ๊ป TRUNCATE ๋จ
= ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ์ญ์
4) DROP ์ญ์ : ํ ์ด๋ธ ์์ฒด๋ฅผ ์ญ์ ํ๋ ๋ช ๋ น์ด
** ํ ์ด๋ธ ์์ฒด์ ํ ์ด๋ธ์ ์์ฑ๋ ์ธ๋ฑ์ค ๋ชจ๋ ์ญ์ ๋จ (๊ณต๊ฐ ๋ชจ๋ ๋ฐ๋ฉ)
= ํด์งํต๋๋์ผ๋ก ์ญ์ ๋ ํ ์ด๋ธ์ด BIN$... ๋ก ๋ณ๊ฒฝ๋๋ค.
5) ์ถ๊ฐ๋ ์ฌํญ๋ค
โถ์ฝ๊ธฐ ์ ์ฉ ํ ์ด๋ธ๋ก๋ณ๊ฒฝ
ALTER TABLE t_readonly read only;
โถ๊ฐ์ ์ปฌ๋ผ ํ ์ด๋ธ ์ฌ์ฉํ๊ธฐ
CREATE TABLE vt1 ...(์๋ต) ; --col1, col2, col3(๊ฐ์์ปฌ๋ผ)
= ๊ฐ์ ์ปฌ๋ผ์๋ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํ ์ ์์.
INSERT INTO vt1 (col1, col2) values(1,2);
SELECT * FROM vt1;
UPDATE vt1 SET col1 =5; // ๊ธฐ์กด ์ปฌ๋ผ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ๊ฐ์์ปฌ๋ผ์๋ ๋ฐ์๋จ
.
.
.
โถData Dictionary ๋ฐ์ดํฐ ๋์ ๋๋ฆฌ :
= ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์์ ์ํ ์ ๋ณด๋ฅผ ๋ชจ๋ ํน์ ํ ์ด๋ธ์ ๋ชจ์๋๊ณ ๊ด๋ฆฌ
= ๋๋์ ํด๋นํ๋ ์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ฅ์ ๋ ์๋ชป ๊ด๋ฆฌ์ ๊ฒฝ์ฐ ์ํํจ
= Base Table / Data Dictionary View ๋ก ๋๋์ด ๋๋ค.
= Base Table ์ ๊ทผ ๋ง์ , DataBase ์์ฑ ์์ ์ ์๋ ์์ฑ
= Data Dictionary View select ๋ฅผ ํตํด ์ ๊ทผ ํ์ฉ , Catalog, sql ์ด๋ผ๋ ํ์ผ ์ํ ์์๋ง ์์ฑ
= Data Dictionary View 2๊ฐ์ง
=> static Data Dictionary View ์๋ ๋ณ๊ฒฝ ์์
=> Dynamic Data Dictionary View ์ค์๊ฐ ์กฐํ
โถDML
1) INSERT ์ ๋ ฅ : ์๋ก์ด ๋ฐ์ดํฐ ์ ๋ ฅํ๊ธฐ
= ์ซ์ ๊ฐ ์ด์ธ์๋ '' ๋ก ๊ฐ์ธ์ผํ๋ค
= ๋ชจ๋ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ผ๋ฉด ์ปฌ๋ผ ์ด๋ฆ ์๋ต ๊ฐ๋ฅ / ํน์ ์ปฌ๋ผ์๋ง ๋ฐ์ดํฐ ์ ๋ ฅํด์ผ๋ ๊ฒฝ์ฐ ์ปฌ๋ผ ์ด๋ฆ ํ์ ๋ช ์
= INSERT๋ฅผ ์ฌ์ฉํ์ฌ 1ํ์ฉ ์ ๋ ฅํ๊ธฐ
= INSERT ์๋ธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ํ ์ ๋ ฅํ๊ธฐ
= INSERT ALL ์ ์ด์ฉํ ์ฌ๋ฌ ํ ์ด๋ธ์ ์ฌ๋ฌ ํ ์ ๋ ฅํ๊ธฐ
2) UPDATE ๋ณ๊ฒฝ : ๋ฐ์ดํฐ ๋ณ๊ฒฝํ๊ธฐ
= WHERE ์ ์ ๋๋ฝ์ํค์ง ์๋๋ก ์ฃผ์
3) DELETE ์ญ์ : ๋ฐ์ดํฐ ์ญ์
=
** ๋ฐ์ดํฐ๋ง ์ง์์ง๊ณ ๋์คํฌ ์์ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์์ (ํ ์ด๋ธ ์ฉ๋ ๊ทธ๋๋ก)
=๋ฐ์ดํฐ๋ฅผ ๊ณจ๋ผ์ ์ญ์ ๊ฐ ๊ฐ๋ฅํจ
4) MERGE ๋ณํฉ : ๋ฐ์ดํฐ๋ฅผ ํฉ์น๋ ๋ณํฉ
โถDCL
GRANT ๊ถํ ์ฃผ๊ธฐ
REVOKE ๊ถํ ๋บ๊ธฐ
โถTCL
COMMIT ํ์
ROLLBACK ์ทจ์
โถSELECT
DQL