DDL(Data Definition Language)

ํด๋ฆญ ๋ช‡๋ฒˆ์œผ๋กœ ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ณ  ์ปฌ๋Ÿผ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ๋ฐฐ์›Œ๋ดค๋Š”๋ฐ

์‹ค์€ SQL ์ฝ”๋“œ๋กœ๋„ ํ…Œ์ด๋ธ”๊ณผ ์ปฌ๋Ÿผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ทธ๋ƒฅ ๋ง๋‹จ ์ง์›์ด๋ผ๋ฉด ํ…Œ์ด๋ธ” ์ƒ์„ฑ๋ณด๋‹ค๋Š” ํ…Œ์ด๋ธ”์„ ๊ฐ€์ ธ๋‹ค์“ฐ๋Š” ์ผ๋งŒ ๋งŽ์„ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ

๋‚˜์ค‘์—” ์–ด๋–ป๊ฒŒ ๋ ์ง€ ๋ชจ๋ฅด๋Š” ์ผ ์•„๋‹ˆ๊ฒ ์Šต๋‹ˆ๊นŒ.

๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ SQL ๋ฌธ๋ฒ•์œผ๋กœ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”๊ณผ ์ปฌ๋Ÿผ๋งŒ๋“œ๋Š” ๋ฒ•์„ ๋ฐฐ์›Œ๋ด…์‹œ๋‹ค.

DDL

๋ฐ์ดํ„ฐ ์ •์˜์–ด๋ž€? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ์–ธ์–ด์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๋“ฑ์˜ ๋ฐ์ดํ„ฐ์˜ ์ „์ฒด์˜ ๊ณจ๊ฒฉ์„ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์–ธ์–ด์ด๋‹ค.

  • create : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ”๋“ฑ์„ ์ƒ์„ฑ

  • alter : ํ…Œ์ด๋ธ”์„ ์ˆ˜์ •

  • drop : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ”์„ ์‚ญ์ œ

  • truncate : ํ…Œ์ด๋ธ”์„ ์ดˆ๊ธฐํ™”

โ€ปSCHEMA, DOMAIN, TABLE, VIEW, INDEX๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ๋˜๋Š” ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด โ€ป๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์ž๊ฐ€ ์‚ฌ์šฉ

์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์› ๋˜ SELECT ๋ฌธ์€

DML(Data Manipulation Language) ์ด๋ผ๊ณ  ํ•œ๋‹ค .

DML

๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด๋ž€? ์ •์˜๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ž…๋ ฅ๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ๋“ฑ์˜ ์—ญํ• ์„ ํ•˜๋Š” ์–ธ์–ด.

  • select : ๋ฐ์ดํ„ฐ ์กฐํšŒ

  • insert : ๋ฐ์ดํ„ฐ ์‚ฝ์ž…

  • update : ๋ฐ์ดํ„ฐ ์ˆ˜์ •

  • delete : ๋ฐ์ดํ„ฐ ์‚ญ์ œ

โ€ป๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๊ฐ€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์งˆ์˜์–ด๋ฅผ ํ†ตํ•˜์—ฌ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์งˆ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด โ€ป๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต

DCL(Data Control Language) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๊ฐ์ฒด์— ๊ถŒํ•œ์„ ์ฃผ๋Š”๋“ฑ์˜ ์—ญํ• ์„ ํ•˜๋Š” ์–ธ์–ด

  • grant : ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•œ ์ˆ˜ํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌ

  • revoke : ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•œ ์ˆ˜ํ–‰ ๊ถŒํ•œ์„ ๋ฐ•ํƒˆ, ํšŒ์ˆ˜

  • commit : ํŠธ๋žœ์žญ์…˜์˜ ์ž‘์—…์„ ์ €์žฅ

  • rollback : ํŠธ๋žœ์žญ์…˜์˜ ์ž‘์—…์„ ์ทจ์†Œ, ์›๋ž˜๋Œ€๋กœ ๋ณต๊ตฌ

ROLL ๊ฐ์ฒด

โ€ปROLE ์ข…๋ฅ˜ CONNECT : DB ์ ‘์† ๊ถŒํ•œ RESOURCE : ํ…Œ์ด๋ธ”์ด๋ผ๋“ ์ง€ ์ธ๋ฑ์Šค๋ผ๋“ ์ง€ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ CREATE VIEW : ๋ทฐ ์ƒ์„ฑ ๊ถŒํ•œ DBA : ๋ชจ๋“  ๊ถŒํ•œ(๊ด€๋ฆฌ์ž)

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

CREATE TABLE ํ…Œ์ด๋ธ”๋ช… (
    ์ปฌ๋Ÿผ1์ด๋ฆ„ datatype,
    ์ปฌ๋Ÿผ2์ด๋ฆ„ datatype,
    ์ปฌ๋Ÿผ3์ด๋ฆ„ datatype,
    ...๋“ฑ
); 

์›ํ•˜๋Š” ์Šคํ‚ค๋งˆ์—์„œ SQL ํŽธ์ง‘๊ธฐ ์ƒ์„ฑํ•ด์„œ ์ด๊ฑฐ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

datatype ๋ž€์—” ๋ฐ์ดํ„ฐํƒ€์ž…์„ ์ •ํ•ด์„œ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

CREATE TABLE TEST.NEWTABLE (
	ID NUMBER(38,0),
	๋‚˜์ด VARCHAR2(100),
	์ด๋ฆ„ NUMBER(38,0) 
);

์‚ฌ๋žŒ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ์‹ถ์–ด์„œ ์ด๋Ÿฐ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด๋ดค์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ํ•˜๋ฉด ์ง„์งœ ํ…Œ์ด๋ธ” ์ƒ๊น๋‹ˆ๋‹ค. ์•ˆ๋ณด์ด๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฐํด๋ฆญํ•ด์„œ ์ƒˆ๋กœ๊ณ ์นจํ•ด๋ณด์…ˆ

