๋ชฉ๋ก๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ/Database (7)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Codesquad] ์ˆ˜์—… ์ •๋ฆฌ - ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ € stored procedure

์ˆ˜์—… ์ •๋ฆฌ - ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ € stored procedure ๋ชจ๋ฅด๋ฉด ์ด์ƒํ•˜์ง€๋งŒ ๊ตณ์ด ๊ณต๋ถ€ํ•  ํ•„์š”๋Š” ์—†๋Š”..?.. ํ•˜์ง€๋งŒ ์ค‘์š”ํ•œ..!!.. sql ๋ช…๋ น์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ์–ธ์ (declarative) (what) ๋ช…๋ น์ด๋‹ค. DB์—์„œ '์ ˆ์ฐจ์  ๋ช…๋ น(imperative) (how)'์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ DB์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ ํ•œ ๋งˆ๋””๋กœ DB์— ํ”„๋กœ๊ทธ๋žจ์„ ์ €์žฅํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ €๋Š” DB์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— MySQL ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„ ๋‚จ์•„ ์žˆ๋‹ค. ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…๋ฅ˜ ์Šคํ† ์–ด๋“œ ํ•จ์ˆ˜ ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ ธ ํŠธ๋ฆฌ๊ฑฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ์˜ ์žฅ์  ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๊ฐ์†Œ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฟผ๋ฆฌ ๋‚ ๋ ค์•ผ ํ•˜๋Š” ๊ฑธ ํ•œ ๋ฒˆ์œผ..

[DB] ํ‚ค, ๊ธฐ๋ณธ ํ‚ค(Primary Key, PK)์™€ ์™ธ๋ž˜ ํ‚ค(Foreign Key, FK)

Key ์Šˆํผํ‚ค super key : ํ•ด๋‹น ๊ฐœ์ฒด๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” attribute์˜ ''์ง‘ํ•ฉ''. [์ฃผ๋ฏผ๋ฒˆํ˜ธ ์•ž์ž๋ฆฌ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ ๋’ท์ž๋ฆฌ, ์ด๋ฆ„] ํ›„๋ณดํ‚ค candidate key : ์Šˆํผํ‚ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ. ์Šˆํผํ‚ค์—์„œ ๊ตฐ๋”๋”๊ธฐ๋ฅผ ์ œ๊ฑฐํ•œ ๊ฒƒ. (์ˆ˜ํ•™์  ์ •์˜) ''๋ชจ๋“  ๋‹ค๋ฅธ attribute๋“ค์„ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” attribute'' ์Šˆํผํ‚ค์˜ ๊ตฌ์„ฑ attribute ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ œ๊ฑฐํ•˜๋ฉด ์Šˆํผํ‚ค๊ฐ€ ์•„๋‹Œ ๊ฒƒ. ํ›„๋ณดํ‚ค ์ค‘์— ํ•˜๋‚˜๊ฐ€ PK๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. [์ฃผ๋ฏผ๋ฒˆํ˜ธ ์•ž์ž๋ฆฌ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ ๋’ท์ž๋ฆฌ, ์ด๋ฆ„]์—์„œ [์ฃผ๋ฏผ๋ฒˆํ˜ธ ์•ž์ž๋ฆฌ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ ๋’ท์ž๋ฆฌ]๊ฐ€ ํ›„๋ณดํ‚ค์— ํ•ด๋‹นํ•œ๋‹ค. ๊ธฐ๋ณธํ‚ค primary key : ์—ฌ๋Ÿฌ ํ›„๋ณดํ‚ค ์ค‘ ๋Œ€ํ‘œ์ ์ธ ํ‚ค ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋กœ ๋งŒ๋“ ..

[DB] 1:1, 1:N, N:M ๊ด€๊ณ„

