Search

MySQL ์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ ์„ค์น˜ํ•˜๊ธฐ

MySQL ์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ ์„ค์น˜ํ•˜๊ธฐ ์˜์ƒ ์š”์•ฝ

์ด ์˜์ƒ์€ MySQL์—์„œ ๋‹ค์–‘ํ•œ ์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ)๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊นƒํ—ˆ๋ธŒ์—์„œ ์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ๋ฅผ ํด๋ก (clone) ๋ฐ›๊ณ , MySQL ์ปค๋งจ๋“œ๋ผ์ธ์—์„œ SQL ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ค์น˜ ํ›„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ฐ„๋‹จํ•œ ์กฐํšŒ ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

1.
์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ ์†Œ๊ฐœ์™€ ํด๋ก  ๋ฐ›๊ธฐ [00:00:12]
2.
MySQL ์ปค๋งจ๋“œ๋ผ์ธ์—์„œ SQL ํŒŒ์ผ ์‹คํ–‰ํ•˜๊ธฐ [00:04:03]
3.
๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • [00:07:43]
4.
์„ค์น˜ ์™„๋ฃŒ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™•์ธํ•˜๊ธฐ [00:05:30, 00:17:50]
5.
์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ฐ„๋‹จ ์กฐํšŒ ์‹ค์Šต [00:27:08]
6.
๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง(์—ญ๊ณตํ•™) ๊ฐœ๋… ์†Œ๊ฐœ [00:36:04]

์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ ์†Œ๊ฐœ์™€ ํด๋ก  ๋ฐ›๊ธฐ [00:00:12]

โ€ข
MySQL ์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ๋ž€?
โ—ฆ
๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ˆ์ œ๋“ค๋กœ, ์˜ํ™” ๋Œ€์—ฌ์ , ์ง์› ๊ด€๋ฆฌ, ๋™๋ฌผ์› ๊ด€๋ฆฌ ๋“ฑ ๋‹ค์–‘ํ•œ ์ฃผ์ œ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด์š”.
โ€ข
๊นƒํ—ˆ๋ธŒ์—์„œ ์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ ์ €์žฅ์†Œ๋ฅผ ํด๋ก (clone) ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
โ—ฆ
ํด๋ก  ๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ์€ ์ธํ„ฐ๋„ท์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ๋‚ด ์ปดํ“จํ„ฐ๋กœ ๋ณต์‚ฌํ•ด ์˜ค๋Š” ๊ฒƒ์„ ๋งํ•ด์š”.
โ€ข
VS Code์—์„œ ํด๋ก  ๋ฐ›์€ ํด๋”๋ฅผ ์—ด์–ด SQL ํŒŒ์ผ๋“ค์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

MySQL ์ปค๋งจ๋“œ๋ผ์ธ์—์„œ SQL ํŒŒ์ผ ์‹คํ–‰ํ•˜๊ธฐ [00:04:03]

โ€ข
MySQL ์ปค๋งจ๋“œ๋ผ์ธ ํด๋ผ์ด์–ธํŠธ์— ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
source [ํŒŒ์ผ๊ฒฝ๋กœ]ย ๋ช…๋ น์–ด๋กœ SQL ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
โ—ฆ
์˜ˆ:ย source C:/path/to/sakila-movie-schema.sql
โ€ข
SQL ํŒŒ์ผ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ(ํ…Œ์ด๋ธ” ์ƒ์„ฑ)์™€ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋‘ ๊ฐ€์ง€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์—ฌ๋Ÿฌ ์Šคํ‚ค๋งˆ ์ค‘ย sakilaย (์˜ํ™” ๋Œ€์—ฌ์ )์™€ย employeesย (์ง์› ๊ด€๋ฆฌ) ์˜ˆ์ œ๋ฅผ ์ฃผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • [00:07:43]

โ€ข
SQL ํŒŒ์ผ ์‹คํ–‰ ์ค‘ "ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์—†๋‹ค"๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ถ€์กฑ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
โ€ข
ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: MySQL ์ปค๋งจ๋“œ๋ผ์ธ ํด๋ผ์ด์–ธํŠธ๋ฅผย ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜์„ธ์š”.
โ€ข
๋˜ํ•œ, MySQL ์‹คํ–‰ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์œˆ๋„์šฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜(PATH)์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
โ—ฆ
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์–ด๋””์„œ๋“ ย mysqlย ๋ช…๋ น์–ด๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.

