์ด๋ฒ ํฌ์คํ ์์๋ CREATE TABLE ์ฟผ๋ฆฌ๋ฅผ ํตํด ์์ ํ ์ด๋ธ์ ์์ฑํ๊ณ primary key์ foriegn key ๋ฑ ์ต์ ์ ์ค์ ํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
๋ฐ์ดํฐ ์ ์์ด(DDL : Data Definition Language)
ํ ์ด๋ธ์ ์์ฑ ๋ฐ ๋ณ๊ฒฝ, ์ญ์ ๋ฅผ ๋ด๋นํ๋ ๋ช ๋ น์ด๋ค๋ก,
CREATE, DROP, RENAME, ALTER, TRUNCATE ๋ฑ์ด ์์ต๋๋ค.
ํ ์ด๋ธ์ ๊ธฐ๋ณธํค์ ์ธ๋ํค๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ์,
ํฌ๊ฒ 2๊ฐ์ง ์ ๋๋ค.
1. CREATE, ์ฆ ํ ์ด๋ธ์ ์์ฑํ๋ฉด์ ์ค์ ํ๊ธฐ.
-> CREATE ๋ช ๋ น๋ฌธ ๋ด์ ์นผ๋ผ ์์ด๋ ์๋์ ์จ์ค๋๋ค.
2. ์ด๋ฏธ ์์ฑ๋ ํ ์ด๋ธ์ ์ค์ ํ๊ธฐ.
-> ALTER ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด์ค๋๋ค.
๊ทธ๋ผ ์ง๊ธ๋ถํฐ ํ ์ด๋ธ์ ์ง์ CREATE ํด๋ณด๊ณ , ๊ธฐ๋ณธํค์ ์ธ๋ํค๋ฅผ ์ ํ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
CREATE TABLE ๊ธฐ๋ณธ ๋ฌธ๋ฒ
CREATE TABLE ํ
์ด๋ธ๋ช
(
ํ๋๋ช
1 ํ๋ํ์
(์๋ฆฟ์),
ํ๋๋ช
2 ํ๋ํ์
(์๋ฆฟ์),
...
);
์์ ํ ์ด๋ธ
- message ํ ์ด๋ธ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ธ ๋ด์ญ์ ์ ์ฅํ๋ ํ ์ด๋ธ์ ๋๋ค.
- msgId๊ฐ ๋ฉ์์งId๋ก ๋ณด๋ธ ๋ฉ์์ง ํ๋ํ๋๋ฅผ ๊ตฌ๋ถํ๋ primary key, toId๊ฐ ๋ฐ๋ ์ฌ๋์ Id, sendDate๊ฐ ๋ณด๋ธ ๋ ์ง, contents๊ฐ ๋ณด๋ธ ๋ฉ์์ง์ ๋ด์ฉ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๊ฒ ์ต๋๋ค.
PRIMARY KEY ์ค์ ํ๊ธฐ (3๊ฐ์ง ๋ฐฉ๋ฒ)
1. CREATE TABLE ์ค ์นผ๋ผ ์์ ์ฐ๊ธฐ
CREATE TABLE message (
msgId varchar2(10) primary key,
toId varchar2(10) not null,
sendDate date,
contents varchar2(100)
);
์ปฌ๋ผ์ ์ ์ํ๋ฉด์ primary key ์ค์ ์ ์์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
2. CREATE TABLE ์ค ์นผ๋ผ๋ค ์๋์ ์ฐ๊ธฐ
CREATE TABLE ํ
์ด๋ธ์ด๋ฆ(
ํ๋๋ช
1 ํ๋ํ์
(์๋ฆฟ์),
ํ๋๋ช
2 ํ๋ํ์
(์๋ฆฟ์),
...,
PRIMARY KEY (ํ๋๋ช
)
);
/*๋๋ ์ ์ฝ์กฐ๊ฑด๋ช
์
ํ
ํ๊ณ ์ถ์ ๊ฒฝ์ฐ*/
CREATE TABLE ํ
์ด๋ธ์ด๋ฆ(
ํ๋๋ช
1 ํ๋ํ์
(์๋ฆฟ์),
ํ๋๋ช
2 ํ๋ํ์
(์๋ฆฟ์),
...,
CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช
PRIMARY KEY (ํ๋๋ช
)
);
3. ํ ์ด๋ธ ์์ฑ ํ, ALTER ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ๋ณธํค๋ฅผ ์ค์ ํ๊ธฐ.
ALTER TABLE ํ
์ด๋ธ์ด๋ฆ
MODIFY ADD ํ๋์ด๋ฆ ํ๋ํ์
PRIMARY KEY;
/*๋๋ ์ ์ฝ์กฐ๊ฑด๋ช
์ ์
ํ
ํ์ฌ primary key ๋ฑ์ ์ค์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ*/
ALTER TABLE ํ
์ด๋ธ์ด๋ฆ
MODIFY CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช
PRIMARY KEY ํ๋์ด๋ฆ ํ๋ํ์
;
FOREIGN KEY ์ค์ ํ๊ธฐ (2๊ฐ์ง ๋ฐฉ๋ฒ)
1. CREATE TABLE ์ค ์นผ๋ผ ์๋์ ์ฐ๊ธฐ
์์ ํ ์ด๋ธ
- dropMsg ํ ์ด๋ธ์ ๋ฉ์ธ์ง๋ฅผ ์ญ์ ํ ๋ด์ญ์ ์ ์ฅํ๋ ํ ์ด๋ธ์ ๋๋ค.
- ์๊น ์์ฑํ message ํ ์ด๋ธ์ msgId๋ฅผ ์ธ๋ํค๋ก ๊ฐ์ ธ์ต๋๋ค.
CREATE TABLE dropMsg (
dropMsgId varchar2(10) PRIMARY KEY,
dropDate date,
msgId varchar2(10),
FOREIGN KEY (msgId) REFERENCES message(msgId)
);
2. CREATE TABLE ํ ALTER ์ฌ์ฉํ๊ธฐ
ALTER TABLE ํ
์ด๋ธ์ด๋ฆ
MODIFY [CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ] FOREIGN KEY (ํ๋๋ช
) REFERENCES ํ
์ด๋ธ์ด๋ฆ (ํ๋๋ช
);
/*[ ] ์์ ๋ด์ฉ์ ์ ์ฝ์กฐ๊ฑด๋ช
์ ์ค์ ํ๊ณ ์ถ์ ๋ ์์ฑ*/
์ฐธ๊ณ ์ฌ์ดํธ : http://www.tcpschool.com/mysql/mysql_constraint_primaryKey
sql create , create primary key, create foreign key, alter primary key, alter foreign key
๋๊ธ