๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/ORACLE

[ORACLE] 5์ผ์ฐจ : ๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด(Data Denfinition Language)

by ๋”ฐ๊ถˆ 2024. 3. 16.

 

๋ฐ์ดํ„ฐ ์ •์˜์–ด

๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด(DDL,Data Definition Language)๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ตฌ์กฐ,๋ฐ์ดํ„ฐ ํ˜•์‹, ์ ‘๊ทผ ๋ฐฉ์‹ ๋“ฑ DB๋ฅผ ๊ตฌ์ถ•ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด. 

 

์ข…๋ฅ˜

  • CREATE๋ฌธ : TABLE,VIEW,INDEX๋“ฑ์„ ์ •์˜(์ƒ์„ฑ)ํ•œ๋‹ค.
  • ALTER๋ฌธ : ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ” ๋“ฑ์˜ ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.
  • DROP๋ฌธ : ํ…Œ์ด๋ธ” ๋“ฑ์˜ ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•œ๋‹ค. 
  • RENAME๋ฌธ : ์ƒ์„ฑ๋œ ๊ฐ์ฒด์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•œ๋‹ค.
  • TRUNCATE๋ฌธ : ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ…Œ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. 

 

์‹๋ณ„์ž

ํ…Œ์ด๋ธ”๋ช…,์ปฌ๋Ÿผ๋ช…๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์ž์— ์˜ํ•ด ๋ถ€์—ฌํ•œ ์ด๋ฆ„์„ ์‹๋ณ„์ž๋ผ ํ•œ๋‹ค.

  • ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.
  • 1~30๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค. 
  • A~Z๊นŒ์ฐŒ์˜ ๋Œ€์†Œ๋ฌธ์ž, 0~9๊นŒ์ง€์˜ ์ˆซ์ž, ํŠน์ˆ˜๊ธฐํ˜ธ('_','$','#')๋งŒ ํฌํ•จ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์˜ค๋ผํด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ์•ฝ์–ด๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ,๊ฐ์ฒด๋ช…์€ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ช…๊ณผ ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ณต๋ฐฑ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

๋ฐ์ดํ„ฐ ํƒ€์ž…

์˜ค๋ผํด์—์„œ ๋ฌธ์ž,์ˆซ์ž,๋‚ ์งœ ์ž๋ฃŒํ˜• ๋“ฑ์˜ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ํƒ€์ž…์œผ๋กœ์„œ, ํ•ด๋‹น ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ๊ฐ€๋Šฅํ•œ ๊ฐ’, ํ•ด๋‹น ์ž๋ฃŒํ˜•์—์„œ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด, ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ, ์˜๋ฏธ, ํฌ๊ธฐ์™€ ํ•ด๋‹น ์ž๋ฃŒํ˜•์˜ ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํŠน์ • ์นผ๋Ÿผ์„ ์ •์˜ํ•  ๋•Œ ์„ ์–ธํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๊ทธ ์ปฌ๋Ÿผ์ด ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ์˜ ์œ ํ˜•์„ ๊ทœ์ •ํ•œ๋‹ค. 

 

๋ฌธ์žํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…

 

์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…

 

 

๋‚ ์งœํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…

 

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ํƒ€

 

 

 

CREATE

 

๊ธฐ๋ณธํ˜•

CREATE TABLE ํ…Œ์ด๋ธ”๋ช…
(
์ปฌ๋Ÿผ๋ช…  ํƒ€์ž…[(ํฌ๊ธฐ)]  [์ œ์•ฝ์กฐ๊ฑด]
,์ปฌ๋Ÿผ๋ช…  ํƒ€์ž…[(ํฌ๊ธฐ)]  [์ œ์•ฝ์กฐ๊ฑด]
);

 

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ํ˜•์‹

CREATE TABLE test
(
    num NUMBER(10) PRIMARY KEY,
    name VARCHAR2(30) NOT NULL,
    birth DATE,
    city VARCHAR2(30)
);

 

ํ…Œ์ด๋ธ” ๋ชฉ๋ก ํ™•์ธ

SELECT * FROM tab;

 

ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ ํ™•์ธ

SELECT * FROM col WHERE tname ='TEST';
DESC test;

 

 

๊ฐ€์ƒ ์ปฌ๋Ÿผ 

virtual column 

