DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ

2023. 2. 16. 10:36ใ†DB

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• :

CREATE TABLE ํ…Œ์ด๋ธ”๋ช… ( 
     ์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• ์ œ์•ฝ์กฐ๊ฑด-ํ•„์š” ์—†์œผ๋ฉด ์ƒ๋žต ๊ฐ€๋Šฅ
     MEM_NUM NUMBER PRIMARY KEY - ๊ธฐ๋ณธํ‚ค ? (๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ์ง€์„ ์ˆ˜ ์žˆ์Œ) ์ค‘๋ณต๊ฐ’, NULL๊ฐ’ ํ—ˆ์šฉ X
    , MEM_NAME VARCHAR2(50) - 50์€ ๊ธ€์ž๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด์ฃผ๋Š”๋ฐ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ์ •ํ•ด์ฃผ๋Š” ๊ฒƒ. 
    MEM_AGE NUMBER
);

 

ํ…Œ์ด๋ธ”์˜ ๊ฐ„๋‹จํ•œ ์ •๋ณด ์กฐํšŒ :

DESC(๋ฌ˜์‚ฌ) MEMBER์˜ ๊ฐ„๋‹จํ•œ ์ •๋ณด(์ปฌ๋Ÿผ๋ช… ๋“ฑ)๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

DESC ํ…Œ์ด๋ธ”๋ช…; 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ด๋Š” KEY :

1.์Šˆํผํ‚ค(SUPER KEY)
ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ

์ปฌ๋Ÿผ ์†์„ฑ์ด ํ•˜๋‚˜๋“  ์—ฌ๋Ÿฌ๊ฐœ๋“  ํŠน์ •ํ•œ ํ–‰ ํ•˜๋‚˜๋ฅผ ์ง‘์–ด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉด ์Šˆํผํ‚ค๋‹ค.

 

2.ํ›„๋ณดํ‚ค(CANDIDATE KEY) :

ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œํ•œ์˜ ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ

EX) ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ, ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ

 

โ˜…3.๊ธฐ๋ณธํ‚ค(PRIMART KEY) : 

ํ›„๋ณดํ‚ค๋“ค ์ค‘์—์„œ ์„ ํƒํ•œ ๋Œ€ํ‘œ

ํ›„๋ณดํ‚ค ์ค‘์—์„œ ํŠน๋ณ„ํžˆ ์„ ์ •๋œ ํ‚ค๋กœ ์ค‘๋ณต๋œ ๊ฐ’ X, NULL๊ฐ’ X, ํ›„๋ณดํ‚ค์˜ ์„ฑ์งˆ O

 

4.๋Œ€์ฒดํ‚ค(ALTERNATE KEY) :

ํ›„๋ณดํ‚ค๋“ค ์ค‘์—์„œ ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒ ๋ฐ›์ง€ ๋ชป ํ•œ ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ

 

โ˜…5.์™ธ๋ž˜ํ‚ค(FOREIGN KEY) :

ํ…Œ์ด๋ธ”์ด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๊ด€๊ณ„๋ฅผ ๋งบ์Œ.

๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋„๋ก ์ œ์•ฝ์„ ์คŒ.

 

๋ฐ์ดํ„ฐ ์‚ฝ์ž…  ๋ฌธ๋ฒ• :

INSERT INTO ํ…Œ์ด๋ธ”๋ช… (์ปฌ๋Ÿผ๋ช…๋“ค) VALUES (๊ฐ’๋“ค);  *๊ฐ’ ๋„ฃ์„ ๋•Œ ์ปฌ๋Ÿผ๋ช… ์ˆœ์„œ์— ๋งž๊ฒŒ ๋„ฃ์–ด์•ผ ํ•จ.

*INSERT๋Š” ๋ฐ์ดํ„ฐ ๋„ฃ์„ ์‹œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ™•์ธ์ž„. ์ง„์งœ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… X

ํ™•์ธ ํ›„ ๋ณ„๋„์˜ ์‚ฝ์ž… ๋ช…๋ น์–ด ํ•„์š”.

ํ™•์ • ๋ช…๋ น์–ด : COMMIT;

 

* ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋Š” ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ • ๋“ฑ์˜ ์ฟผ๋ฆฌ๋Š” ์ฟผ๋ฆฌ ์‹คํ–‰ ํ›„
์ˆ˜์ • ๋‚ด์šฉ์„ ํ™•์ •ํ•  ์ง€ ์ทจ์†Œํ•  ์ง€ ๊ฒฐ์ •์ง€์–ด ์ค˜์•ผ ํ•œ๋‹ค.
๋ณ€๊ฒฝ ํ™•์ • : COMMIT, ๋ณ€๊ฒฝ ์ทจ์†Œ : ROLLBACK
๋‹จ, ํ•œ๋ฒˆ COMMITํ•œ ๋ฐ์ดํ„ฐ๋Š” ROLLBACK ๋ถˆ๊ฐ€.

1๋ฒˆ ์ปค๋ฐ‹ 2๋ฒˆ ๋กค๋ฐฑ

--๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค
--1.์Šˆํผํ‚ค(SUPER KEY)
--ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ
--2.ํ›„๋ณดํ‚ค(CANDIDATE KEY)
--ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œํ•œ์˜ ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ 
--3.๊ธฐ๋ณธํ‚ค(PRIMART KEY)
--ํ›„๋ณดํ‚ค๋“ค ์ค‘์—์„œ ์„ ํƒํ•œ ๋Œ€ํ‘œ
--4.๋Œ€์ฒดํ‚ค(ALTERNATE KEY)
--ํ›„๋ณดํ‚ค๋“ค ์ค‘์—์„œ ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒ ๋ฐ›์ง€ ๋ชป ํ•œ ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ
--5.์™ธ๋ž˜ํ‚ค(FOREIGN KEY) 
--ํ…Œ์ด๋ธ”์ด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๊ด€๊ณ„๋ฅผ ๋งบ์Œ.
--๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋„๋ก ์ œ์•ฝ์„ ์คŒ.

--ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•
CREATE TABLE MEMBER ( 
    --์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• ์ œ์•ฝ์กฐ๊ฑด-ํ•„์š” ์—†์œผ๋ฉด ์ƒ๋žต ๊ฐ€๋Šฅ
    MEM_NUM NUMBER PRIMARY KEY --์ œ์•ฝ์กฐ๊ฑด ๊ธฐ๋ณธํ‚ค
    , MEM_NAME VARCHAR2(50)
    , MEM_AGE NUMBER

);

SELECT * FROM MEMBER;

DESC MEMBER; --DESC(๋ฌ˜์‚ฌ) MEMBER์˜ ๊ฐ„๋‹จํ•œ ์ •๋ณด(์ปฌ๋Ÿผ๋ช… ๋“ฑ)๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

--ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋Š” ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ • ๋“ฑ์˜ ์ฟผ๋ฆฌ๋Š” ์ฟผ๋ฆฌ ์‹คํ–‰ ํ›„
--์ˆ˜์ • ๋‚ด์šฉ์„ ํ™•์ •ํ•  ์ง€ ์ทจ์†Œํ•  ์ง€ ๊ฒฐ์ •์ง€์–ด ์ค˜์•ผ ํ•œ๋‹ค.
--๋ณ€๊ฒฝ ํ™•์ • : COMMIT, ๋ณ€๊ฒฝ ์ทจ์†Œ : ROLLBACK
--๋‹จ, ํ•œ๋ฒˆ COMMITํ•œ ๋ฐ์ดํ„ฐ๋Š” ROLLBACK ๋ถˆ๊ฐ€.
--๋ฐ์ดํ„ฐ ์‚ฝ์ž…(INSERT)
--INSERT INTO ํ…Œ์ด๋ธ”๋ช… (์ปฌ๋Ÿผ๋ช…๋“ค) VALUES (๊ฐ’๋“ค);
INSERT INTO MEMBER (MEM_NUM, MEM_NAME, MEM_AGE) VALUES (1, 'KIMJAVA', 20);
COMMIT;
INSERT INTO MEMBER (MEM_NUM, MEM_NAME, MEM_AGE) VALUES (2, 'KIMJAVA', 20);
ROLLBACK;

INSERT INTO MEMBER VALUES(2, 'kimJava', 30); --์ปฌ๋Ÿผ๋ช… ์•ˆ ๋„ฃ์–ด๋„ ๊ฐ€๋Šฅ
INSERT INTO MEMBER VALUES(3, 'kimjaVa', 30); 
INSERT INTO MEMBER VALUES(4, 'kimJAVA', 30);
COMMIT;

SELECT * FROM MEMBER;

'DB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ณ  db ์—ฐ๊ฒฐ ์‹ค์Šต  (0) 2023.02.17
DB3  (0) 2023.02.17
DB-java ์—ฐ๊ฒฐ  (0) 2023.02.16
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค2  (0) 2023.02.16
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB)  (0) 2023.02.15