๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Data/MariaDB

DB] DDL(๋ฐ์ดํ„ฐ ์ •์˜์–ด) / ํ…Œ์ด๋ธ”

by bamDal 2022. 4. 28.

 

root ์—์„œ ํ•ด์ค„ ์ผ์ด ๋๋‚ฌ์œผ๋‹ˆ root๊ฐ€ ์žˆ๋Š” localhost ๋ผ๋Š” ๋ฐ๋ฒ  ๋ง๊ณ  ๋‹ค๋ฅธ ๋ฐ๋ฒ ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ทธ ๊ณณ์—์„œ web_user ๋ผ๋Š” ์‚ฌ์šฉ์ž๋กœ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ ๋„ฃ๊ณ  ๋นผ๊ณ  ์ฟผ๋ฆฌ๋ฌธ ์—ฐ์Šต์„ ํ•ด๋ณด์ž.

์ƒˆ๋กœ์šด Database ์ƒ์„ฑ

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค( ์ž๋ฐ”์—์„œ ํŒจํ‚ค์ง€) ์˜ ํ…Œ์ด๋ธ”์€ ์ž๋ฐ”์—์„œ์˜ ํด๋ž˜์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค.

ํ…Œ์ด๋ธ” ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ๋Š” DDL(๋ฐ์ดํ„ฐ ์ •์˜์–ด) - CREATE / ALTER / DROP ๋กœ ํ•œ๋‹ค.

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

ํ…Œ์ด๋ธ” ์ƒ์„ฑ (CREATE)
CREATE TABLE [ํ…Œ์ด๋ธ” ์ด๋ฆ„]( [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐ ํƒ€์ž…] [์‚ฌ์ด์ฆˆ] );

  • [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐ ํƒ€์ž…] [์‚ฌ์ด์ฆˆ] ์€ ํ•œ ์„ธํŠธ.
  • ํ…Œ์ด๋ธ”์— ๋„ฃ์„ ์ปฌ๋Ÿผ๋ผ๋ฆฌ๋Š” ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • ๋งˆ์ง€๋ง‰ ์ปฌ๋Ÿผ ๋’ค์—๋Š” ์ฝค๋งˆ๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค.
  • ์ฟผ๋ฆฌ๋ฌธ ๋งˆ์ง€๋ง‰์— ์„ธ๋ฏธ์ฝœ๋ก  ์ฃผ์˜!
  • ์ค„๋ฐ”๊ฟˆ, ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” ๋ณด๊ธฐ ์ข‹๊ธฐ์œ„ํ•ด ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•ด์ฃผ๋Š” ๊ฒŒ ๊ฐ€์‹œ์„ฑ์— ์ข‹์€ ๋“ฏ ํ•˜๋‹ค.

 

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ฟผ๋ฆฌ๋ฌธ์— [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐ ํƒ€์ž…] [์‚ฌ์ด์ฆˆ] ๊ฐ€ ์žˆ๋Š”๋ฐ ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.


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

๋ฐ์ดํ„ฐ ํƒ€์ž…์—๋Š” ํฌ๊ฒŒ ๋ฌธ์ž, ์ˆซ์ž, Boolean, ๋‚ ์งœ ํƒ€์ž…์ด ์žˆ๋‹ค.

1) ๋ฌธ์žํƒ€์ž…

  • ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฅด๋‹ค. ์™œ๋ƒ๋ฉด ์ธ๋ฑ์Šค๋ผ๋Š” ๊ฑธ ์“ฐ๋Š”๋ฐ ๊ทธ๊ฒŒ ๋ฌธ์ž์— ์ตœ์ ํ™” ๋˜์–ด์žˆ์Œ
  • ๋ฌธ์ž ํ•˜๋‚˜ = 3byte
  • ๊ณ ์ •ํ˜•(CHAR(๋ฐ”์ดํŠธ)) - ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๊ฐ€๋ณ€ํ˜•(VARCHAR(๋ฐ”์ดํŠธ)) - ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ด๋„ ๊ทธ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด ์ค„์–ด๋“ ๋‹ค.
  • TEXT(ํฐ ๋ฌธ์ž์—ด) - 65,535 byte
  • LONGTEXT(๋” ํฐ ๋ฌธ์ž์—ด) - 4,294,967,296 byte

char ๊ณผ varchar ์˜ ์ฐจ์ด์ ์€ 
๋งŒ์•ฝ char(6) ๊ณผ varchar(6) ์œผ๋กœ ํ•„๋“œ ์ƒ์„ฑ์„ ํ•ด๋†“๊ณ 
ํ•„๋“œ์— 4byte ๋งŒ ๋“ค์–ด๊ฐ”๋‹ค๋ฉด varchar๋Š” 2byte๋ฅผ ์ค„์ด๊ณ  4byte๋งŒ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋Š”๋ฐ
char๋Š” ๋ช‡ ๋ฐ”์ดํŠธ๊ฐ€ ๋“ค์–ด์˜ค๋“ ์ง€๊ฐ„์— 6byte๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค. (๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„)

 