๋””์Šคํฌ์— ์ €์žฅ๋˜์ง€ ์•Š๋Š” ๊ฐ€์ƒ ์ปฌ๋Ÿผ์€ ์ˆ˜์‹์ด๋‚˜ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์š”์ฒญ์‹œ ๊ฐ€์ƒ ์ปฌ๋Ÿผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ฐ€์ƒ ์ปฌ๋Ÿผ ์ˆ˜์‹์—๋Š” SYSDATE๋“ฑ ๋™์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ถ”๋ ฅํ•˜๋Š” ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๋‹ค. ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์„ ์ด์šฉํ•œ ๊ฐ€์ƒ ์ปฌ๋Ÿผ์€ ์ƒ์„ฑ ํ•  ์ˆ˜ ์—†๋‹ค. ๊ตฌ๋ถ„์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํ•ญ์ƒ `GENERARED` ํ‚ค์›Œ๋“œ๊ฐ€ ์ œ๊ณต๋œ๋‹ค. 

 

CREATE TABLE demo
(
    hak VARCHAR2(30) PRIMARY KEY,
    name VARCHAR2(30) NOT NULL,
    kor NUMBER(3) NOT NULL,
    eng NUMBER(3) NOT NULL,
    mat NUMBER(3) NOT NULL,
    tot NUMBER(3) GENERATED ALWAYS AS(kor+eng+mat) VIRTUAL,
    ave NUMBER(4,1) GENERATED ALWAYS AS((kor+eng+mat)/3) VIRTUAL
);
--๊ธฐ์กด ๊ฐ์ฒด์™€ ๋™์ผํ•œ ์ด๋ฆ„์ด ์กด์žฌํ•˜๋ฉด ์—๋Ÿฌ

 

๊ฐ€์ƒ ์ปฌ๋Ÿผ ํ™•์ธ ๋ฐฉ๋ฒ• 

SELECT * FROM col WHERE tname ='DEMO';
SELECT * FROM cols WHERE table_name ='DEMO';

 

subquery

CREATE TABLE์—์„œ subuery๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ, ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ธŒ ์ฟผ๋ฆฌ ์ปฌ๋Ÿผ์˜ ๊ฐœ์ˆ˜์™€ CREATE TABLE์—์„œ ์ง€์ •ํ•œ ์ปฌ๋Ÿผ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค. CREATE TABLE์—์„œ ์ปฌ๋Ÿผ๋ช…์„ ๊ธฐ์ˆ ํ•˜์ง€ ์•Š์œผ๋ฉด ์„œ๋ธŒ ์ฟผ๋ฆฌ์—์„œ SELECT๋˜๋Š” ์ปฌ๋Ÿผ๋ช…์ด ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์ด ๋œ๋‹ค. ์„œ๋ธŒ ์ฟผ๋ฆฌ ํ…Œ์ด๋ธ”์˜ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์ค‘ NOT NULL ์ œ์•ฝ์กฐ๊ฑด๋งŒ ๋ณต์ œ๋˜๋ฏ€๋กœ PRIMARY KEY, FOREIGN KEY ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ์€ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค. 

 

๊ธฐ๋ณธ ํ˜•์‹

CREATE  TABLE  ํ…Œ์ด๋ธ”๋ช… [(์ปฌ๋Ÿผ๋ช…, ์ปฌ๋Ÿผ๋ช…,...)] AS subquery;

 

CREATE TABLE emp2 AS 
        SELECT empNO,name,sal,bonus,sal+bonus pay FROM emp; 
        --์ œ์•ฝ์กฐ๊ฑด์€ NOT NULL๋งŒ ๋ณต์‚ฌ๋˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ณต์‚ฌ๋˜์ง€ ์•Š๋Š”๋‹ค

 

์ปฌ๋Ÿผ๋ช…์„ ์ง€์ •ํ•˜์—ฌ ๋ณต์‚ฌ

CREATE TABLE emp3(eno,name,birth) AS
    SELECT empNO,name,TO_DATE(SUBSTR(rrn,1,6),'RRMMDD')
    FROM emp
    WHERE TO_DATE(SUBSTR(rrn,1,6),'RRMMDD')>='1990-01-01';

 

๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌ

CREATE TABLE emp4 AS
    SELECT * FROM emp
    WHERE 1=2;

 

 

ALTER 

๊ธฐ์กด์˜ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” DDL๋ช…๋ น, ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๊ตฌ์กฐ ๋ณ€๊ฒฝ์€ ์ปฌ๋Ÿผ์˜ ์ถ”๊ฐ€, ์ˆ˜์ • ์‚ญ์ œ์‹œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ธฐ์กด์˜ ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜๋Š” ์ปฌ๋Ÿผ์€ ํ…Œ์ด๋ธ” ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ„๋œ๋‹ค. ์ด์ „์— ๋“ฑ๋กํ•œ ํ–‰(๋ฐ์ดํ„ฐ)์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ, ์ด์ „์— ๋“ฑ๋ก๋œ ํ–‰์˜ ์ถ”๊ฐ€๋œ ์ปฌ๋Ÿผ ๊ฐ’์€ NULL๋กœ ์ถ”๊ฐ€๋œ๋‹ค. 

 