์„ค์น˜ ์™„๋ฃŒ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™•์ธํ•˜๊ธฐ [00:05:30, 00:17:50]

โ€ข
์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด MySQL ํด๋ผ์ด์–ธํŠธ๋‚˜ VS Code์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ƒˆ๋กœ๊ณ ์นจ ํ›„ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(sakila,ย employees)๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
ํ…Œ์ด๋ธ”๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋“ค์–ด๊ฐ”๋Š”์ง€ ์กฐํšŒํ•ด ๋ด…๋‹ˆ๋‹ค.
โ€ข
์˜ˆ๋ฅผ ๋“ค์–ด,ย employeesย ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ์ง์›๋“ค์˜ ์ด๋ฆ„, ์ž…์‚ฌ์ผ, ๊ธ‰์—ฌ, ๋ถ€์„œ ์ •๋ณด ๋“ฑ์ด ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ฐ„๋‹จ ์กฐํšŒ ์‹ค์Šต [00:27:08]

โ€ข
๊ฐ ํ…Œ์ด๋ธ”์˜ ์—ญํ• ๊ณผ ์ปฌ๋Ÿผ(์—ด) ์„ค๋ช…:
โ—ฆ
departments(๋ถ€์„œ),ย employees(์ง์›),ย titles(์ง์ฑ…),ย salaries(๊ธ‰์—ฌ) ๋“ฑ
โ€ข
SQL ๋ช…๋ น์–ดย SELECT DISTINCT๋ฅผ ์‚ฌ์šฉํ•ด ์ค‘๋ณต ์—†์ด ํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ฐ’๋งŒ ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
โ—ฆ
์˜ˆ:ย SELECT DISTINCT title FROM titles;
โ€ข
๋ถ€์„œ๋ณ„ ์ง์› ๋งค๋‹ˆ์ € ์ •๋ณด, ์ž…์‚ฌ์ผ, ๊ธ‰์—ฌ ๋“ฑ ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ ์กฐํšŒ ์˜ˆ์‹œ๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง(์—ญ๊ณตํ•™) ๊ฐœ๋… ์†Œ๊ฐœ [00:36:04]

โ€ข
๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์ด๋ž€?
โ—ฆ
์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ถ„์„ํ•ด์„œ ์„ค๊ณ„๋„(๋ฐ์ดํ„ฐ ๋ชจ๋ธ)๋กœ ๋˜๋Œ๋ฆฌ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
โ—ฆ
๋ณดํ†ต์€ ์„ค๊ณ„ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค์ง€๋งŒ, ์—ญ๊ณตํ•™์€ ๊ทธ ๋ฐ˜๋Œ€ ๊ณผ์ •์ด์—์š”.
โ€ข
MySQL ์›Œํฌ๋ฒค์น˜์—์„œ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
๋‹ค์Œ ์˜์ƒ์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋ผ๊ณ  ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

์ด ์˜์ƒ์—์„œ๋Š” MySQL ์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ๋ฅผ ๊นƒํ—ˆ๋ธŒ์—์„œ ํด๋ก  ๋ฐ›๊ณ , MySQL ์ปค๋งจ๋“œ๋ผ์ธ์—์„œย sourceย ๋ช…๋ น์–ด๋กœ SQL ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์„ ์นœ์ ˆํ•˜๊ฒŒ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ , ๊ฐ„๋‹จํ•œ SQL ์กฐํšŒ๋„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ํŒ๋„ ์•Œ๋ ค์ฃผ์–ด ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๋„๋ฅผ ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง ๊ฐœ๋…๋„ ์†Œ๊ฐœํ•˜๋ฉฐ, ์‹ค์Šต ์ค€๋น„๋ฅผ ๋งˆ์นฉ๋‹ˆ๋‹ค.
์ด์ œ ์—ฌ๋Ÿฌ๋ถ„๋„ MySQL ์ƒ˜ํ”Œ ์Šคํ‚ค๋งˆ๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ค์Šต์„ ์‹œ์ž‘ํ•ด ๋ณด์„ธ์š”!