๋งŽ์ด๋“ค ์‹ค์ˆ˜ํ•˜๋Š” ํฌ์ธํŠธ๋Š” ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” ์ฝค๋งˆ (,) ๋„ฃ์œผ๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

CREATE TABLE TEST.NEWTABLE2 (
	ID NUMBER(38,0),
	๋‚˜์ด VARCHAR2(100) DEFAULT 'ํ™๊ธธ๋™',
	์ด๋ฆ„ NUMBER(38,0) 
);

์ปฌ๋Ÿผ๋งŒ๋“ค ๋•Œ ๋’ค์— DEFAULT ์™€ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด

์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ๋“ค์–ด์˜ฌ ๋•Œ ๊ธฐ๋ณธ์œผ๋กœ ์ฑ„์›Œ์ค„ ๊ฐ’์„ ์„ค์ •๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ ๋ฐ์ดํ„ฐ ์•ˆ๋“ค์–ด์˜ค๋ฉด NULL์„ ์ฑ„์›Œ์ฃผ๋Š”๋ฐ ์œ„์˜ ๊ฒฝ์šฐ์—” 'ํ™๊ธธ๋™'์ด ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ” ์‚ญ์ œ

DROP TABLE ํ…Œ์ด๋ธ”๋ช…

์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‚ญ์ œ์‹œ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ปฌ๋Ÿผ ์ƒ์„ฑ, ๋ณ€๊ฒฝ, ์‚ญ์ œ

ALTER TABLE ํ…Œ์ด๋ธ”๋ช…
ADD ์ปฌ๋Ÿผ๋ช… VARCHAR(100); 

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

ALTER TABLE ํ…Œ์ด๋ธ”๋ช…
RENAME COLUMN ์ด์ „์ปฌ๋Ÿผ๋ช… TO ๋ฐ”๊ฟ€์ปฌ๋Ÿผ๋ช…;

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

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

(์ฐธ๊ณ ) ์ปฌ๋Ÿผ์ถ”๊ฐ€์‹œ ์ด๋ฏธ ํ–‰๋“ค์ด ๋งŽ์ด ์žˆ์œผ๋ฉด

์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์— ๋“ค์–ด๊ฐˆ ๊ธฐ๋ณธ๊ฐ’์€ NULL์ด ๋˜๋Š”๋ฐ

๊ทธ๊ฑฐ ๋ง๊ณ  ๋‹ค๋ฅธ๊ฑธ๋กœ ์ฑ„์šฐ๋ ค๋ฉด ์œ„์—์„œ ํ–ˆ๋˜ DEFAULT ๋ฌธ๋ฒ•๋„ ํ•œ๋ฒˆ ์จ๋ณด์‹ญ์‹œ์˜ค.

์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์ด ๋ณ€๊ฒฝ

datatype ๋ž€์— NUMBER, VARCHAR() ๋“ฑ ์•„๋ฌด๊ฑฐ๋‚˜ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ฏธ ์ปฌ๋Ÿผ์— '๊ฐ€๋‚˜๋‹ค' ์ด๋Ÿฐ ๋ฌธ์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—” NUMBER ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š”๊ฑด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ์ปฌ๋Ÿผ์„ ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ๋•Œ๊ฐ€ ๋งŽ์•„์„œ

๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋ฉด ์ƒˆ๋กœ ํ…Œ์ด๋ธ” ๋งŒ๋“ค์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ธฐ๋Š” ์‹์œผ๋กœ ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ฒ˜์Œ ๋งŒ๋“ค ๋•Œ ์ž˜ ๋งŒ๋“ค์–ด๋‘ก์‹œ๋‹ค.

์ปฌ๋Ÿผ ๋ช… ๋ณ€๊ฒฝ

์œ„ ๋ฐฉ์‹์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์„œ๋น„์Šค์ค‘์ธ ์‹œ์Šคํ…œ์ด๋ผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ๋†’์•„์„œ ์ž˜ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ๋‹จ๊ณ„์—์„œ๋Š” ์‚ฌ์šฉ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปฌ๋Ÿผ ์‚ญ์ œ

์œ„ ๋ฐฉ์‹์œผ๋กœ ์ปฌ๋Ÿผ ์‚ญ์ œ๋„ ๊ฐ€๋Šฅ

(์ฐธ๊ณ )

- ํ•ญ์ƒ ์ƒ์ƒํ•œ ๊ฒƒ ๋ณด๋‹ค ๋” ํฐ ๋ฌธ์ž๋‚˜ ์ˆซ์ž๊ฐ€ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ธ€์ž ์ˆ˜ ์ œํ•œ์€ ๋„‰๋„‰ํ•˜๊ฒŒ ์žก์์‹œ๋‹ค.

โ˜„๏ธ์ด๋ฒˆ๋งŒํผ์€ ํด๋ฆญ ๋ง๊ณ  DDL๋กœ ์ง์ ‘ ์ž‘์„ฑํ•ด๋ด…์‹œ๋‹ค.

Q1. ์œ ์ € ์ด๋ฆ„, ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  ํ…Œ์ด๋ธ” member๋ฅผ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค.

Q2. ๋ฐฉ๊ธˆ ๋งŒ๋“  ํ…Œ์ด๋ธ”์— '๋‚˜์ด'๋ฅผ ์ €์žฅํ•  ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•ด๋ด…์‹œ๋‹ค.

Q3. ๋ถ€๋„๋Ÿฌ์šฐ๋‹ˆ๊นŒ ๋ฐฉ๊ธˆ ๋งŒ๋“  ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•ด๋ด…์‹œ๋‹ค.

Last updated