ALTER TABLE test ADD(dept VARCHAR2(30),sal NUMBER(3) NOT NULL);
DESC test;

 

๊ฐ€์ƒ ์ปฌ๋Ÿผ ์ถ”๊ฐ€

ALTER TABLE emp5 ADD(birth DATE GENERATED ALWAYS 
                    AS(TO_DATE(SUBSTR(rrn,1,6),'RRMMDD'))VIRTUAL);

 

 

ALTER TABLR ~MODIFY

ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…, ํฌ๊ธฐ๋“ฑ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น์–ด. ํ•ด๋‹น ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…, ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ณ , ํฌ๊ธฐ๋Š” ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. 

 

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… MODIFY (์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜•(ํฌ๊ธฐ));

 

ALTER TABLE test MODIFY(sal NUMBER(8));
DESC test;

 

 

ALTER TABLE ~ RENAME COLUMN

ํ…Œ์ด๋ธ”์—์„œ ์กด์žฌํ•˜๋Š” ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… RENAME COLUMN ์ปฌ๋Ÿผ๋ช… TO ์ƒˆ๋กœ์šด์ปฌ๋Ÿผ๋ช…
ALTER TABLE emp3 RENAME COLUMN eno TO empNO;
DESC emp3;

 

ALTER TABLE ~ DROP COLUMN

ํ…Œ์ด๋ธ”์—์„œ ์กด์žฌํ•˜๋Š” ์ปฌ๋Ÿผ์„ ์‚ญ์ œํ•œ๋‹ค. 

 

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… DROP COLUMN ์ปฌ๋Ÿผ๋ช…;

 

ALTER TABLE emp3 DROP COLUMN dept;
DESC emp3;

 

 

ALTER TABLE ~ SET UNUSED 

์ปฌ๋Ÿผ์„ ์‚ญ์ œํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ์ปฌ๋Ÿผ์˜ ์‚ฌ์šฉ์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ œํ•œํ•˜๋Š” ์˜ต์…˜.์ฆ‰, ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ปฌ๋Ÿผ์„ ์‚ญ์ œํ•˜๋Š” ์˜ต์…˜์ด๋‹ค. ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋‚ด์šฉ์ด ๋งŽ์€ ๊ฒฝ์šฐ ์ฝœ๋กฌ์šธ ์‚ญ์ œํ•˜๋ฉด ์˜ค๋žœ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฉฐ, ์‚ญ์ œ ๋˜๋Š” ๋™์•ˆ ํ…Œ์ด๋ธ”์€ LOCK์ด ์„ค์ •๋˜์–ด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ์ปฌ๋Ÿผ์˜ ์‚ฌ์šฉ์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ œํ•œํ•˜๊ณ  ํ…Œ์ด๋ธ” ์‚ฌ์šฉ์ด ์—†๋Š” ์‹œ๊ฐ„๋Œ€์— ํ•ด๋‹น ์ปฌ๋Ÿผ์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

ALTER TABLE emp2 SET UNUSED (pay); --๋…ผ๋ฆฌ์ ์œผ๋กœ ์‚ญ์ œ,ํšŒ๋ณต ๋ถˆ๊ฐ€

 

 

ALTER TABLE ~ SET UNUSED์— ์˜ํ•ด ๋…ผ๋ฆฌ์ ์œผ๋กœ ์‚ญ์ œ๋˜๋Š” ์ปฌ๋Ÿผ์˜ ์ •๋ณด ํ™•์ธ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์‚ญ์ œ๋œ ์ปฌ๋Ÿผ์€ ์ปฌ๋Ÿผ๋ช…์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ๋ณต๊ท€ํ•  ์ˆ˜ ์—†์ง€๋งŒ ์–ด๋–ค ํ…Œ์ด๋ธ”์— ๋ช‡ ๊ฐœ์˜ ์ปฌ๋Ÿผ์ด UNUSED ๋˜์—ˆ๋Š”์ง€ ๋‹ค์Œ์˜ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ†ตํ•ด ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ALTER TABLE emp2 DROP UNUSED COLUMNS;
SELECT * FROM user_unused_col_tabs;

 

