๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Basics/SQL

[SQL] DDL : CREATE ์‚ฌ์šฉ๋ฒ• ๋ฐ primary key, foriegn key ์„ค์ •ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•

by IworldT 2022. 2. 24.
๋ฐ˜์‘ํ˜•

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” 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 ์„ค์ •์„ ์†์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

CREATE TABLE

 

 

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)
);

 

create table foriegn key ์„ค์ •

 

 

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

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€