๐Ÿฆญ DDL

๋‚˜๋‚˜'s Brainยท2024๋…„ 7์›” 8์ผ

MariaDB

๋ชฉ๋ก ๋ณด๊ธฐ
9/15
post-thumbnail

๐Ÿ“ DDL(Data Definition Language)

DDL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” SQL์˜ ํ•œ ๋ถ€๋ถ„์ด๋‹ค.
์ฃผ์š” ๋ช…๋ น์–ด๋กœ๋Š” CREATE, ALTER, DROP, TRUNCATE๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”– CREATE

ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ๋ฌธ

"IF NOT EXISTS" ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด์— ํ…Œ์ด๋ธ”์ด ์กด์žฌํ•ด๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ,
ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์„ ์ •์˜ํ•  ๋•Œ๋Š” ์ปฌ๋Ÿผ๋ช…, ์ž๋ฃŒํ˜•, ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ์„ ์ง€์ •

CREATE TABLE IF NOT EXISTS tb1 (
    pk INT PRIMARY KEY, -- ์ปฌ๋Ÿผ ๋ ˆ๋ฒจ์—์„œ  ์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€
    fk INT,
    col1 VARCHAR(255),
    CHECK(col1 IN ('Y', 'N')) -- ํ…Œ์ด๋ธ” ๋ ˆ๋ฒจ์—์„œ ์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€
) ENGINE=INNODB; 

โœ… AUTO_INCREMENT

PRIMARY KEY ์ปฌ๋Ÿผ์— ์ž๋™์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ €์žฅ

CREATE TABLE IF NOT EXISTS tb2 (
    pk INT AUTO_INCREMENT PRIMARY KEY,
    fk INT,
    col1 VARCHAR(255),
    CHECK(col1 IN ('Y', 'N'))
) ENGINE=INNODB; #  ๋ฌด๊ฒฐ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ์ค‘์š”์‹œ

โžก๏ธ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ํ™•์ธ

DESCRIBE tb1;

-- ์ค„์—ฌ์„œ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค.
DESC tb1;

๐Ÿ”– ALTER

ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€, ๋ณ€๊ฒฝ, ์ˆ˜์ •, ์‚ญ์ œ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ช…๋ น์–ด

โžก๏ธ ์—ด ์ถ”๊ฐ€

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD ์ปฌ๋Ÿผ๋ช… ์ปฌ๋Ÿผ์ •์˜
ALTER TABLE tb2
ADD col2 INT NOT NULL;

โžก๏ธ ์—ด ์‚ญ์ œ

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

โžก๏ธ ์—ด ์ด๋ฆ„ ๋ฐ ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋ณ€๊ฒฝ

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… CHANGE COLUMN ๊ธฐ์กด์ปฌ๋Ÿผ๋ช… ๋ฐ”๊ฟ€ ์ปฌ๋Ÿผ๋ช… ์ปฌ๋Ÿผ์ •์˜
ALTER TABLE tb2
CHANGE COLUMN fk change_fk INT NOT NULL;

โžก๏ธ ์—ด ์ œ์•ฝ ์กฐ๊ฑด ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ

ALTER TABLE ํ…Œ์ด๋ธ”๋ช… drop ์ œ์•ฝ์กฐ๊ฑด

PRIMARY KEY ์ œ์•ฝ์กฐ๊ฑด ์ œ๊ฑฐ ๋ฐ ์ถ”๊ฐ€ ์˜ˆ์‹œ

ALTER TABLE tb2
MODIFY pk INT;

# AUTO_INCREMENT๊ฐ€ ๊ฑธ๋ ค ์žˆ๋Š” ์ปฌ๋Ÿผ์€ PRIMARY KEY ์ œ๊ฑฐ๊ฐ€ ์•ˆ๋˜๋ฏ€๋กœ 
# AUTO_INCREMENT๋ฅผ MODIFY ๋ช…๋ น์–ด๋กœ ์ œ๊ฑฐํ•œ๋‹ค.(MODIFY๋Š” ์ปฌ๋Ÿผ์˜ ์ •์˜๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด๋‹ค.)


# tb2 ํ…Œ์ด๋ธ”์˜ PRIMARY KEY ์ œ์•ฝ์กฐ๊ฑด ์ œ๊ฑฐ
ALTER TABLE tb2
DROP PRIMARY KEY;


# tb2 ํ…Œ์ด๋ธ”์˜ pk ์ปฌ๋Ÿผ์— ๋‹ค์‹œ PRIMARY KEY ์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€ํ•˜๊ธฐ
ALTER TABLE tb2
ADD PRIMARY KEY(pk); 

โžก๏ธ ์ปฌ๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐœ ์ถ”๊ฐ€

ALTER TABLE tb2
ADD col3 DATE NOT NULL,
ADD col4 TINYINT NOT NULL;

๐Ÿ”– DROP

ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋Š” ๊ตฌ๋ฌธ

DROP TABLE IF EXISTS tb3;
DROP TABLE IF EXISTS tb4, tb5;
-- tb3 ํ…Œ์ด๋ธ” ์ƒ์„ฑ
CREATE TABLE IF NOT EXISTS tb3 (
  pk INT AUTO_INCREMENT PRIMARY KEY,
  fk INT,
  col1 VARCHAR(255),
  CHECK(col1 IN ('Y', 'N'))
) ENGINE=INNODB;

-- tb3 ํ…Œ์ด๋ธ” ์‚ญ์ œ
DROP TABLE IF EXISTS tb3;

๐Ÿ”– TRUNCATE

ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ณ  AUTO_INCREMENT ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

TRUNCATE TABLE tb6;
profile
"๋กœ์ปฌ์—์„  ๋ฌธ์ œ์—†์—ˆ๋Š”๋ฐโ€ฆ?"

0๊ฐœ์˜ ๋Œ“๊ธ€