DDL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง๋ฅผ ์ ์ํ๊ฑฐ๋ ์์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ SQL์ ํ ๋ถ๋ถ์ด๋ค.
์ฃผ์ ๋ช ๋ น์ด๋ก๋CREATE,ALTER,DROP,TRUNCATE๊ฐ ์์ต๋๋ค.
ํ ์ด๋ธ์
์์ฑํ๋ ๊ตฌ๋ฌธ
"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;
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 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 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;
ํ ์ด๋ธ์
๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณAUTO_INCREMENT ๊ฐ์ ์ด๊ธฐํํฉ๋๋ค.
TRUNCATE TABLE tb6;