DROP 

์‚ญ์ œ๋˜๋Š” ํ…Œ์ด๋ธ”์€ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉ์ž ๊ณ„์ •์—์„œ ์ƒ์„ฑํ•œ ํ…Œ์ด๋ธ”์ด์–ด์•ผ ํ•˜๋ฉฐ ๋‹ค๋ฅธ ์Šคํ‚ค๋งˆ๊ณ„์ •์˜ ํ…Œ์ด๋ธ”์€ DROP ANY TABLE ์‹œ์Šคํ…œ ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ์‚ญ์ œ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ๋กœ๋ถ€ํ„ฐ ํ…Œ์ด๋ธ” ์ •์˜๊ฐ€ ์‚ญ์ œ๋˜๋ฉฐ ํ…Œ์ด๋ธ”์— ๋กœ์šฐ(ROW)๋ฐ ์—ฐ๊ด€๋˜์–ด ์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค,ํŠธ๋ฆฌ๊ฑฐ๋„ ํ•จ๊ป˜ ์‚ญ์ œ๋œ๋‹ค. ๋งŒ์•ฝ ์‚ญ์ œ๋˜๋Š” ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค(PRIMARY KEY) ๋˜๋Š” ๊ณ ์œ ํ‚ค(UNIQE KEY)๋ฅผ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”์„ ๋จผ์ € ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ DROP TABLE๋ช…๋ น์–ด ๋งˆ์ง€๋ง‰์— CASCADE CONSTRAINTS ์กฐ๊ฑด์„ ์ค˜์„œ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค. 

 

DROP TABLE ํ…Œ์ด๋ธ”;  -- ํœด์ง€ํ†ต์— ์ž„์‹œ๋ณด๊ด€
DROP TABLE ํ…Œ์ด๋ธ” PURGE;  -- ํœด์ง€ํ†ต์— ์ž„์‹œ๋ณด๊ด€ ํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์‚ญ์ œ
DROP TABLE ํ…Œ์ด๋ธ”๋ช… CASCADE CONSTRAINTS PURGE;
-- ํ…Œ์ด๋ธ”๊ณผ ๊ทธ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜๋Š” FOREIGN KEY์˜ ์ œ์•ฝ์กฐ๊ฑด์„ ๋™์‹œ์— ์‚ญ์ œ

 

 

CASCADE CONSTRAINTS 

์‚ญ์ œ๋œ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ๋ฐ ๊ณ ์œ ํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋“  ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œํ•œ ์กฐ๊ฑด์„ ์‚ญ์ œํ•œ๋‹ค. ์ด ์ ˆ์„ ์ƒ๋žตํ•˜๊ณ  ํ•ด๋‹น ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œํ•œ ์กฐ๊ฑด์ด ์กด์žฌํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์˜ค๋ฃจ๋ฅผ ๋ฆฌํ„ด ํ•˜๊ณ  ํ…Œ์ด๋ธ”์„ ์‚ญ์ œ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

PURGE

PURGE๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ…Œ์ด๋ธ” ๋ฐ ํ•ด๋‹น ์ข…์† ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํœด์ง€ํ†ต์— ๋„ฃ์ง€ ์•Š๊ณ  ์‚ญ์ œํ•œ๋‹ค. PURGE ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•œ ํ…Œ์ด๋ธ”์€ ๋ณต๊ตฌ ํ•  ์ˆ˜ ์—†๋‹ค.

 

 

RENAME

ํ…Œ์ด๋ธ”, ๋ทฐ, ์‹œํ€€์Šค ๋˜๋Š” ๊ฐœ์ธ ๋™์˜์–ด(private sysnonym)์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•œ๋‹ค. ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋œ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜๋Š” ๋ทฐ, ๋™์˜์–ด ๋ฐ ์ €์žฅ ํ”„๋กœ์‹œ์ € ๋ฐ ํ•จ์ˆ˜์™€ ๊ฐ™์ด ์ด๋ฆ„์ด ๋ฐ”๋€ ๊ฐ์ฒด์— ์˜์กดํ•˜๋Š” ๋ชจ๋“  ๊ฐ์ฒด๋Š” ๋ฌดํšจํ™” ๋œ๋‹ค.

 

RENAME ์˜›์ด๋ฆ„ TO ์ƒˆ์ด๋ฆ„;
RENAME emp3 TO test;

 

 

ํœด์ง€ํ†ต(RECYCLEBIN) 

