Search

DDL(Data definition language)

ํƒœ๊ทธ
SQL
DDL
๋ฉ€ํ‹ฐ์บ ํผ์Šค
TYPE
์ปฌ๋Ÿผ๋ช… [ํƒ€์ž…]
[์ •์ˆ˜ํ˜•]
TINYINT
1 byte
SMALLINT
2 byte
MEDIUNINT
3 byte
INT
4 byte
BIGINT
8 byte
๊ณ ์ •์†Œ์ˆ˜์  ํ‘œํ˜„๋ฐฉ์‹
์ž๋ฆฌ๋ฅผ ๊ณ ์ •ํ•˜๋Š” ํ‘œํ˜„๋ฐฉ์‹
์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ
์ €์žฅํ•œ๋‹ค.
๋ถ€๋™์†Œ์ˆ˜์  ํ‘œํ˜„๋ฐฉ์‹
FLOAT, DOUBLE
์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ทผ์‚ฌ๊ฐ’
์œผ๋กœ ์ €์žฅํ•œ๋‹ค.
[์‹ค์ˆ˜ํ˜•]
FLOAT
4 byte
DOUBLE
8 byte
DECIMAL
๋ฐ์ดํ„ฐํƒ€์ž… + 1 byte
DECIMAL(precision, scale)
precision : ์ „์ฒด์ž๋ฆฌ์ˆ˜
scale : ์†Œ์ˆ˜๋ถ€์˜ ์ž๋ฆฌ์ˆ˜
[๋…ผ๋ฆฌํ˜•]
BOOL, 1 byte
[๋ฌธ์ž์—ด]
(1) CHAR
๊ณ ์ •๊ธธ์ด ๋ฐ์ดํ„ฐ, 255 byte
CHAR() | () ์•ˆ์—๋Š” ์ปฌ๋Ÿผ์˜ ํฌ๊ธฐ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.
(2) VARCHAR
๊ฐ€๋ณ€๊ธธ์ด ๋ฐ์ดํ„ฐ, 65,535 byte
VARCHAR | () ์•ˆ์—๋Š” ์ปฌ๋Ÿผ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.
(3) TEXT
๋Œ€๋Ÿ‰์˜ ํ…์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„, ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ฌธ์ž์—ด์„ ์ฝ์„ ๋•Œ VARCHAR ๋ณด๋‹ค ๋งŽ์ด ๋Š๋ฆฌ๋‹ค.
TINYTEXT , 255 byte
TEXT , 65535 byte
MEDIUMTEXT , ์ตœ๋Œ€ 16,777,215 byte
LONGTEXT , ์ตœ๋Œ€ 4,294,967,295 byte
[๋‚ ์งœ]
DATE (์—ฐ์›”์ผ)
TIME (์‹œ๋ถ„์ดˆ)
DATETIME (์—ฐ์›”์ผ์‹œ๋ถ„์ดˆ)
TIMESTEMP (์—ฐ์›”์ผ์‹œ๋ถ„์ดˆ)
TIMESTEMP ๋Š” DB ์„œ๋ฒ„์˜ TIMEZONE ์„ ์ฐธ์กฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜, ๋˜๋Š” ํ•ด์™ธ์˜ ํด๋ผ์šฐ๋“œ DB ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— TIMESTEMP ๋ฅผ ์“ฐ๋Š”๊ฒŒ ์ข‹๋‹ค.
DDL
(1) ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๊ตฌ๋ฌธ
CREATE TABLE [ํ…Œ์ด๋ธ”๋ช…] ();
DDL ์€ AUTO COMMIT ์ด๋‹ค.
[๊ทธ ์™ธ ๊ตฌ๋ฌธ]
ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋ณ€๊ฒฝ
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] RENAME TO [์ˆ˜์ •ํ•œ ์ด๋ฆ„];
์ปฌ๋Ÿผ ์ถ”๊ฐ€
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] ADD [์ปฌ๋Ÿผ๋ช…];
์ปฌ๋Ÿผ ์‚ญ์ œ
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] DROP [์ปฌ๋Ÿผ๋ช…];
์ปฌ๋Ÿผ ์ด๋ฆ„๋ณ€๊ฒฝ
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] RENAME COLUMN [์ปฌ๋Ÿผ๋ช…] TO [์ปฌ๋Ÿผ๋ช…];
์ปฌ๋Ÿผ ๋ณ€๊ฒฝ
โ€ข
์ปฌ๋Ÿผ์˜ ํƒ€์ž…์€ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹จ, ํ•ด๋‹น ์ปฌ๋Ÿผ์— ๊ฐ’์ด ํ•˜๋‚˜๋„ ์—†์œผ๋ฉด ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
โ€ข
์ปฌ๋Ÿผ์˜ ํฌ๊ธฐ๋Š” ์ปฌ๋Ÿผ์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๋ณด๋‹ค ํฐ ํฌ๊ธฐ๋กœ๋งŒ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
โ€ข
์ œ์•ฝ์กฐ๊ฑด์€ ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋“ค๊ณผ ์ถฉ๋Œํ•˜์ง€ ์•Š๋Š” ์ œ์•ฝ์กฐ๊ฑด๋งŒ ์ง€์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
โ—ฆ
๊ธฐ์กด ์ปฌ๋Ÿผ์— NULL ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ ์กด์žฌํ•˜๋ฉด NOT NULL ๋ถˆ๊ฐ€๋Šฅ
โ—ฆ
๊ธฐ์กด ์ปฌ๋Ÿผ์— ์ค‘๋ณต๊ฐ’์ด ์กด์žฌํ•˜๋ฉด UNIQUE ๋ถˆ๊ฐ€๋Šฅ
โ—ฆ
๊ธฐ์กด ์ปฌ๋Ÿผ์— CHECK ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋ฉด CHECK ๋ถˆ๊ฐ€๋Šฅ
์ปฌ๋Ÿผ ์‚ญ
(2) ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ
๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ, ์ผ๊ด€์„ฑ, ์œ ํšจ์„ฑ์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ์„ ์œ„ํ•ด DBMS ์€ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ์ œ๊ณตํ•ด์ค€๋‹ค.
[์ œ์•ฝ์กฐ๊ฑด]
์ œ์•ฝ์กฐ๊ฑด์€ TABLE INSPECTOR โ†’ DDL ์ฐฝ์—์„œ ํ™•์ธํ•œ๋‹ค.
์—๋Ÿฌ๋ฉ”์„ธ์ง€๋ฅผ ํ™•์ธ ํ•  ์ค„ ์•Œ์•„์•ผํ–”๋‹ค.
PRIMARY KEY
โ€ข
ํ…Œ์ด๋ธ”์„ ๋Œ€ํ‘œํ•˜๋ฉฐ, ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ปฌ๋Ÿผ์— ์ง€์ •ํ•œ๋‹ค.
โ€ข
์ค‘๋ณต๊ฐ’(์œ ์ผ์„ฑ)๊ณผ NULL(์ตœ์†Œ์„ฑ) ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ธฐ๋ณธํ‚ค๋Š” ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์ด ๋ฐ˜๋“œ์‹œ ๋งŒ์กฑ๋˜๋Š” ์ปฌ๋Ÿผ์— ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.
โ€ข
๋ชจ๋“  ํ…Œ์ด๋ธ”์— ๊ธฐ๋ณธํ‚ค๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ธฐ๋ณธํ‚ค๋ฅผ ์ง€์ •ํ•˜๋ฉด, ๋‚ด๋ถ€์ ์œผ๋กœ ๊ณ ์œ  ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ๋˜์–ด DB ๊ฐ€ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปฌ๋Ÿผ, ๋˜๋Š” ์ปฌ๋Ÿผ์ง‘ํ•ฉ ์Šˆํผํ‚ค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
โ€ข
์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์ตœ์†Œํ•œ์˜ ์ปฌ๋Ÿผ์ง‘ํ•ฉ์„ ํ›„๋ณดํ‚ค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํ›„๋ณดํ‚ค ์ค‘์—์„œ ๊ฐ€์žฅ ๋Œ€ํ‘œ์„ฑ์„ ์ง€๋‹ˆ๋Š” ์ปฌ๋Ÿผ์„ ๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ•œ๋‹ค.
NOT NULL
์ปฌ๋Ÿผ์— NULL ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ NULL ๊ฐ’์„ ๋„ฃ์œผ๋ ค๊ณ  ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.
CHECK
๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„๋ฉ”์ธ์— ์†ํ•œ ๊ฐ’๋งŒ ์ปฌ๋Ÿผ ์ถ”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. () ์•ˆ์˜ ์กฐ๊ฑด์„ ๋งž์ถฐ์•ผํ•œ๋‹ค.
UNIQUE : ์ค‘๋ณต๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
DEFAULT
INSERT ๋•Œ ์ปฌ๋Ÿผ์„ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด, DEFAULT ๊ฐ’์„ ์„ธํŒ…ํ•œ๋‹ค.
(3) ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ
์ž์‹ ์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’์€ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค.
์ž์‹ ์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๋ฉด, ์ฐธ์กฐ๋˜๊ณ  ์žˆ๋Š” ํ–‰์€ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค.
์ž์‹ํ…Œ์ด๋ธ” : ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”
๋ถ€๋ชจํ…Œ์ด๋ธ” : ์ฐธ์กฐ๋˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”
FOREIGN KEY
โ€ข
๋ถ€๋ชจํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜๋Š” ํ‚ค
โ€ข
๋ถ€๋ชจํ…Œ์ด๋ธ”์—์„œ ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์ปฌ๋Ÿผ์„ ์™ธ๋ž˜ํ‚ค๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
โ€ข
DELETE ๋กœ ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋ฉฐ, UPDATE ๋กœ ์ˆ˜์ •๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
โ€ข
๋ถ€๋ชจํ…Œ์ด๋ธ”์ด ์ปฌ๋Ÿผ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ์ž์‹ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค ์ปฌ๋Ÿผ์— ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค.
[์ œ์•ฝ์กฐ๊ฑด ๋ณ€๊ฒฝ]
๊ตฌ๋ฌธ
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] ADD DROP CONSTRAINT [์ œ์•ฝ์กฐ๊ฑด๋ช…];
PRIMARY KEY
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] ADD PRIMARY KEY (์ปฌ๋Ÿผ๋ช…);
ALTER TABLE [ํ…Œ์ด๋ธ”๋ช…] DROP PRIMARY KEY;
FOREIGN KEY
์™ธ๋ž˜ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด์— ๋Œ€ํ•œ ์˜ต์…˜
โ€ข
ON DELETE/UPDATE CASCADE
๋ถ€๋ชจํ…Œ์ด๋ธ”์—์„œ ์ž์‹ํ…Œ์ด๋ธ”์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํ–‰์ด ์‚ญ์ œ/์ˆ˜์ • ๋  ๊ฒฝ์šฐ, ์ž์‹ํ…Œ์ด๋ธ”์˜ ํ–‰๋„ ํ•จ๊ป˜ ์‚ญ์ œ/์ˆ˜์ •ํ•œ๋‹ค.
โ€ข
ON DELETE/UPDATE SET NULL
๋ถ€๋ชจํ…Œ์ด๋ธ”์—์„œ ์ž์‹ํ…Œ์ด๋ธ”์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํ–‰์ด ์‚ญ์ œ/์ˆ˜์ •๋  ๊ฒฝ์šฐ, ์ž์‹ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค๋ฅผ NULL ์ฒ˜๋ฆฌํ•œ๋‹ค.
โ€ข
ON DELETE/UPDATE RESTRICT
๋ถ€๋ชจํ…Œ์ด๋ธ”์—์„œ ์ž์‹ํ…Œ์ด๋ธ”์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํ–‰์„ ์‚ญ์ œ/์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค. (DEFAULT)