Search

MySQL ๊ธฐ์ดˆ ๊ฐ€์ด๋“œ

MySQL ๊ธฐ์ดˆ ๊ฐ€์ด๋“œ ์š”์•ฝ

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

๋ชฉ์ฐจ

1.
MySQL ๊ณ„์ • ์ƒ์„ฑ๊ณผ ๊ถŒํ•œ ๋ถ€์—ฌ [00:00:20]
2.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์Šคํ‚ค๋งˆ) ์ƒ์„ฑํ•˜๊ธฐ [00:15:35]
3.
ํ…Œ์ด๋ธ” ์ƒ์„ฑ๊ณผ ์ปฌ๋Ÿผ ์ •์˜ [00:19:06]
4.
๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ (INSERT) [00:51:25]
5.
๋ฐ์ดํ„ฐ ์กฐํšŒ (SELECT) [01:00:25]
6.
๋ฐ์ดํ„ฐ ์ˆ˜์ • (UPDATE) [01:04:07]
7.
๋ฐ์ดํ„ฐ ์‚ญ์ œ (DELETE) ๋ฐ ์ „์ฒด ์‚ญ์ œ (TRUNCATE) [01:07:08]
8.
ํ…Œ์ด๋ธ” ์ˆ˜์ • (ALTER) - ์ปฌ๋Ÿผ ์ถ”๊ฐ€/์‚ญ์ œ [01:07:58]
9.
ํŠธ๋žœ์žญ์…˜ ์ดํ•ด์™€ ์‹ค์Šต (START, ROLLBACK, COMMIT) [01:14:48]

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 ์ž…๋ฌธ์ž์—๊ฒŒ ๊ฐ•๋ ฅ ์ถ”์ฒœํ•˜๋Š” ์˜์ƒ์ž…๋‹ˆ๋‹ค!