๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

[Oracle Database] DDL - CREATE, ALTER (2023.03.24) ๋ณธ๋ฌธ

full stack/database

[Oracle Database] DDL - CREATE, ALTER (2023.03.24)

Shinjio 2023. 3. 24. 18:06

๐Ÿ”Ž DDL(Data Definition Language)

ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Œ

 

๐Ÿ”Ž DDL๋ฌธ๋ฒ•

๐Ÿ“– CREATE

์ƒˆ๋กœ์šด ๊ฐ์ฒด(OBJECT)๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด

 

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ „์— ํ•„์š”ํ•œ ์ž๋ฃŒํ˜•

VARCHAR2(n) 
๋ฌธ์žํ˜• ๋ฐ์ดํ„ฐ๋ฅผ n๋ฐ”์ดํŠธ๊นŒ์ง€ ์ž…๋ ฅ๋ฐ›๊ฒ ๋‹ค๋Š” ์˜๋ฏธ (๊ฐ€๋ณ€ํ˜• ๋ฌธ์ž์—ด)
CF. CHAR(n)
๋ฌธ์žํ˜• ๊ฐ’์„ n๋ฐ”์ดํŠธ๊นŒ์ง€ ์ž…๋ ฅ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ณ ์ •ํ˜• ๋ฌธ์ž์—ด ๊ผญ n byte๋ฅผ ์ฑ„์›Œ์•ผ ํ•จ

