๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ51

DB] ์ œ์•ฝ ์กฐ๊ฑด(constraint) 2 - ์ฐธ์กฐ ์ œ์•ฝ ์กฐ๊ฑด / ์—ฐ๊ณ„ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด / ์œ ๋‹ˆํฌ ์ œ์•ฝ ์กฐ๊ฑด / ์ฒดํฌ ์ œ์•ฝ ์กฐ๊ฑด ์ œ์•ฝ ์กฐ๊ฑด์€ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์•ฝํ•˜๋Š” ํŠน์ • ๊ทœ์น™์œผ๋กœ ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ๊ฒฝ์šฐ ํŠน์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์ฆ‰, ์ง€์ •๋œ ์กฐ๊ฑด์— ๋งž์ง€์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์ด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์ด ์œ ์ง€๋œ๋‹ค. ๊ธฐ๋ณธ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด ( PK ) - primary key NOT NULL ์ฐธ์กฐ ์ œ์•ฝ ์กฐ๊ฑด (์™ธ๋ž˜ํ‚ค, ์ฐธ์กฐํ‚ค , FK) - foreign key references ์—ฐ๊ณ„ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด - on delete cascade ์œ ๋‹ˆํฌ ์ œ์•ฝ ์กฐ๊ฑด ( ์œ ๋‹ˆํฌ ํ‚ค, ํ›„๋ณด ํ‚ค) - unique ์ฒดํฌ ์ œ์•ฝ ์กฐ๊ฑด - check 1. ์ฐธ์กฐ ์ œ์•ฝ ์กฐ๊ฑด - ์™ธ๋ž˜ ํ‚ค, ์ฐธ์กฐ ํ‚ค ๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. FOREIGN KEY (FK) - ์™ธ๋ž˜ ํ‚ค๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ๋ถ€๋ชจ - ์ž์‹ ๊ด€๊ณ„๊ฐ€ ๋œ๋‹ค. - ๋”ฐ๋ผ์„œ ๋ถ€๋ชจ ํ…Œ์ด.. 2022. 5. 6.
DB] ํŠธ๋žœ์ ์…˜(TRANSACTION) Transaction database ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ์—…๋ฌด ์ฒ˜๋ฆฌ์˜ ๋‹จ์œ„. ALL or Nothing, ์ž‘์—… ๋‚ด๋ถ€์˜ ๊ณผ์ •์ด ํ•˜๋‚˜๋ผ๋„ ์ž˜๋ชป๋˜๋ฉด ๋ชจ๋‘ ์ทจ์†Œ๋˜์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ์‹œ) 5000๋งŒ์›์„ ์†ก๊ธˆํ•˜๋Š” ๊ณผ์ •์€ '5000๋งŒ์›์„ A์˜ ๊ณ„์ขŒ์—์„œ ์ถœ๊ธˆ'ํ•˜๊ณ  'B์˜ ๊ณ„์ขŒ์— ์ž…๊ธˆ'ํ•˜๋Š” 2๋ฒˆ์˜ ๊ณผ์ •์œผ๋กœ ๋‚˜๋ˆ ์ ธ์žˆ๋‹ค. ๋งŒ์•ฝ 5000๋งŒ์›์ด 'A์˜ ๊ณ„์ขŒ์—์„œ ์ถœ๊ธˆ'ํ•˜๋Š” ๊ฒƒ ๊นŒ์ง„ ์„ฑ๊ณตํ–ˆ์œผ๋‚˜ 'B์˜ ๊ณ„์ขŒ์— ์ž…๊ธˆ'ํ•˜๋Š” ๊ฒƒ์„ ์‹คํŒจํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ 5000๋งŒ์›์€ ์–ด๋””๋กœ ๊ฐ”๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ 5000๋งŒ์›์„ 'A์—๊ฒŒ์„œ ์ถœ๊ธˆ'ํ•˜๋Š” ๊ฒƒ๊ณผ 'B์—๊ฒŒ ์ž…๊ธˆ'ํ•˜๋Š” ๊ฒƒ์€ ํŠธ๋žœ์ ์…˜์œผ๋กœ ๋ฌถ์–ด ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•ด์•ผ ์•ˆ์ „ํ•˜๋‹ค. ์ด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด rollback ๊ณผ commit ์ด๋‹ค. ์ž…๊ธˆ ์‹คํŒจ ํ•˜๋ฉด ์ถœ๊ธˆ๊นŒ์ง€ rollback, ์ถœ๊ธˆ๊ณผ ์ž…๊ธˆ ๋ชจ๋‘ .. 2022. 5. 2.
DB] ์ œ์•ฝ ์กฐ๊ฑด(constraint) 1 - ๊ธฐ๋ณธ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด / NOT NULL ์ œ์•ฝ ์กฐ๊ฑด์€ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์•ฝํ•˜๋Š” ํŠน์ • ๊ทœ์น™์œผ๋กœ ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ๊ฒฝ์šฐ ํŠน์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์ฆ‰, ์ง€์ •๋œ ์กฐ๊ฑด์— ๋งž์ง€์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์ด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์ด ์œ ์ง€๋œ๋‹ค. ๊ธฐ๋ณธ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด ( PK ) - primary key NOT NULL ์ฐธ์กฐ ์ œ์•ฝ ์กฐ๊ฑด (์™ธ๋ž˜ํ‚ค, ์ฐธ์กฐํ‚ค , FK) - foreign key references ์—ฐ๊ณ„ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด - on delete cascade ์œ ๋‹ˆํฌ ์ œ์•ฝ ์กฐ๊ฑด ( ์œ ๋‹ˆํฌ ํ‚ค, ํ›„๋ณด ํ‚ค) - unique ์ฒดํฌ ์ œ์•ฝ ์กฐ๊ฑด - check 1. ๊ธฐ๋ณธ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด (Primary Key, PK) - ํ…Œ์ด๋ธ” ๋‹น 1๊ฐœ๋งŒ ์กด์žฌ - ์ค‘๋ณต ํ—ˆ์šฉ ์•ˆํ•จ, NULL ํ—ˆ์šฉ ์•ˆํ•จ - ํ•œ ๊ฐœ์˜ ์ปฌ๋Ÿผ์— ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด์ง€๋งŒ.. 2022. 4. 28.
DB] DML 2 - SELECT DML (Data Manipulation Language) ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์— ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž… / ์ˆ˜์ • / ์‚ญ์ œ / ์กฐํšŒ ํ•˜๋Š” ๋ช…๋ น์–ด INSERT : ๋ฐ์ดํ„ฐ ์‚ฝ์ž… UPDATE : ๋ฐ์ดํ„ฐ ์ˆ˜์ • DELETE : ๋ฐ์ดํ„ฐ ์‚ญ์ œ UPSERT : INSERT or UPDATE SELECT : ๋ฐ์ดํ„ฐ ์กฐํšŒ SELECT : ๋ฐ์ดํ„ฐ ์กฐํšŒ 1. ํŠน์ • ์ปฌ๋Ÿผ ์กฐํšŒ SELECT * FROM [ํ…Œ์ด๋ธ” ๋ช…]; -- ํŠน์ • ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ์กฐํšŒํ•œ๋‹ค. 1) ์‚ฐ์ˆ ํ‘œํ˜„, ๋ณ„์นญ(ALIAS) salary * 12 ๋˜๋Š” salary / 10000 ๋“ฑ๊ณผ ๊ฐ™์ด ์‚ฐ์ˆ ํ‘œํ˜„ ๊ฐ€๋Šฅ ๋ณต์žกํ•œ ์ปฌ๋Ÿผ๋ช…์˜ ๊ฒฝ์šฐ ๋ณ„์นญ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. [๋ณต์žกํ•œ ์ปฌ๋Ÿผ๋ช…] AS [๋ณ„์นญ] 2) ๋ฌธ์ž์—ด ํ•ฉ์น˜๊ธฐ (CONCAT) CONCAT(ํ•ฉ์น , ์ปฌ๋Ÿผ, ๋ฌธ์ž.. 2022. 4. 28.
DB] DML 1 - INSERT / UPDATE / DELETE / UPSERT DML (Data Manipulation Language) ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์— ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž… / ์ˆ˜์ • / ์‚ญ์ œ / ์กฐํšŒ ํ•˜๋Š” ๋ช…๋ น์–ด INSERT : ๋ฐ์ดํ„ฐ ์‚ฝ์ž… UPDATE : ๋ฐ์ดํ„ฐ ์ˆ˜์ • DELETE : ๋ฐ์ดํ„ฐ ์‚ญ์ œ UPSERT : ์ž…๋ ฅ๋˜๋Š” KEY๊ฐ€ ์ค‘๋ณต์ผ ๊ฒฝ์šฐ UPDATE, ์•„๋‹ ๊ฒฝ์šฐ INSERT SELECT : ๋ฐ์ดํ„ฐ ์กฐํšŒ 1. ๋ฐ์ดํ„ฐ ์‚ฝ์ž… (INSERT) INSERT INTO [ํ…Œ์ด๋ธ”๋ช…] ([์ปฌ๋Ÿผ๋ช…]) VALUES ([์ปฌ๋Ÿผ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’]); ๊ฐ ์ปฌ๋Ÿผ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’๋“ค์„ ์ปฌ๋Ÿผ ์ˆœ์„œ๋Œ€๋กœ ์จ์ค€๋‹ค. ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ค„ ๋• ์ปฌ๋Ÿผ ์ž๋ฆฌ์— * ์„ ์จ์ฃผ๋ฉด ๋œ๋‹ค. ํ•˜์ง€๋งŒ DB๋Š” ํ˜ผ์ž ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ปฌ๋Ÿผ๋ช…์„ ๋ชจ๋‘ ์จ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๊ณ , * ์„ ์‚ฌ์šฉํ•˜๋ฉด valu.. 2022. 4. 28.
DB] DDL(๋ฐ์ดํ„ฐ ์ •์˜์–ด) / ํ…Œ์ด๋ธ” root ์—์„œ ํ•ด์ค„ ์ผ์ด ๋๋‚ฌ์œผ๋‹ˆ root๊ฐ€ ์žˆ๋Š” localhost ๋ผ๋Š” ๋ฐ๋ฒ  ๋ง๊ณ  ๋‹ค๋ฅธ ๋ฐ๋ฒ ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ทธ ๊ณณ์—์„œ web_user ๋ผ๋Š” ์‚ฌ์šฉ์ž๋กœ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ ๋„ฃ๊ณ  ๋นผ๊ณ  ์ฟผ๋ฆฌ๋ฌธ ์—ฐ์Šต์„ ํ•ด๋ณด์ž. ์ƒˆ๋กœ์šด Database ์ƒ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค( ์ž๋ฐ”์—์„œ ํŒจํ‚ค์ง€) ์˜ ํ…Œ์ด๋ธ”์€ ์ž๋ฐ”์—์„œ์˜ ํด๋ž˜์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. ํ…Œ์ด๋ธ” ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ๋Š” DDL(๋ฐ์ดํ„ฐ ์ •์˜์–ด) - CREATE / ALTER / DROP ๋กœ ํ•œ๋‹ค. 1. ํ…Œ์ด๋ธ” ์ƒ์„ฑ ํ…Œ์ด๋ธ” ์ƒ์„ฑ (CREATE) CREATE TABLE [ํ…Œ์ด๋ธ” ์ด๋ฆ„]( [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐ ํƒ€์ž…] [์‚ฌ์ด์ฆˆ] ); [์ปฌ๋Ÿผ๋ช…] [๋ฐ์ดํ„ฐ ํƒ€์ž…] [์‚ฌ์ด์ฆˆ] ์€ ํ•œ ์„ธํŠธ. ํ…Œ์ด๋ธ”์— ๋„ฃ์„ ์ปฌ๋Ÿผ๋ผ๋ฆฌ๋Š” ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ๋งˆ์ง€๋ง‰ ์ปฌ๋Ÿผ ๋’ค์—๋Š” ์ฝค๋งˆ๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค. ์ฟผ๋ฆฌ๋ฌธ ๋งˆ์ง€๋ง‰์— ์„ธ๋ฏธ์ฝœ๋ก .. 2022. 4. 28.