์‹ค์ œ๋กœ ์‚ญ์ œ๋œ ๊ฐ์ฒด (objects)์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ํ…Œ์ด๋ธ”. ์‚ญ์ œ๋œ ํ…Œ์ด๋ธ” ๋ฐ ์ธ๋ฑ์Šค, ์ œํ•œ ์กฐ๊ฑด, ์ค‘์ฒฉ๋œ ํ…Œ์ด๋ธ” ๋“ฑ๊ณผ ๊ฐ™์€ ์—ฐ๊ด€๋œ ์˜ค๋ธŒ์ ํŠธ๋Š” ์ œ๊ฑฐ๋˜์ง€ ์•Š๊ณ  ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•œ๋‹ค. ํœด์ง€ํ†ต์—์„œ ํŠน๋ณ„ํžˆ ์ œ๊ฑฐ ๋  ๋•Œ๊นŒ์ง€ ๋˜๋Š” ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค ๊ณต๊ฐ„ ์ œํ•œ์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ œ๊ฑฐ ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ํ• ๋‹น๋Ÿ‰์„ ๊ณ„์† ๊ณ„์‚ฐํ•œ๋‹ค. 

 

--test ํ…Œ์ด๋ธ” ์‚ญ์ œ 
DROP TABLE test; -- ํœด์ง€ํ†ต 
SELECT * FROM tab;

--ํœด์ง€ํ†ต ํ™•์ธ
SELECT * FROM RECYCLEBIN;

 

 

FLASHBACK TABLE 

DROP TABLE์— ์˜ํ•ด ์‚ญ์ œ๋œ ํ…Œ์ด๋ธ”์„ ์ด์ „ ์ƒํƒœ๋กœ ๋ณต์›ํ•œ๋‹ค. DROP TABLE์—์„œ PURGE์˜ต์…˜์šธ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•œ ํ…Œ์ด๋ธ” ๋ณต๊ตฌ ํ•  ์ˆ˜ ์—†๋‹ค. 

 

-- ์‚ญ์ œ์ „ ์ด๋ฆ„์œผ๋กœ ๋ณต์› 
-- FLASHBACK TABLE ์‚ญ์ œ์ „์ด๋ฆ„ TO BEFORE DROP;
-- FLASHBACK TABLE "BIN$ ์ด๋ฆ„" TO BEFORE DROP;

-- ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์„œ 
-- FLASHBACK TABLE ์‚ญ์ œ์ „์ด๋ฆ„ TO BEFORE DROP RENAME TO ์ƒˆ๋กœ์šด ์ด๋ฆ„;

FLASHBACK TABLE test TO BEFORE DROP; -- ๋™์ผํ•œ ์ด๋ฆ„์ด ๋‘๊ฐœ์ด์ƒ์ด๋ฉด ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ญ์ œ๋œ๊ฒƒ ๋ณต์› 

FLASHBACK TABLE test TO BEFORE DROP; -- ๋™์ผํ•œ ์ด๋ฆ„์ด ๋‘๊ฐœ์ด์ƒ์ด๋ฉด ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ญ์ œ๋œ๊ฒƒ ๋ณต์›

 

 

TRUNCATE

ํ…Œ์ด๋ธ”์˜ ์ •์˜๋Š” ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ(๋กœ์šฐ)๋งŒ ์‚ญ์ œํ•œ๋‹ค. ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰, ๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ๊ณต๊ฐ„์„ ์‚ญ์ œํ•˜๋ฉฐ ํ…Œ์ด๋ธ”๊ณผ ๊ด€๋ จ๋œ Storage Parameter๋ฅผ ํ…Œ์ด๋ธ” ์ฒ˜์Œ ์ƒํƒœ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ด€๋œ ์ธ๋ฑ์Šค, ๋™์˜์–ด, ๋ทฐ ๋“ฑ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋œ๋‹ค. ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด๋ฉฐ DDL ์ด๋ฏ€๋กœ ROLLBACK์€ ๋˜์ง€ ์•Š๋Š”๋‹ค. WHERE์ ˆ์„ ์ด์šฉํ•˜์—ฌ ํŠน์ • ๋กœ์šฐ๋งŒ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋ฉฐ ํ•ด๋‹น ํ…Œ์ด๋ธ”์— DELETE๋ช…๋ น๊ณผ ๊ด€๋ จํ•˜์—ฌ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ๋”๋ผ๋„ ํŠธ๋ฆฌ๊ฑฐ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

TRUNCATE TABLE test;
        --๋‚ด์šฉ๋งŒ ๋ชจ๋‘ ์‚ญ์ œ, ์ž๋™ COMMIT