MySQL ๊ธฐ์ด ๊ฐ์ด๋ ์์ฝ
์ด ์์์ MySQL์ ์ฒ์ ์ ํ๋ ๋ถ๋ค์ ์ํด ๊ณ์ ์์ฑ๋ถํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ
์ด๋ธ ์์ฑ, ๋ฐ์ดํฐ ์ถ๊ฐยท์กฐํยท์์ ยท์ญ์ , ๊ถํ ๋ถ์ฌ, ๊ทธ๋ฆฌ๊ณ ํธ๋์ญ์
๊น์ง ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ์ฝ๊ฒ ์ค๋ช
ํฉ๋๋ค. VSCode์ MySQL ์ํฌ๋ฒค์น ๋ฑ ๋๊ตฌ๋ฅผ ํ์ฉํ ์ค์ต๋ ํฌํจ๋์ด ์์ด ๋ฐ๋ผํ๊ธฐ ํธํด์.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
8.
9.
MySQL ๊ณ์ ์์ฑ๊ณผ ๊ถํ ๋ถ์ฌ [00:00:20]
โข
๊ณ์ ์์ฑ: MySQL์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฌ์ฉ์ ๊ณ์ ์ ๋ง๋ค์ด์ผ ํด์.ย CREATE USERย ๋ช
๋ น์ด๋ก ๊ณ์ ์ ๋ง๋ค๊ณ ,ย localhost(๋ด ์ปดํจํฐ)๋ ํน์ IP ์ฃผ์๋ก ์ ์ ์ ํ์ ์ค์ ํ ์ ์์ด์.
โข
๊ถํ ๋ถ์ฌ:ย GRANTย ๋ช
๋ น์ด๋ก ๊ณ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ
์ด๋ธ์ ๋ํ ๊ถํ์ ์ค๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํ๊ฑฐ๋ ๋ชจ๋ ๊ถํ์ ์ค ์๋ ์์ด์.
โข
๊ทธ๋ํธ ์ต์
: ๊ถํ์ ๋ฐ์ ์ฌ์ฉ์๊ฐ ๋ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ์ค ์ ์๋ ๊ถํ์ด์์. ๊ด๋ฆฌ์ ์ญํ ์ ์๊ฐํ๋ฉด ์ฌ์์.
โข
์ค์ต ํ: ๊ถํ ๋ถ์ฌ๋ ๋ณดํตย rootย ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก ํด์ผ ๋ฌธ์ ์์ด ๋ฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค(์คํค๋ง) ์์ฑํ๊ธฐ [00:15:35]
โข
MySQL์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ๋ย CREATE DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
ย ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด์.
โข
์คํค๋ง๋? ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ํ
์ด๋ธ, ์ปฌ๋ผ, ์ธ๋ฑ์ค ๋ฑ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ชจ์ ๋์ ๊ฐ๋
์ด์์.
โข
์์ฝ์ด ์ฃผ์: SQL ์์ฝ์ด(๋ช
๋ น์ด๋ก ์ฐ์ด๋ ๋จ์ด)๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
์ด๋ ํ
์ด๋ธ๋ช
์ผ๋ก ์ฐ๋ฉด ์ ๋์ง๋ง, ๊ผญ ์จ์ผ ํ๋ค๋ฉดย `๋ฐฑํฑ`์ผ๋ก ๊ฐ์ธ๋ฉด ๋ผ์.
ํ
์ด๋ธ ์์ฑ๊ณผ ์ปฌ๋ผ ์ ์ [00:19:06]
โข
ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํ(ํ๊ณผ ์ด) ๊ตฌ์กฐ์
๋๋ค.
โข
์ปฌ๋ผ๋ง๋ค ๋ฐ์ดํฐ ํ์
(์ซ์: INT, ๋ฌธ์์ด: VARCHAR ๋ฑ), ์ ์ฝ ์กฐ๊ฑด(๋ ํ์ฉ ์ฌ๋ถ, ๊ธฐ๋ณธ๊ฐ, ๊ธฐ๋ณธ ํค ๋ฑ)์ ์ง์ ํด์.
โข
์๋ ์ฆ๊ฐ(AUTO_INCREMENT): ๊ธฐ๋ณธ ํค ์ปฌ๋ผ์๋ง ์ธ ์ ์์ผ๋ฉฐ, ์ซ์๊ฐ 1์ฉ ์๋์ผ๋ก ์ฆ๊ฐํด์.
โข
VARCHAR(255): ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด๋ก, ์ต๋ 255๋ฐ์ดํธ๊น์ง ์ ์ฅ ๊ฐ๋ฅํด์. ์ค์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ ํฌ๊ธฐ๋งํผ ๊ณต๊ฐ์ ์ฌ์ฉํด ํจ์จ์ ์ด์์.
โข
CHAR: ๊ณ ์ ๊ธธ์ด ๋ฌธ์์ด๋ก, ํญ์ ์ง์ ํ ํฌ๊ธฐ๋งํผ ๊ณต๊ฐ์ ์ฐจ์งํด์.
โข
TEXT: ๊ธด ๋ฌธ์์ด ์ ์ฅ์ฉ์ผ๋ก ์ฉ๋ ์ ํ์ด ๊ฑฐ์ ์์ด์.
โข
ํ
์ด๋ธ ์์ฑ ์ ์ฝ๋ฉํธ๋ ๋ฌ์ ์ฉ๋ ์ค๋ช
๊ฐ๋ฅํด์.
๋ฐ์ดํฐ ์ถ๊ฐ (INSERT) [00:51:25]
โข
INSERT INTO ํ
์ด๋ธ๋ช
(์ปฌ๋ผ1, ์ปฌ๋ผ2, ...) VALUES (๊ฐ1, ๊ฐ2, ...)ย ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์.
โข
์ปฌ๋ผ์ ๋ชจ๋ ์ง์ ํ๊ฑฐ๋ ์ผ๋ถ๋ง ์ง์ ํ ์ ์์ด์. ์๋ ์ฆ๊ฐ ์ปฌ๋ผ์ ์๋ต ๊ฐ๋ฅ.
โข
์ค๋ฌด์์๋ ๋ชจ๋ ์ปฌ๋ผ์ ๋ช
ํํ ์ง์ ํ๋ ๋ฐฉ์์ ๊ถ์ฅํด์.
๋ฐ์ดํฐ ์กฐํ (SELECT) [01:00:25]
โข
SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด ORDER BY ์ปฌ๋ผ๋ช
ASC|DESCย ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํด์.
โข
๋ ๋ชจ๋ ์ปฌ๋ผ์ ์๋ฏธํด์.
โข
WHERE๋ ์กฐ๊ฑด์ ๊ฑธ์ด ํน์ ๋ฐ์ดํฐ๋ง ์กฐํํ ๋ ์ฌ์ฉํฉ๋๋ค.
โข
ORDER BY๋ ์ ๋ ฌ ๊ธฐ์ค์ ์ง์ ํ๋ฉฐ, ASC๋ ์ค๋ฆ์ฐจ์(๊ธฐ๋ณธ๊ฐ), DESC๋ ๋ด๋ฆผ์ฐจ์์ด์์.
๋ฐ์ดํฐ ์์ (UPDATE) [01:04:07]
โข
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ=๊ฐ, ... WHERE ์กฐ๊ฑด์ผ๋ก ํน์ ๋ฐ์ดํฐ๋ฅผ ์์ ํด์.
โข
์ฌ๋ฌ ์ปฌ๋ผ์ ๋์์ ์์ ํ ์ ์๊ณ , ์กฐ๊ฑด์ ์ง์ ํด ์ํ๋ ํ๋ง ๋ฐ๊ฟ์.
โข
์: ๊ธ๋ฒํธ 1๋ฒ ๋ฐ์ดํฐ์ ์์ ์ผ์๋ฅผ ํ์ฌ ์๊ฐ์ผ๋ก ๋ฐ๊พธ๊ธฐ.
๋ฐ์ดํฐ ์ญ์ (DELETE) ๋ฐ ์ ์ฒด ์ญ์ (TRUNCATE) [01:07:08]
โข
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด์ผ๋ก ํน์ ํ์ ์ญ์ ํด์.
โข
TRUNCATE TABLE ํ
์ด๋ธ๋ช
์ ํ
์ด๋ธ ๋ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ญ์ ํ๋ ๋ช
๋ น์ด๋ก, ๋ณต๊ตฌ๊ฐ ๋ถ๊ฐ๋ฅํด์.
โข
DELETE๋ ํธ๋์ญ์
(๋ณ๊ฒฝ ์ฌํญ ๋๋๋ฆฌ๊ธฐ)์ด ๊ฐ๋ฅํ์ง๋ง TRUNCATE๋ ๋ถ๊ฐ๋ฅํ๋ ์ฃผ์!
ํ
์ด๋ธ ์์ (ALTER) - ์ปฌ๋ผ ์ถ๊ฐ/์ญ์ [01:07:58]
โข
ALTER TABLE ํ
์ด๋ธ๋ช
ADD COLUMN ์ปฌ๋ผ๋ช
๋ฐ์ดํฐํ์
์ผ๋ก ์ปฌ๋ผ์ ์ถ๊ฐํด์.
โข
ALTER TABLE ํ
์ด๋ธ๋ช
DROP COLUMN ์ปฌ๋ผ๋ช
์ผ๋ก ์ปฌ๋ผ์ ์ญ์ ํ ์ ์์ด์.
โข
์ปฌ๋ผ ์ถ๊ฐ ์ ๊ธฐ๋ณธ๊ฐ, ๋ ํ์ฉ ์ฌ๋ถ, ์ฝ๋ฉํธ๋ ์ค์ ๊ฐ๋ฅํด์.
โข
DESC ํ
์ด๋ธ๋ช
ย ๋ช
๋ น์ด๋ก ํ
์ด๋ธ ๊ตฌ์กฐ๋ฅผ ํ์ธํ ์ ์์ด์.
ํธ๋์ญ์
์ดํด์ ์ค์ต (START, ROLLBACK, COMMIT) [01:14:48]
โข
ํธ๋์ญ์
์ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ํ๋์ ๋ฌถ์์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฐ๋
์ด์์.
โข
START TRANSACTION์ผ๋ก ์์ํ๊ณ , ์์
ํย COMMITํ๋ฉด ๋ณ๊ฒฝ์ฌํญ์ด ํ์ ๋ผ์.
โข
ROLLBACKํ๋ฉด ํธ๋์ญ์
๋ด ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ด ์ทจ์๋ผ์.
โข
์: ์๋ชป๋ ๋ฐ์ดํฐ ์ถ๊ฐ ํ ๋กค๋ฐฑ์ผ๋ก ๋ชจ๋ ์์๋ณต๊ตฌ ๊ฐ๋ฅ.
โข
ํธ๋์ญ์
๋๋ถ์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์์ ์ฑ์ ์ ์งํ ์ ์์ด์.
๋ง๋ฌด๋ฆฌ ์์ฝ
์ด ์์์ MySQL์ ๊ธฐ์ด๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ์๋ ค์ฃผ๋ ์น์ ํ ๊ฐ์ด๋์
๋๋ค. ๊ณ์ ์์ฑ๊ณผ ๊ถํ ๊ด๋ฆฌ๋ถํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ ์์ฑ, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ์กฐ์(์ถ๊ฐยท์กฐํยท์์ ยท์ญ์ )๊น์ง ๊ธฐ๋ณธ ๋ช
๋ น์ด์ ๊ฐ๋
์ ์ค์ต๊ณผ ํจ๊ป ์ฝ๊ฒ ์ตํ ์ ์์ด์. ํนํ ํธ๋์ญ์
์ ํตํด ๋ฐ์ดํฐ ์์ ์ฑ์ ํ๋ณดํ๋ ๋ฐฉ๋ฒ๊น์ง ๋ค๋ค ์ค๋ฌด์ ๊ผญ ํ์ํ ๋ด์ฉ์ ๋ด๊ณ ์์ต๋๋ค. MySQL ์
๋ฌธ์์๊ฒ ๊ฐ๋ ฅ ์ถ์ฒํ๋ ์์์
๋๋ค!