Day 23
๊ธฐ์กด์ ํ ์ด๋ธ์ CREATE ํ๋๋ฐ ์์ด์ NOT NULL ๊ฐ์ ์ ์ฝ ์กฐ๊ฑด์ ๊ฑธ์ด์คฌ์๋๋ฐ ์ด๋ฐ๊ฑฐ๋ฅผ ๋ด๋ณด์
ํ ์ด๋ธ์ ์ ์ฝ์ ์ค์ ํจ์ผ๋ก์จ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค ์์์ ์ ๊น ์ด์ผ๊ธฐํ NOT NULL ์ด์ธ์๋ ๊ธฐ๋ณธํค ์ ์ฝ์ด๋ ์ธ๋ถํค ์ ์ฝ๋ฑ์ด ์กด์ฌํจ
ํ
์ด๋ธ ์์ฑ ์ ์ ์ฝ ์ ์
์ ์ฝ์ ํ ์ด๋ธ์๋ค๊ฐ ๊ฑฐ๋ ๊ฐ๋ ์ด๋ค ๊ทธ๋์ CREATE๋ ALTER ๋ฅผ ๊ฑธ๋ ์ ์ฝ ์กฐ๊ฑด์ ๊ฑธ์ด์ค๋ค ์์๋ก NOT NULL, UNIQUE๋ฅผ ๊ฑธ ์ ์์
CREATE TABLE sample631(
a INTEGER NOT NULL,
b INTEGER NOT NULL UNIQUE,
c VARCHAR(30)
);
์ด๊ฒ์ฒ๋ผ ์ด์์ ์ง์ ๊ฐ ์ด์ ๋ํ ์ ์ฝ์กฐ๊ฑด์ ๊ฑฐ๋ ๊ฒฝ์ฐ๋ฅผ ๋ณด๊ณ ์ด์ ์ฝ์ด๋ผ๊ณ ํ๋ค ์ด์ธ์๋ ํ ์ด๋ธ์ ํ ์ด๋ธ์ ์ฝ์ ๊ฑฐ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค
CREATE TABLE sample632(
no INTEGER NOT NULL,
sub_no INTEGER NOT NULL,
name VARCHAR(30),
PRIMARY KEY(no, sub_no)
);
์ด๋ ๊ฒ ํ ์ด๋ธ ์ ์ฝ์ ๊ฑฐ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ฐ ์ ์ฝ์ ์ด๋ฆ์ ๋ถํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค ์ ์ฝ์ ์ด๋ฆ์ ๋ถํ๊ฒ ๋๋ฉด ๋์ค์ ๊ด๋ฆฌํ๋๋ฐ ํธํ๊ธฐ ๋๋ฌธ์ ์ด๋ฆ์ ๋ถํ์ -> ์ด๊ฑด CONSTRAINT ํค์๋๋ฅผ ์ฌ์ฉํด์ ์ง์
CREATE TABLE sample632(
no INTEGER NOT NULL,
sub_no INTEGER NOT NULL,
name VARCHAR(30)
CONSTRAINT pk_sample PRIMARY KEY(no, sub_no)
);
์ ์ฝ ์ถ๊ฐ
๊ธฐ์กด์ ์์ฑ๋ ํ ์ด๋ธ์์๋ ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค
์ด ์ ์ฝ ์ถ๊ฐ
์ด ์ ์ฝ์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ์๋ ALTER ํค์๋๋ฅผ ์ฌ์ฉํด์ ์ ์๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค
ALTER๋ฅผ ํตํด์ ์ ์ฝ์ ์ง์ด๋ฃ๋ ๊ฒฝ์ฐ์๋ ์ผ๋จ ๊ฒ์ฌ๋ฅผ ์งํํ ํ, ๊ทธ๋ฆฌ๊ณ ๋ฃ๊ธฐ ๋๋ฌธ์ ๊ฒ์ฌํ๋ค๋์ ๊ธฐ์ตํ์
์ด๋ ๊ฒ ์ด์ ์์ ํ๋ฉด์ ์ ์ฝ์กฐ๊ฑด์ ์ง์ด๋ฃ์ด์ฃผ๋ฉด ๋๋ค
ํ
์ด๋ธ ์ ์ฝ ์ถ๊ฐ
ํ
์ด๋ธ ์ ์ฝ์ ์ถ๊ฐํ๊ธฐ ์ํด์๋ ALTER TABLE ์ ADD ๋ช
๋ น์ ํตํด์ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค
๊ทผ๋ฐ ๋ง์ฝ ๊ธฐ๋ณธํค๋ ํ
์ด๋ธ์ ํ๋๋ง ์ค์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ง์ฝ์ ๋ฏธ๋ฆฌ ์ค์ ๋์ด ์๋ ํ
์ด๋ธ์ ๋ ๊ธฐ๋ณธํค๋ฅผ ๋ฃ์ผ๋ ค๊ณ ํ๋ฉด ์๋ฌ๋๋ค๋์
์ ์ฝ ์ญ์
ํ
์ด๋ธ์ ์ ์ฝ์ ๋์ค์ ์ญ์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค ์ญ์ ๋ ๋ฑ๋กํ ๋์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค
์ด ์ญ์ ํ๋๋ฐ ์์ด์
์ ์ฝ ์กฐ๊ฑด์ ๋นผ๋๊น nullable์ด ์ฌ๋ผ์ง
ํ
์ด๋ธ ์ ์ฝ์ ์ญ์ ๋ ALTER์ DROP์ ์ฌ์ฉํด์ ์งํ
ALTER TABLE sample631 DROP CONSTRAINT pk_sample631;
--์ด๋ ๊ฒ ์ง์ ์ญ์ , ๊ทผ๋ฐ mysql์์๋ ์ด๋ ๊ฒ๊ฐ ์๋๋ผ ๋ฐ์์ฒ๋ผ
ALTER TABLE sample631 DROP PRIMARY KEY;
๊ธฐ๋ณธํค
๊ธฐ๋ณธํค ์ ์ฝ์ ์ค์ ํ๋๋ฐ ํ ์ด๋ธ์ ์ด๋ค ์กฐ๊ฑด์ด ์์ด์ผํ ๊น? ์ผ๋จ ํ ์ด๋ธ์์ ๊ธฐ๋ณธํค๊ฐ ๋ ์ ์๋ ์กฐ๊ฑด์ ๋จ์ํ๊ฒ null์ด๋ฉด ์๋๋ค ๊ธฐ๋ณธํค๋ ํ ์ด๋ธ์์ ๋จ ํ๋๋ง ์กด์ฌํ๊ณ ํ ์ด๋ธ์ ์ฐพ๋๋ฐ ์งํ๊ฐ ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค ๊ธฐ๋ณธํค ์ ์ฝ์ด ์ค์ ๋ ํ ์ด๋ธ์์ ๊ธฐ๋ณธํค๋ก ๊ฒ์ํ์ ๋ ๋ณต์์ ํ์ด ๋์ฌ ์ ์๋ค๋ ์๋ฏธ์ด๋ค ๊ทธ๋์ ์ด๋ป๊ฒ ๋ณด๋ฉด ํ์ด ์ ์ผ์ฑ์ ํ์๋ก ํ๋ค๋ ๋ค๋ฅธ ์๋ฏธ์์ ์ ์ผ์ฑ ์ ์ฝ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ์ด๋ค
๋ณต์์ ์ด๋ก ๊ธฐ๋ณธํค ๊ตฌ์ฑํ๊ธฐ
๊ธฐ๋ณธํค ์ ์ฝ์๋ ์ด๋ฅผ ๊ตฌ์ฑํ ์ด ์ง์ ์ด ํ์ํ๋ค -> ์์์ ์ธ๊ธํ ๊ฒ ์ฒ๋ผ not null ์ ์ฝ์กฐ๊ฑด์ด ์ค์ ๋์ด์์ด์ผ ํ๋ค
์ผ๋จ ๊ธฐ๋ณธํค๋ฅผ ๋ณต์์ ์ด๋ก ์ง์ ํ๊ฒ ๋๋ฉด ํค๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ์ด์ ์ฌ์ฉํด์ ์ค๋ณตํ๋ ๊ฐ์ด ์๋์ง ์๋์ง๋ฅผ ๊ฒ์ฌํ๋ค
์์๋ก a, b๋ฅผ ๊ธฐ๋ณธํค๋ก ์ง์ ํ์ ๊ฒฝ์ฐ๋ฅผ ๋ณด์
์ด๊ฑธ ๋ณด๋ฉด a๊ฐ์ด ์ค๋ณต๋๋๊ฒ ๋ช๊ฐ๊ฐ ์์ด๋ a, b 2๊ฐ๋ฅผ ๊ฐ์ด๋ณด๋ฉด a,b๋ชจ๋ ๊ฐ์ ํ์ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธํค ์ ์ฝ์ ์๋ฐฐ๋์ง ์๋๋ค
ํ์ง๋ง ์ด์ํ์์ a, b ๋ชจ๋ ๊ฐ์ ๊ฐ์ insertํ๋ ค๊ณ ํ๋ฉด ์๋ฌ๊ฐ ๋ฌ๋ค
Last updated
Was this helpful?