[DB] 1:1, 1:N, N:M ๊ด€๊ณ„ ์ด ๊ธ€์„ ๋ณด๊ณ  ์š”์•ฝ ์ •๋ฆฌํ•จ. ์›๋ณธ์ด ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ 1:N๊ด€๊ณ„๋ฅผ ์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ข€ ์ฐพ์•„๋ณด์•˜๋‹คใ…  ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ '๊ด€๊ณ„' ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—”ํ‹ฐํ‹ฐ๋ผ๋ฆฌ ๊ด€๊ณ„๋ฅผ ๋งบ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๊ณ„ํ˜•์ด๋ผ๋Š” ๋ง์ด ๋ถ™์€ ๊ฒƒ์ด๋‹ค. ์—”ํ‹ฐํ‹ฐ Entity : DB์— ํ‘œํ˜„ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์œ ํ˜•/๋ฌดํ˜•์˜ ๊ฐ์ฒด๋กœ์„œ ์„œ๋กœ ๊ตฌ๋ณ„๋˜๋Š” ๊ฒƒ. ๊ด€๊ณ„ Relationship : ๋‘ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์„œ๋กœ ๊ด€๋ จ์ด ์žˆ์„ ๋•Œ. 1:1, 1:N, N:M ๊ด€๊ณ„๋ฅผ ๋งบ์„ ์ˆ˜ ์žˆ๋‹ค. 1:1 ๊ด€๊ณ„ ์—”ํ‹ฐํ‹ฐ A๊ฐ€ ์ƒ๋Œ€ ์—”ํ‹ฐํ‹ฐ B์™€ ๋‹จ ํ•˜๋‚˜์˜ ๊ด€๊ณ„๋งŒ ๊ฐ–๋Š” ๊ฒƒ. (์—”ํ‹ฐํ‹ฐB๋„ ์—”ํ‹ฐํ‹ฐA์™€ ๋‹จ ํ•˜๋‚˜์˜ ๊ด€๊ณ„๋งŒ ๊ฐ–๋Š”๋‹ค) ex) ์šฐ๋ฆฌ๋‚˜๋ผ์—์„œ์˜ ๊ฒฐํ˜ผ ์ œ๋„(์ผ๋ถ€์ผ์ฒ˜์ œ) 1:N ๊ด€๊ณ„ ์—”ํ‹ฐํ‹ฐ A๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ƒ๋Œ€ ์—”..

[MySQL] CRUD - INSERT, SELECT, UPDATE, DELETE / JOIN

์ด ๊ธ€์€ ์ธํ”„๋Ÿฐ ์ƒํ™œ์ฝ”๋”ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. MySQL CRUD CRUD = ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฃผ์š” 4๊ฐ€์ง€ ๊ธฐ๋Šฅ. → Create ๋ฐ์ดํ„ฐ ์ƒ์„ฑ, Read ๋ฐ์ดํ„ฐ ์กฐํšŒ, Update ๋ฐ์ดํ„ฐ ์ˆ˜์ •, Delete ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์ด ์ค‘์—์„œ๋„ DB๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์€? Create์™€ Read. ์–ด๋–ค ๋ถ„์•ผ(ํšŒ๊ณ„, ์—ญ์‚ฌ ๋“ฑ)์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜์ •๊ณผ ์‚ญ์ œ ๊ธฐ๋Šฅ์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋„ ํ•œ๋‹ค. โ€ป DESC ํ…Œ์ด๋ธ”์ด๋ฆ„; : ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ช…๋ น์–ด. Create : SQL์˜ INSERT ๊ตฌ๋ฌธ ํ‘œ์— ํ–‰์„ '์‚ฝ์ž…'ํ•œ๋‹ค๋Š” ์ ์—์„œ INSERT๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. auto_increment ์ธ ๊ฐ’๋งŒ ์ œ์™ธํ•˜๊ณ  ํ•ญ๋ชฉ๋“ค์„ ์ ์–ด๋„ฃ์œผ๋ฉด ๋œ๋‹ค. → INSERT INTO ํ…Œ์ด๋ธ”์ด๋ฆ„ (..

[MySQL] MySQL ๊ธฐ๋ณธ

์ด ๊ธ€์€ ์ธํ”„๋Ÿฐ ์ƒํ™œ์ฝ”๋”ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. MySQL ์˜ ๊ตฌ์กฐ MySQL์˜ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. : ํ‘œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์Šคํ‚ค๋งˆ), ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„. MySQL๊ณผ ๊ฐ™์€ ๊ด€๊ณ„ํ˜•DB๋Š” _๋ฐ์ดํ„ฐ_๋ฅผ 'ํ‘œ table'๋กœ ์ €์žฅํ•œ๋‹ค. ํ‘œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋˜๋ฉด ํ‘œ๋ฅผ ์ •๋ฆฌํ•  ํ•„์š”๊ฐ€ ์ƒ๊ธด๋‹ค. = ํŒŒ์ผ์„ ํด๋”๋กœ ๋ฌถ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ. ์ด๋ ‡๊ฒŒ _์„œ๋กœ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ(ํ‘œ)๋ฅผ ๊ทธ๋ฃนํ•‘ํ•œ ๊ฒƒ_์„ '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค database'๋ผ๊ณ  ํ•œ๋‹ค. ('๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค'๋ผ๋Š” ๊ฐœ๋…๊ณผ ๋‹ฌ๋ฆฌ ๊ด€๊ณ„ํ˜•DB์—์„œ ํ‘œ๋ฅผ ๋ฌถ๋Š” ๋‹จ์œ„์ž„. ์ด๋ฆ„์ด ๊ฐ™์„ ๋ฟ) _MySQL_์—์„œ๋Š” ์ด๋Ÿฐ ํ˜ผ๋™์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค' ๋Œ€์‹  '์Šคํ‚ค๋งˆ schema' ๋ผ๊ณ ๋„ ํ•œ๋‹ค. ๋งŽ์•„์ง„ ์Šคํ‚ค๋งˆ..