NUMBER(n, m)
์ˆซ์žํ˜• ์ž…๋ ฅ(์ •์ˆ˜, ์‹ค์ˆ˜ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
n์€ ์ž๋ฆฟ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ (์†Œ์ˆ˜์  ์ž๋ฆฟ์ˆ˜ ํฌํ•จ)
m์€ ์†Œ์ˆซ์  ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ
NUMBER ๋’ค์— n, m์€ ์ƒ๋žต ๊ฐ€๋Šฅ

DATE
๋‚ ์งœํ˜• ๊ฐ’ ์ž…๋ ฅ

 

 

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฌธ๋ฒ•(CREATE)

CREATE TABLE ํ…Œ์ด๋ธ”๋ช… ( ์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• [DEFAULT] [NULL์—ฌ๋ถ€]) ;
- DEFAULT์˜ ๊ธฐ๋ณธ์€ NULL
- NULL ์—ฌ๋ถ€์˜ ๊ธฐ๋ถ„์˜ NULL

 

ํ…Œ์ด๋ธ” ์ƒ์„ฑ์‹œ ์ด๋ฆ„ ๊ทœ์น™

1. ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. 

2. ์ค‘๋ณต๋˜๋Š” ํ…Œ์ด๋ธ”๋ช…์„ ์“ฐ๋ฉด ์•ˆ๋œ๋‹ค. 

3. ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ์ปฌ๋Ÿผ๋ช…์ด ์ค‘๋ณต๋˜๋ฉด ์•ˆ๋œ๋‹ค. 

4. ๋ฌธ์ž๋กœ ์‹œ์ž‘, ์˜ˆ์•ฝ์–ด๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•จ

 

โš™ ์ œ์•ฝ์กฐ๊ฑด

์ œ์•ฝ์กฐ๊ฑด์ด๋ž€ ํ…Œ์ด๋ธ”์— ์ž…๋ ฅ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ๊ฑด์œผ๋กœ ์ œ์•ฝํ•˜๋Š” ๊ฒƒ

 

PRIMARY KEY(PK) : NOT NULL + UNIQUE

์‹๋ณ„์ž ๊ทœ์น™์„ ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋ง ํ•œ ๊ฒƒ. ์‹๋ณ„์ž๋Š” ํ…Œ์ด๋ธ”์—์„œ ๊ฐ๊ฐ์˜ ํŠœํ”Œ(ํ–‰)์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ์ปฌ๋Ÿผ ์ง‘ํ•ฉ

→ ํŠน์ • ์ปฌ๋Ÿผ์„ ์‹๋ณ„์ž๋กœ ๋งŒ๋“ค๋ฉด ์ž๋™์œผ๋กœ NOT NULL + UNIQUE ์„ฑ์งˆ๋กœ ๋ฐ”๋€œ

์ค‘๋ณต์ด ์žˆ์œผ๋ฉด ์•ˆ๋จ

NULL ๊ฐ’์ด ์žˆ์œผ๋ฉด ์•ˆ๋จ

์ œ์•ฝ์กฐ๊ฑด ์ด๋ฆ„ ์ž‘์„ฑ์‹œ PK๋ฅผ ์ ‘๋‘์–ด๋กœ ๋ถ™์ž„ (์‹ค๋ฌด์—์„œ)

PK๋Š” ํ…Œ์ด๋ธ”๋งˆ๋‹ค 1๊ฐœ ๋ฌด์กฐ๊ฑด ์žˆ์–ด์•ผ ํ•จ. ์˜ค๋กœ์ง€ 1๊ฐœ๋งŒ ์กด์žฌ

 

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด๋ช… PRIMARY KEY(์ปฌ๋Ÿผ) ;

 

UNIQUE KEY(UK) : UNIQUE

์ค‘๋ณต์ด ์žˆ์œผ๋ฉด ์•ˆ๋จ

NULL๊ฐ’์€ ๊ฐ€๋Šฅ

ํ˜„์—…์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์Œ

๋ณดํ†ต ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ๊ฐ™์€๋ฐ ์„ค์ •ํ•  ์ˆ˜๋Š” ์žˆ์Œ

 

ALTER TALBE ํ…Œ์ด๋ธ”๋ช… ADD CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด๋ช… UNIQUE (์ปฌ๋Ÿผ) ;

 

NOT NULL 

NULL๊ฐ’์ด ๋“ค์–ด์˜ค์ง€ ์•Š๊ฒŒ ํ•จ

 

 

CHECK

ํŠน์ • ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์ง€์ •ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Œ

ํ™•์žฅ์„ฑ์ด ๋–จ์–ด์ง€๋ฏ€๋กœ ์‹ค๋ฌด์—์„œ๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

 

 

FOREIGN KEY(FK) 

ํ…Œ์ด๋ธ”๋ผ๋ฆฌ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ด€๊ณ„๋ฅผ ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋งํ•œ ๊ฒƒ

๋ฌด๊ฒฐ์„ฑ์„ ์ง€์›ํ•ด์คŒ

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด๋ช…
FOREIGN KEY (์ฐธ์กฐ๋ฐ›์„์ปฌ๋Ÿผ) REFERENCES ์ฐธ์กฐํ• ํ…Œ์ด๋ธ”(์ฐธ์กฐํ•  ์ปฌ๋Ÿผ) ;

 

 

 

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ˆœ์„œ
์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ >>  ERD ๊ทธ๋ฆฌ๊ธฐ >> ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง >> DDL (์‹ค์ œ ํ…Œ์ด๋ธ” ์ƒ์„ฑ)

 

๐Ÿ“– ALTER

ํ…Œ์ด๋ธ” ์•ˆ์— ์žˆ๋Š” ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์†์„ฑ์„ ์ถ”๊ฐ€/์‚ญ์ œ/๋ณ€๊ฒฝ/์ด๋ฆ„๋ณ€๊ฒฝ 

๊ฐ€๊ธ‰์ ์ด๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๊ฑธ ์ถ”์ฒœํ•จ (์˜ํ–ฅ๋„๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค)

→ ์„ค๊ณ„ํ•  ๋•Œ ์ œ๋Œ€๋กœ ํ•ด์•ผํ•จ

 

โš™ ADD

ํ…Œ์ด๋ธ”์— ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€

 

 

โš™ DROP COLUMN

ํ…Œ์ด๋ธ”์—์„œ ์ปฌ๋Ÿผ์„ ์‚ญ์ œ

 

 

โš™ MODIFY 

ํ…Œ์ด๋ธ”์—์„œ ์ปฌ๋Ÿผ ์†์„ฑ ๋ณ€๊ฒฝ

 

 

โš™ RENAME

์ปฌ๋Ÿผ์ด๋ฆ„ ๋ณ€๊ฒฝ