๋ฐ์ดํฐ ์ ์ ์ธ์ด(Data Definition Language) ๐ถ
0. DDL
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ, ๋ฐ์ดํฐ ํ์, ์ ๊ทผ ๋ฐฉ์ ๋ฑ DB๋ฅผ ๊ตฌ์ถํ๊ฑฐ๋ ์์ ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ธ์ด
์ข ๋ฅ : CREATE, ALTER, DROP, RENAME, TRUNCATE
๋ฐ์ดํฐ ํ์
ํน์  ์ปฌ๋ผ์ ์ ์ํ ๋ ์ ์ธํ ๋ฐ์ดํฐ ์ ํ์ ๊ทธ ์ปฌ๋ผ์ด ๋ฐ์๋ค์ผ ์ ์๋ ์๋ฃ์ ์ ํ์ ์ ์ํจ
- ๋ฌธ์ํ ๋ฐ์ดํฐ ํ์

- ์ซ์ํ ๋ฐ์ดํฐ ํ์

- ๋ ์งํ ๋ฐ์ดํฐ ํ์

- ๋์ฉ๋ ๋ฐ์ดํฐ ํ์

- LONG/RAW ๋ฐ์ดํฐ ํ์

- ROWID ๋ฐ์ดํฐ ํ์

VARCHAR2 : 4000
CLOB : ๋์ฉ๋์ ํ ์คํธ
NUMBER: ์ต๋ ์ ํจ์๋ฆฌ 30
DATE : ํฌ๊ธฐ๋ฅผ ์ฐ์ง ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ
1. CREATE
1. ํ ์ด๋ธ ์์ฑ
CREATE TABLE ํ
์ด๋ธ๋ช
(
	์ปฌ๋ผ๋ช
  ํ์
[(ํฌ๊ธฐ)]  [์ ์ฝ์กฐ๊ฑด],
	์ปฌ๋ผ๋ช
  ํ์
[(ํฌ๊ธฐ)]  [์ ์ฝ์กฐ๊ฑด]
    [, CONSTARAINT ์ ์ฝ์กฐ๊ฑด๋ช
 PRIMARY KEY(์ปฌ๋ผ)]
 );
2. ํ ์ด๋ธ ๋ชฉ๋ก ํ์ธ
SELECT * FROM tabs; -- ์ค๋ผํด์ ๋๋ฌธ์๋ก ์ ์ฅ์ด ๋จ
3. ์ปฌ๋ผ ๋ฐ ์ปฌ๋ผ์ ํ์ ํ์ธ
DESC test;
SELECT * FROM col;
SELECT * FROM col WHERE tname = 'TEST';
SELECT * FROM cols;
SELECT * FROM cols WHERE table_name = 'TEST';
4. ๊ฐ์ ์ปฌ๋ผ(virtual column)
๋์คํฌ์ ์ ์ฅ๋์ง ์๋ ์์๋ค์ ์ ์ฅ 
SYSDATE ๋ฑ ๋์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํจ์๋ ์ฌ์ฉโ
๊ฐ์ ์ปฌ๋ผ์ ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ์์ โ
ํ์
column [datatype] [GENERATED ALWAYS] AS (column_expression) 
	[VIRTUAL] [ inline_constraint [inline_constraint]... ]
์์
tot NUMBER(3) GENERATED ALWAYS AS(kor+eng+mat) VIRTUAL
    
ave NUMBER(3) GENERATED ALWAYS AS((kor+eng+mat)/3)VIRTUAL
5. subquery๋ฅผ ์ด์ฉํ ํ
์ด๋ธ ์์ฑ 
์กด์ฌํ๋ ํ
์ด๋ธ์ ์ด์ฉํ์ฌ ํ
์ด๋ธ ์์ฑํ์ฌ  ํ
์ด๋ธ ๊ตฌ์กฐ ๋ฐ ๊ฐ ๋ณต์ฌ 
NOT NULL์ ์ ์ธํ ๋ค๋ฅธ ์ ์ฝ ์กฐ๊ฑด์ ๋ณต์ฌโ
๊ธฐ๋ณธํ์
   CREATE  TABLE  ํ
์ด๋ธ๋ช
 [(์ปฌ๋ผ๋ช
, ์ปฌ๋ผ๋ช
,...)] AS subquery;2. ALTER
1. ALTER TABLE ~ ADD
 ๊ธฐ์กด์ ํ
์ด๋ธ์ ์๋ก์ด ์ปฌ๋ผ์ ์ถ๊ฐ 
์๋ก ์ถ๊ฐ๋๋ ์ปฌ๋ผ์ ํ ์ด๋ธ ๊ฐ์ฅ ๋ง์ง๋ง์ ์ถ๊ฐ
ํ์
ALTER TABLE ํ
์ด๋ธ๋ช
 ADD (์ปฌ๋ผ๋ช
 ์๋ฃํ(ํฌ๊ธฐ));์์
ALTER TABLE test ADD (dept VARCHAR2(30), sal NUMBER(3) NOT NULL);ALTER TABLE emp4 ADD (
    birth DATE GENERATED ALWAYS AS (TO_DATE(SUBSTR(rrn, 1,6), 'RRMMDD')) VIRTUAL
);์ฃผ์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ ํ ์ด๋ธ์ NOT NULL ์์ฑ์ ์ปฌ๋ผ์ ์ถ๊ฐโ
2.  ์ปฌ๋ผ ์์  ALTER TABLE ~ MODIFY
ํ์
ALTER TABLE ํ
์ด๋ธ๋ช
 MODIFY (์ปฌ๋ผ๋ช
 ์๋ฃํ(ํฌ๊ธฐ));์์