2) ์ˆซ์žํƒ€์ž…

  • int, float, double, bigint

3) BOOLEAN

  • ์ฐธ, ๊ฑฐ์ง“

4) ๋‚ ์งœ ํƒ€์ž…

  • DATE <- 0000-00-00
  • DATETIME <- 0000-00-00 00:00:00
  • TIMESTAMP <- DATETIME ๊ณผ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ time zone(์„œ๋ฒ„ ์‹œ๊ฐ„) ์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ด ๋ณ€๊ฒฝ ๋œ๋‹ค.
  • default CURRENT_DATE <- ํ˜„์žฌ ๋‚ ์งœ(CURRENT_DATE) ๋ฅผ ๊ธฐ๋ณธ(default)์œผ๋กœ ํ•œ๋‹ค.

 

ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ํ™•์ธ
desc [์ด๋ฆ„];

์ฟผ๋ฆฌ๋ฌธ, ์‹คํ–‰ ๊ฒฐ๊ณผ

 

<์—ฐ์Šตํ•ด๋ณด๊ธฐ>

๋”๋ณด๊ธฐ

์ฟผ๋ฆฌ๋ฌธ

์ฝค๋งˆ๋ฅผ ์•ž์— ๋ถ™์ด๋Š” ๊ฑฐ๋Š” ๊ฐ•์‚ฌ๋‹˜์ด ์•Œ๋ ค์ฃผ์‹  ๊ฟ€ํŒ.
๋งˆ์ง€๋ง‰ ํ•„๋“œ์—๋Š” ์ฝค๋งˆ ๋ถ™์ด๋ฉด ์•ˆ๋˜๋Š”๋ฐ ์ ๋‹ค๋ณด๋ฉด ๋ถ™์–ด์žˆ์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ธฐ ๋•Œ๋ฌธ์—
์•ž์— ์ ๋Š” ์Šต๊ด€ ๋“ค์ด๋Š” ๊ฒƒ๋„ ์ข‹๋‹ค๊ณ  ํ•˜์…จ๋‹ค.

ํ…Œ์ด๋ธ” ๋ชฉ๋ก ํ™•์ธํ•˜๊ธฐ
show tables;

 

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

ํ…Œ์ด๋ธ” ์‚ญ์ œ (DROP)
DROP TABLE [์ด๋ฆ„];

 

3. ํ…Œ์ด๋ธ” ์ˆ˜์ •

ํ…Œ์ด๋ธ” ์ˆ˜์ • (ALTER)

1) ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ (๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ ๋  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜)
ALTER TABLE [ํ…Œ์ด๋ธ” ์ด๋ฆ„] RENAME COLUMN [๋ณ€๊ฒฝ ์ „ ์ด๋ฆ„] TO [๋ณ€๊ฒฝ ํ›„ ์ด๋ฆ„];

 

2) ์ปฌ๋Ÿผ ์ถ”๊ฐ€
ALTER TABLE [ํ…Œ์ด๋ธ” ์ด๋ฆ„] ADD ([์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐํƒ€์ž…]([์‚ฌ์ด์ฆˆ]));

 

3) ํ…Œ์ด๋ธ” ์†์„ฑ ๋ณ€๊ฒฝ (๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์•„ ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค.)

- ํ…Œ์ด๋ธ” ์†์„ฑ ๋ณ€๊ฒฝ์€ ํŠน์ • ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์ด๋‚˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๋ณ€๊ฒฝ
- ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ๊ณผ ํ—ท๊ฐˆ๋ ธ์—ˆ๋Š”๋ฐ ์ฃผ์˜ํ•˜๊ธฐ!
- ํ…Œ์ด๋ธ” ์†์„ฑ ์ˆ˜์ • = alter / ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์ˆ˜์ • = update

 

4) ์ปฌ๋Ÿผ ์‚ญ์ œ
ALTER TABLE [ํ…Œ์ด๋ธ” ์ด๋ฆ„] DROP COLUMN [์ปฌ๋Ÿผ๋ช…];

์‚ญ์ œ๋ผ๊ณ  ํ•˜๋‹ˆ๊นŒ DROP ์ด๋ž‘ ํ—ท๊ฐˆ๋ ธ๋Š”๋ฐ 
ํ…Œ์ด๋ธ” ์‚ญ์ œ = DROP  /  ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์‚ญ์ œ = ALTER, DROP