MySQL ๊ฐ์ฒด - ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ
์ด๋ธ, ๋ทฐ ์ฝ๊ฒ ์ดํดํ๊ธฐ
์ด๋ฒ ์์์์๋ MySQL์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๊ฐ์ฒด์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ
์ด๋ธ, ๋ทฐ์ ๋ํด ์ฝ๊ณ ์์ธํ๊ฒ ์ค๋ช
ํด ์ค๋๋ค. MySQL์ด ๋ฌด์์ธ์ง๋ถํฐ ์์ํด์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ, ํ
์ด๋ธ ๊ตฌ์กฐ์ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๋ทฐ(View)์ ๊ฐ๋
๊ณผ ํ์ฉ๋ฒ๊น์ง ์ฐจ๊ทผ์ฐจ๊ทผ ์๋ ค์ค๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
8.
MySQL๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๊ฐ [00:00:13]
โข
MySQL์ ์คํ์์ค ๊ธฐ๋ฐ์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(RDBMS)์
๋๋ค.
โข
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋, ๋ฐ์ดํฐ๋ฅผ ํ(ํ
์ด๋ธ) ํํ๋ก ๊ตฌ์กฐํํด์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ
์ ๋งํด์.
โข
MySQL์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ์ฌ์ฉํ ์ ์๊ณ , ํ์ค SQL ๋ฌธ๋ฒ์ ์ง์ํ๋ฉฐ, ๋ค์ํ ์ด์์ฒด์ ์์ ์คํ๋ฉ๋๋ค.
โข
์๋ฅผ ๋ค์ด, ๋ง๋ฆฌ์DB๋ MySQL ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ์
๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ๋ฐฉ๋ฒ [00:02:05]
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ:ย CREATE DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;ย ๋ช
๋ น์ด๋ก ๋ง๋ญ๋๋ค.
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ:ย USE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;ย ๋ช
๋ น์ด๋ก ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํด ์์
ํ ์ ์์ด์. ๋งค๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๋ถ์ด์ง ์์๋ ๋ฉ๋๋ค.
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ:ย ALTER DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
์ต์
;์ผ๋ก ๋ฌธ์ ์ธ์ฝ๋ฉ(์บ๋ฆญํฐ์
), ์ ๋ ฌ ๋ฐฉ์(์ฝ๋ ์ดํธ) ๋ฑ์ ๋ฐ๊ฟ ์ ์์ด์.
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญ์ :ย DROP DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;์ผ๋ก ์ญ์ ํ๋ฉฐ, ์ญ์ ์ ์๋ ๊ผญ ๋ฐฑ์
์ ๊ถ์ฅํฉ๋๋ค.
ํ
์ด๋ธ์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ์์ฑ ๋ฐฉ๋ฒ [00:10:09]
โข
ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ณธ ๋จ์๋ก, ํ๊ณผ ์ด(2์ฐจ์ ํ) ํํ์
๋๋ค.
โข
๊ฐ ์ด์ ํน์ ๋ฐ์ดํฐ ํ์
(์: INT, VARCHAR, TIMESTAMP ๋ฑ)์ ๊ฐ์ง๋ฉฐ,ย PRIMARY KEY(๊ธฐ๋ณธ ํค)๋ก ๊ฐ ํ์ ๊ณ ์ ํ๊ฒ ์๋ณํฉ๋๋ค.
โข
ํ
์ด๋ธ ์์ฑ ์์:
CREATE TABLE ํ
์ด๋ธ๋ช
(
์ปฌ๋ผ๋ช
๋ฐ์ดํฐํ์
์ ์ฝ์กฐ๊ฑด,
...
);
SQL
๋ณต์ฌ
โข
์ ์ฝ์กฐ๊ฑด์๋ย NOT NULLย (๋น ๊ฐ ๋ถ๊ฐ),ย UNIQUEย (์ค๋ณต ๋ถ๊ฐ),ย DEFAULTย (๊ธฐ๋ณธ๊ฐ),ย PRIMARY KEYย ๋ฑ์ด ์์ต๋๋ค.
ํ
์ด๋ธ ์์ ๊ณผ ์ญ์ , ๋ฐ์ดํฐ ๊ด๋ฆฌ [00:12:28]
โข
ํ
์ด๋ธ ์์ :ย ALTER TABLE ํ
์ด๋ธ๋ช
์ผ๋ก ์ปฌ๋ผ ์ถ๊ฐ(ADD COLUMN), ์์ (MODIFY COLUMN), ์ญ์ (DROP COLUMN)๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
โข
ํ
์ด๋ธ ์ญ์ :ย DROP TABLE ํ
์ด๋ธ๋ช
;์ผ๋ก ํ
์ด๋ธ๊ณผ ๊ทธ ์์ ๋ฐ์ดํฐ ์ ์ฒด๋ฅผ ์ญ์ ํฉ๋๋ค.
โข
๋ฐ์ดํฐ ์ญ์ :ย TRUNCATE TABLE ํ
์ด๋ธ๋ช
;์ ํ
์ด๋ธ ๊ตฌ์กฐ๋ ์ ์งํ๋ฉด์ ๋ฐ์ดํฐ๋ง ๋ชจ๋ ์ญ์ ํ๋ ๋ช
๋ น์ด์
๋๋ค. ์ญ์ ํ ๋ณต๊ตฌ(๋กค๋ฐฑ)๋ ๋ถ๊ฐ๋ฅํ๋ ์ฃผ์ํ์ธ์.
๋ฐ์ดํฐ ์ญ์ ๋ช
๋ น์ด โํธ๋ ์ผ์ดํธโ์ โ๋๋โ [00:13:48]
โข
TRUNCATE๋ ํ
์ด๋ธ ๋ด ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋น์ฐ๊ณ ์๋ ์ฆ๊ฐ ๋ฒํธ๋ ์ด๊ธฐํํฉ๋๋ค.
โข
DROP์ ํ
์ด๋ธ ์์ฒด๋ฅผ ์์ ํ ์ญ์ ํ๋ ๋ช
๋ น์ด๋ก, ๋ฐ์ดํฐ์ ๊ตฌ์กฐ ๋ชจ๋ ์ฌ๋ผ์ง๋๋ค.
โข
๋ ๋ค ์ ์คํ๊ฒ ์ฌ์ฉํด์ผ ํ๋ฉฐ, ์ญ์ ์ ๋ฐฑ์
์ ๊ผญ ํด์ผ ํฉ๋๋ค.
ํ
์ด๋ธ ์ค์ต๊ณผ ๋ณต์ฌ, ๋ฐฑ์
๋ฐฉ๋ฒ [00:26:31]
โข
๊ธฐ์กด ํ
์ด๋ธ์ ๋ณต์ฌํด์ ๋ฐฑ์
ํ
์ด๋ธ์ ๋ง๋ค ์ ์์ด์.
โข
์:ย CREATE TABLE ๋ฐฑ์
ํ
์ด๋ธ๋ช
AS SELECT * FROM ์๋ณธํ
์ด๋ธ๋ช
;
โข
ํ์ํ ์ปฌ๋ผ๋ง ์ ํํด์ ๋ณต์ฌํ ์๋ ์์ต๋๋ค.
โข
์ด๋ ๊ฒ ํ๋ฉด ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๊ฐ ๊ทธ๋๋ก ๋ณต์ฌ๋์ด, ํ
์ด๋ธ ๊ตฌ์กฐ ๋ณ๊ฒฝ ์ ๋ฐฑ์
์ฉ์ผ๋ก ์ ์ฉํฉ๋๋ค.
๋ทฐ(View)์ ๊ฐ๋
๊ณผ ํน์ง [00:36:52]
โข
*๋ทฐ(View)**๋ ํ๋ ์ด์์ ํ
์ด๋ธ์ด๋ ๋ค๋ฅธ ๋ทฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์งย ๊ฐ์ ํ
์ด๋ธ์
๋๋ค.
โข
์ค์ ๋ฐ์ดํฐ๋ ์ ์ฅํ์ง ์๊ณ , ๋ฏธ๋ฆฌ ์ ์ํ ๋ณต์กํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํ
์ด๋ธ์ฒ๋ผ ์กฐํํ ์ ์์ด์.
โข
๋ทฐ์ ์ฅ์ :
1.
๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ๋จ์ํ๊ฒ ๋ง๋ค์ด ์ค
2.
๋ฐ์ดํฐ ๋ณด์ ๊ฐํ (์: ๋ฏผ๊ฐํ ์ปฌ๋ผ์ ์จ๊ธฐ๊ณ ํ์ํ ์ปฌ๋ผ๋ง ๋ณด์ฌ์ค)
3.
๋ฐ์ดํฐ ์ง๊ณ ๋ฐ ์ฌ์ฌ์ฉ์ด ํธ๋ฆฌ
โข
์๋ฅผ ๋ค์ด, ์ ์ ํ
์ด๋ธ์์ ๋น๋ฐ๋ฒํธ ์ปฌ๋ผ์ ์จ๊ธฐ๊ณ ์ด๋ฆ๊ณผ ์ด๋ฉ์ผ๋ง ๋ณด์ฌ์ฃผ๋ ๋ทฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๋ทฐ ์์ฑ, ์์ , ์ญ์ ๋ฐฉ๋ฒ๊ณผ ์ค์ต [00:41:18]
โข
๋ทฐ ์์ฑ:ย CREATE VIEW ๋ทฐ๋ช
AS SELECT ... FROM ํ
์ด๋ธ๋ช
WHERE ...;
โข
๋ทฐ ์์ :ย ALTER VIEW ๋ทฐ๋ช
AS SELECT ...;๋ก ์ฟผ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ด์.
โข
๋ทฐ ์ญ์ :ย DROP VIEW ๋ทฐ๋ช
;
โข
๋ทฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ๋งค๋ฒ ์์ฑํ์ง ์๊ณ ๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.
โข
์ค์ต์์๋ ์ฌ์๊ณผ ๋งค๋์ ์ ๋ณด๋ฅผ ์กฐํํ๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ๋ทฐ๋ก ๋ง๋ค์ด, ๋์ค์ ๋ทฐ๋ง ์กฐํํด ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ์ป๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋ง๋ฌด๋ฆฌ ์์ฝ
์ด๋ฒ ์์์์๋ MySQL์ ๊ธฐ๋ณธ ๊ฐ์ฒด์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ
์ด๋ธ, ๋ทฐ๋ฅผ ์ฝ๊ณ ์์ธํ๊ฒ ๋ฐฐ์ ์ต๋๋ค.
โข
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ํฐ ๊ทธ๋ฆ,
โข
ํ
์ด๋ธ์ ๊ทธ ์์ ๋ฐ์ดํฐ๋ฅผ ํ๊ณผ ์ด๋ก ์ ์ฅํ๋ ํ,
โข
๋ทฐ๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํด ๋์ ๊ฐ์์ ํ
์ด๋ธ๋ก, ๋ณด์๊ณผ ํธ๋ฆฌํจ์ ๋์ฌ์ค๋๋ค.
์ดํดํ๊ธฐ ์ฝ๊ฒ ์ค์ต ์์ ๋ ํจ๊ป ๋ค๋ค์, ์ง์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ์คํํด ๋ณด๋ ๋ฐ ํฐ ๋์์ด ๋ ๊ฑฐ์์!
MySQL์ ์ฒ์ ๋ฐฐ์ฐ๋ ๋ถ๋ค๋ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ๋ผ ํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ๊ฐ ํจ์ฌ ์์ํด์ง ๊ฑฐ๋๋๋ค.
์ฆ๊ฑฐ์ด ์ฝ๋ฉ ๋์ธ์! 