๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ป Computer Science53

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] joinํ•  ๋•Œ on ๊ณผ where์˜ ์กฐ๊ฑด์ ˆ ์ฐจ์ด(์„ฑ๋Šฅ, ์†๋„ ์ฐจ์ด) ํ•ต์‹ฌ on: join ์ „์— ์กฐ๊ฑด์„ ํ•„ํ„ฐ๋ง where: join ํ›„์— ์กฐ๊ฑด์„ ํ•„ํ„ฐ๋ง ์˜ˆ์‹œ `ON` ์ ˆ๊ณผ `WHERE` ์ ˆ์€ SQL์—์„œ ์กฐ์ธ ์—ฐ์‚ฐ ์‹œ์— ์กฐ๊ฑด์„ ์ง€์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ ˆ์ž…๋‹ˆ๋‹ค. JOIN์„ ์ด์šฉํ•  ๋• ์กฐ๊ฑด์ ˆ์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์— ์ฐจ์ด๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋ฉด ์ฐธ๊ณ  ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด on์—์„œ์˜ ์กฐ๊ฑด๊ณผ where์—์„œ์˜ ์กฐ๊ฑด ์ฐจ์ด๋ฅผ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. `users` ํ…Œ์ด๋ธ” (user_id, name, email) `orders` ํ…Œ์ด๋ธ” (order_id, user_id, name, total_amount) # CASE 1) SELECT * FROM users a, orders b WHERE a.user_id = b.user_id and a.name = b.name and.. 2023. 12. 19.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ์„ฑ๋Šฅ ๊ด€์ ์—์„œ ๋ณธ JOIN (์†๋„ ๊ฐœ์„ ) ์•ž์˜ ํฌ์ŠคํŒ…์—์„œ JOIN์„ ํ•˜๋Š” ์ด์œ ์™€ SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ์ˆœ์„œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. JOIN ์ˆœ์„œ์˜ ์ค‘์š”์„ฑ์€ ์ฟผ๋ฆฌ ์ตœ์ ํ™”์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. JOIN ์ˆœ์„œ์˜ ์ค‘์š”์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์–ด๋–ค ํ…Œ์ด๋ธ”์„ ๋จผ์ € ์ฝ๊ณ  ์กฐ์ธํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š”๋ฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. JOIN ์ˆœ์„œ๋ฅผ ์ตœ์ ํ™”ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์ด ๋” ํšจ์œจ์ ์ธ ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์ „์ฒด์ ์ธ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœ JOIN ์˜ˆ์‹œ ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” A์™€ B๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. A ํ…Œ์ด๋ธ”์€ 100๊ฐœ์˜ ํ–‰์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  B ํ…Œ์ด๋ธ”์€ 100,000๊ฐœ์˜ ํ–‰์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ํƒ€์ด๋ธ”์€ ๊ณตํ†ต๋œ ์ปฌ๋Ÿฐ์ธ `id`๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์กฐ์ธ๋ฉ๋‹ˆ๋‹ค. SELECT * FROM A INNER JOIN .. 2023. 12. 19.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ์ˆœ์„œ(JOIN, ON, FROM, GROUP BY ๋“ฑ) ์ฟผ๋ฆฌ๋ฌธ์€ ๋ฌธ๋ฒ•์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ์‹คํ–‰ ์†๋„๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๋ฌธ์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ž‘์„ฑํ•˜๋ฉด ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์‹คํ–‰ ์ˆœ์„œ FROM: ์–ด๋Š ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ๊ฐ€? WHERE: ์–ด๋–ค ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ๊ฐ€? GROUP BY: ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ทธ๋ฃนํ™” ์‹œํ‚ฌ ๊ฒƒ์ธ๊ฐ€? HAVING: ๊ทธ๋ฃนํ™”๋œ ๋ฐ์ดํ„ฐ์—์„œ ์–ด๋–ค ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ๊ฐ€? SELECT: ์–ด๋–ค ์ปฌ๋Ÿผ์„ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ๊ฐ€? ORDER BY: ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ•  ๊ฒƒ์ธ๊ฐ€? (์˜ค๋ฆ„์ฐจ์ˆœ or ๋‚ด๋ฆผ์ฐจ์ˆœ) ์ž์„ธํ•œ ์‹คํ–‰ ์ˆœ์„œ FROM : ๊ฐ ํ…Œ์ด๋ธ” ํ™•์ธ ON : ์กฐ์ธ ์กฐ๊ฑด ํ™•์ธ JOIN : ํ…Œ์ด๋ธ” ์กฐ์ธ (๋ณ‘ํ•ฉ) WHERE : ๋ฐ์ดํ„ฐ ์ถ”์ถœ ์กฐ๊ฑด ํ™•์ธ GROUP BY : ํŠน์ • ์นผ๋Ÿผ์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™” HAVING : ๊ทธ๋ฃนํ™” ์ดํ›„ ๋ฐ์ดํ„ฐ ์ถ”.. 2023. 12. 18.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ์ธ๋ฑ์Šค(Index) ๋ž€? ์ธ๋ฑ์Šค(Index) ๋ž€? ์ธ๋ฑ์Šค(Index)๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŠน์ • ์—ด(์นผ๋Ÿผ)์˜ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ๋‚ด์˜ ํŠน์ • ์—ด์— ๋Œ€ํ•œ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ฒ€์ƒ‰ ๋ฐ ์กฐํšŒ ์ž‘์—…์„ ๋” ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. Index๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  Index๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ table์˜ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ๋†’์—ฌ์ฃผ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ RDBMS(๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์—์„œ๋Š” B+Tree๊ตฌ์กฐ๋กœ ๋œ index๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. index๋Š” ์ฑ…๋งˆ๋‹ค ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€์— ์žˆ๋Š” ์ƒ‰์ธ(index)๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ฑ…์—์„œ ์–ด๋–ค ์šฉ์–ด๋‚˜ ๋‹จ์–ด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ฒซ ํŽ˜์ด์ง€๋ถ€ํ„ฐ ๋ ํŽ˜์ด์ง€๊นŒ์ง€ ์ „์ฒด๋ฅผ ํ›‘์ง€ ์•Š์•„๋„(Full Table .. 2023. 11. 29.
728x90
๋ฐ˜์‘ํ˜•