PRIMARY KEY, FOREIGN KEY

์ •ํ•œ๋ณ„ยท2024๋…„ 6์›” 11์ผ
0

๐Ÿ—‚๏ธ ์‹ค์Šตํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ

USE zerobase; -์ด๋™

๐Ÿ—‚๏ธ PRIMARY KEY (๊ธฐ๋ณธํ‚ค)

โ€ข ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‹๋ณ„
โ€ข ์ค‘๋ณต๋˜์ง€ ์•Š์€ ๊ณ ์œ ๊ฐ’์„ ํฌํ•จ
โ€ข NULL ๊ฐ’์„ ํฌํ•จํ•  ์ˆ˜ ์—†์Œ
โ€ข ํ…Œ์ด๋ธ” ๋‹น ํ•˜๋‚˜์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ฐ€์ง

๐Ÿ“‚Table ์ƒ์„ฑ

๐Ÿ—’๏ธ ๋‹จ์ผ primary key

๐Ÿ—’๏ธ ์—ฌ๋Ÿฌ ๊ฐœ primary key

๐Ÿ“‚ primary ์‚ญ์ œ


๐Ÿ“Œ primary key๊ฐ€ 2๊ฐœ๊ฐ€ ์žˆ์–ด๋„ ๋ชจ๋‘ ์‚ญ์ œ๊ฐ€ ๋œ๋‹ค.

๐Ÿ“‚๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •

๐Ÿ—’๏ธ ํ•˜๋‚˜์˜ ์นผ๋Ÿผ์„ ๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ

๐Ÿ—’๏ธ ๋‘๊ฐœ์˜ ์นผ๋Ÿผ์„ ๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ

โœ๏ธ ์ œ์•ฝ ์กฐ๊ฑด(constraint)์ด๋ž€?

๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด, ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ๊ฒ€์‚ฌ ๊ทœ์น™์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ—‚๏ธ FOREIGN KEY (์™ธ๋ž˜ํ‚ค)

-ํ•œ ํ…Œ์ด๋ธ”์„ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• ์ด๋ฉฐ, ์ฐธ์กฐ๋˜๋Š” ํ…Œ์ด๋ธ”์˜ ํ•ญ๋ชฉ์€ ๊ทธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค (ํ˜น์€ ๋‹จ์ผ๊ฐ’)
-FOREIGN KEY๋Š” ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.

โœ๏ธ oid-> oder id๋ฅผ ์˜๋ฏธ

๐Ÿ“‚ CREATE TABLE ์—์„œ FOREIGN KEY๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ

โ†ช๏ธ table ์ƒ์„ฑ, foreign key๋กœ ์ง€์ •์„ ํ•ด์„œ mul๋กœ ํ‘œ์‹œ๊ฐ€ ๋œ๋‹ค.

์ž๋™ ์ƒ์„ฑ๋œ CONSTRAINT ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•
โ†ช๏ธshow create table tablename;
CONSTRAINT๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ job_ibfk_1๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋˜์–ด์žˆ๋‹ค
๋‚˜์ค‘์— ์ด๊ฒƒ์„ foreign key์„ค์ •ํ•  ๋•Œ ์ด์šฉํ•œ๋‹ค.

๐Ÿ“‚FOREIGN KEY ์‚ญ์ œ ๋ฌธ๋ฒ•

โ†ช๏ธ ์‚ญ์ œ๋ฅผ ํ•ด์ค€๋‹ค.

โ†ช๏ธ ์—ฌ๊ธฐ์„œ key 'fk_person '์„ ๋ณด๊ณ  ์‚ญ์ œ ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“‚ Table ์ด ์ƒ์„ฑ๋œ ์ดํ›„์—๋„ ALTER TABLE ์„ ํ†ตํ•ด FOREIGN KEY ๋ฅผ ์ง€์ •

โ†ช๏ธconstraint 'orders_ibk_1' foreign key์ธ ๋ถ€๋ถ„์ด ๋ฐ”๋€Œ์–ด์žˆ๋‹ค.
์ด ๋ ˆํผ๋Ÿฐ์Šค๋Š” person_k๋ผ๋Š” ๊ณณ์—์„œ pid๋ฅผ ๊ฐ€์ ธ์™”๋‹ค๊ณ  ๋‚˜ํƒ€๋‚œ๋‹ค.

โ—์˜ค๋ฅ˜ ๋ฐœ์ƒ

์ฐพ์•„๋ณด๋‹ˆ ์ค‘๋ณต์ƒํƒœ์ธ๋ฐ primary key๋ฅผ ์„ค์ •ํ•˜๋ ค ํ•ด์„œ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ๋‹ค.

์ค‘๋ณต๋œ ํ–‰์„ ํ™•์ธ์„ ํ•ด๋ณด์•˜๋‹ค.

'name' ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ค‘๋ณต๋œ ํ–‰์„ ์ฐพ๊ณ , ๊ทธ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

๊ทธ ํ›„ primary key๋ฅผ ์„ค์ •
๐Ÿ“Œ ํ˜น์‹œ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉ์— ๋Œ€๋น„์— ์‚ญ์ œ ์‹œ ๋ฐฑ์—… ํ•„์ˆ˜

๐Ÿ“‚ ๋ฌธ์ œ1

1. ๋‹ค์Œ๊ณผ ๊ฐ™์ด study_id ๊ฐ€ PRIMARY KEY, patient_id ๊ฐ€ person ํ…Œ์ด๋ธ”์˜ pid ์™€ ์—ฐ๊ฒฐ๋œ FOREIGN KEY ๋กœ ์ง€์ •๋œ study ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜์„ธ์š”.


โ†ช๏ธ person_k์—์„œ ๊ฐ€์ ธ์™”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

2. ์ƒ์„ฑํ•œ ํ…Œ์ด๋ธ”์˜ PRIMARY KEY ๋ฅผ ์‚ญ์ œํ•˜์„ธ์š”**


โ†ช๏ธ ์‚ญ์ œ ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ์ƒ์„ฑํ•œ ํ…Œ์ด๋ธ”์˜ FOREIGN KEY ๋ฅผ ์‚ญ์ œํ•˜์„ธ์š”.



โ†ช๏ธ ์•„๊นŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋˜ ์ •๋ณด๊ฐ€ ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

4. study ํ…Œ์ด๋ธ”์˜ patient_id ๋ฅผ person ํ…Œ์ด๋ธ”์˜ pid ์™€ ์—ฐ๊ฒฐ๋œ FOREIGN KEY ๋กœ ๋“ฑ๋กํ•˜์„ธ์š”.



โ†ช๏ธ ์—ฐ๊ฒฐ์ด ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

5. study ํ…Œ์ด๋ธ”์˜ study_id ๋ฅผ PRIMARY KEY๋กœ ๋“ฑ๋กํ•˜์„ธ์š”.


โ†ช๏ธstudy_id๊ฐ€ ๋‹ค์‹œ primary key๋กœ ๋“ฑ๋ก์ด ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด