MySQL ์ํ ์คํค๋ง ์ค์นํ๊ธฐ ์์ ์์ฝ
์ด ์์์ MySQL์์ ๋ค์ํ ์ํ ์คํค๋ง(๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ์ ๋ฐ์ดํฐ)๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ฝ๊ฒ ์ค๋ช
ํฉ๋๋ค. ๊นํ๋ธ์์ ์ํ ์คํค๋ง๋ฅผ ํด๋ก (clone) ๋ฐ๊ณ , MySQL ์ปค๋งจ๋๋ผ์ธ์์ SQL ํ์ผ์ ์คํํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๋ค๋ฃน๋๋ค. ๋ํ ์ค์น ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ฐ๋จํ ์กฐํ ๋ฐฉ๋ฒ๋ ์๊ฐํฉ๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
์ํ ์คํค๋ง ์๊ฐ์ ํด๋ก ๋ฐ๊ธฐ [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 ์ํ ์คํค๋ง๋ฅผ ์ค์นํ๊ณ , ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ต์ ์์ํด ๋ณด์ธ์! 