ALTER TABLE test MODIFY(sal NUMBER(10));
3.  ALTER TABLE ~ RENAME COLUMN : ์ปฌ๋ผ์ ์ด๋ฆ ๋ณ๊ฒฝ                       
ํ์
ALTER TABLE ํ
์ด๋ธ๋ช
 RENAME COLUMN ์ปฌ๋ผ๋ช
 TO ์๋ก์ด์ปฌ๋ผ๋ช
 ์์              
ALTER TABLE test RENAME COLUMN num TO empNo;                                                               
4. ALTER TABLE ~ DROP COLUMN : ์ปฌ๋ผ ์ญ์  
๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ฉด ๋ฐ์ดํฐ๋ ์ญ์  
ํ์
ALTER TABLE ํ
์ด๋ธ๋ช
 DROP COLUMN ์ปฌ๋ผ๋ช
์์
ALTER TABLE test DROP COLUMN dept;
6. ALTER TABLE ~ SET UNUSED
์ปฌ๋ผ์ ๋
ผ๋ฆฌ์ ์ผ๋ก ์ฌ์ฉํ์ง ๋ชปํ๋๋ก ์ ํ. ๋
ผ๋ฆฌ์ ์ผ๋ก ์ญ์ 
UNUSED์ ์ํด ์ญ์ ๋ ์ปฌ๋ผ ํ์ธโ
ALTER TABLE emp1 SET UNUSED (pay);
UNUSED์ ์ํด ์ญ์ ๋ ์ปฌ๋ผ์ ๊ฐ์๋ ํ์ธ ๊ฐ๋ฅ 
SELECT * FROM user_unused_col_tabs;
7. ALTER TABLE ~ DROP UNUSED COLUMNS
unused์ ์ํด ๋
ผ๋ฆฌ์ ์ผ๋ก ์ญ์ ๋ ์ปฌ๋ผ์ ์ค์ ๋ก ์ญ์  
ALTER TABLE emp1 DROP UNUSED COLUMNS;
3. DROP
ํ
์ด๋ธ ์ญ์ 
ํ์
DROP TABLE ํ
์ด๋ธ;  -- ํด์งํต์ ์์๋ณด๊ด (๋ณต๊ตฌ ๊ฐ๋ฅ)
DROP TABLE ํ
์ด๋ธ PURGE;  -- ํด์งํต์ ์์๋ณด๊ด ํ์ง ์๊ณ  ๋ฐ๋ก ์ญ์  (๋ณต๊ตฌ ๋ถ๊ฐ)
DROP TABLE ํ
์ด๋ธ๋ช
 CASCADE CONSTRAINTS PURGE;
         -- ํ
์ด๋ธ๊ณผ ๊ทธ ํ
์ด๋ธ์ ์ฐธ์กฐํ๋ FOREIGN KEY์ ์ ์ฝ์กฐ๊ฑด์ ๋์์ ์ญ์ 
4. RENAME
๊ฐ์ฒด ์ด๋ฆ ๋ณ๊ฒฝ
   RENAME ์์ด๋ฆ TO ์์ด๋ฆ;
5. RECYCLEBIN
1. ํด์งํต(RECYCLEBIN) ์ ๋ณด ํ์ธ
2. ์ญ์ ๋ ๊ฐ์ฒด(objects)ํ์ธ
SHOW RECYCLEBIN;
SELECT * FROM RECYCLEBIN;
3.ํด์งํต์ ํ
์ด๋ธ ๋ณต์ 
์๋ ์ด๋ฆ์ผ๋ก ๋ณต์
FLASHBACK TABLE "BIN ์ด๋ฆ" TO BEFORE DROP; --BIN ์ด๋ฆ์ผ๋ก 
FLASHBACK TABLE ์ญ์ ์ ์ด๋ฆ
4. ํด์งํต ๋น์ฐ๊ธฐ
PURGE RECYCLEBIN;
5. TRUNCATE
ํ
์ด๋ธ์ ๋ชจ๋  ๋ ์ฝ๋ ์ญ์ , ํ
์ด๋ธ ๊ตฌ์กฐ๋ ๋ชจ๋ ์ญ์  X
์๋ COMMIT ๋๋ฏ๋ก ๋ณต์ ๋ถ๊ฐ 
TRUNCATE TABLE ํ
์ด๋ธ๋ช
;
'๐ปProgramming > ๐ฝOracle' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Oracle] ๋ฐ์ดํฐ ๋์ ๋๋ฆฌ(Data Dictionary) (0) | 2022.08.10 | 
|---|---|
| [ORACLE] ๋ฐ์ดํฐ ์กฐ์์ธ์ด(DML) (0) | 2022.08.09 | 
| [ORACLE] SQL ํจ์ - ๋จ์ผํ ํจ์ (0) | 2022.08.05 | 
| [Oracle] ๊ธฐ๋ณธ์ ์ธ SQL (0) | 2022.08.04 | 
| [Oracle] DQL - Select (0) | 2022.08.04 | 
![[ORACLE] ๋ฐ์ดํฐ ์ ์์ธ์ด (DDL)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FzbMPu%2FbtrJgO4cc3e%2FAAAAAAAAAAAAAAAAAAAAABVCggSOn4GN-DM2IXwwH6faROIdz9BHTcKKUboR7hCd%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1764514799%26allow_ip%3D%26allow_referer%3D%26signature%3DZgXwqmxTkjDwXUdWtxuAml%252ByKx4%253D)