์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[Node.js] 7์žฅ MySQL

22-23/22-23 Node.js

by YUZ ์œ ์ฆˆ 2022. 11. 10. 10:43

๋ณธ๋ฌธ

728x90


๐Ÿ” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€?

๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅ, ์ฆ‰ ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ฒƒ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•.

์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ๊บผ์ง€๋”๋ผ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ด€๋ จ์„ฑ์„ ๊ฐ€์ง€๋ฉฐ, ์ค‘๋ณต์ด ์—†๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ์ด๋ฉฐ, ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์„  DBMS๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๐Ÿ“Œ DBMS์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ์•Œ์•„๋ณด์ž

DBMS๋Š” DataBase Management System์˜ ์ค„์ž„๋ง๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๊ณณ์— ๋ชจ์€ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“  ๋’ค ๊ทธ ์ €์žฅ์†Œ์— ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค. 

โœ… RDBMS

Relational DBMS, DBMS ์œ ํ˜• ์ค‘ ํ•˜๋‚˜๋กœ, ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. Oracle, MySQL, MSSQL ๋“ฑ์ด ์žˆ๋‹ค.

 

๐Ÿ” MySQL?

1995๋…„์— ๋ฐœํ‘œ๋œ ์˜คํ”ˆ ์†Œ์Šค RDBMS์ด๋‹ค. ์ƒ์ง• ๋™๋ฌผ์€ ๋Œ๊ณ ๋ž˜์ด๋‹ค. ๐Ÿฌ

MySQL์„ ๋ชจํƒœ๋กœ MariaDB๋ผ๋Š” RDBMS๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ํ˜„์žฌ ๋ฐฐํฌ๋œ ๋ฆฌ๋ˆ…์Šค๋Š” MySQL๊ณผ MariaDB๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

๋ธ”๋กœ๊ทธ, ๊ฒŒ์‹œํŒ ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด MySQL์„ ์ง€์›ํ•˜๊ณ  ์žˆ์œผ๋‚˜, Oracle ์‚ฌ์˜ Oracle DB๊ฐ€ ์ƒ๊ฒจ๋‚จ์œผ๋กœ์จ MySQL๊ณผ Oracle DB์˜ ๊ฒฝ์Ÿ์ด ์น˜์—ดํ•˜๋‹ค.

๐Ÿ“Œ ์žฌ๋ฏธ๋กœ ์•Œ์•„๋ณด๋Š” RDBMS ์ ์œ ์œจ

1์œ„ : Oracle DB

2์œ„ : MySQL

3์œ„ : MS SQL

4์œ„ : PostgreSQL

์ˆœ์œผ๋กœ ์„ธ๊ณ„ 4๋Œ€ RDBMS ์ ์œ ์œจ์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ์™ธ์—๋„ SQLite, MariaDB, IBM ์‚ฌ์˜ DB2, ๊ตญ์‚ฐ SW ํšŒ์‚ฌ์ธ ํ‹ฐ๋งฅ์Šค์†Œํ”„ํŠธ์‚ฌ์˜ ํ‹ฐ๋ฒ ๋กœ, Cubrid, INFORMIX, ALTIBASE HDB, XDM/RD, AIM, Firebird... ๋“ฑ ๋‹ค์–‘ํ•œ RDBMS๊ฐ€ ์žˆ๋‹ค.

๐Ÿ“Œ ๊ฐ™์ด ์„ค์น˜ํ•˜๋ฉด ์ข‹์€ ์›Œํฌ๋ฒค์น˜

์ฝ˜์†”๋กœ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๊ธฐ์—, ์›Œํฌ๋ฒค์น˜(MySQL Workbench)๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. https://dev.mysql.com/downloads/workbench/ ์—์„œ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๐Ÿ” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ

CREATE SCHEMA [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…] ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ์ด๋•Œ, SCHEMA(์Šคํ‚ค๋งˆ) ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋™์ผํ•œ ๊ฐœ๋…์ด๋‹ค.

use nodejs; ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๋ ฅํ•˜์—ฌ, nodejs ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•จ์„ MySQL์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

์ด์ œ, ํ…Œ์ด๋ธ”๋„ ์ƒ์„ฑํ•ด ๋ณด์ž.

๐Ÿ“Œ ํ…Œ์ด๋ธ”์€ ๋ญ”๊ฐ€์š”?

ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ‹€์„ ์˜๋ฏธํ•˜๋ฉฐ, ํ…Œ์ด๋ธ”์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ž…๋ ฅ๋  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์ž๋ฉด, ํ…Œ์ด๋ธ”์˜ ํ‹€์ด '๋ฐ”๋ณด' ๋ผ๋ฉด '๋ฐ”๋ณด ๊ณ ์–‘์ด'๋‚˜ '๋ฐ”๋ณด ๊ฐ•์•„์ง€'๋Š” ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ์œผ๋‚˜, '์ฒœ์žฌ ๋ณ‘์•„๋ฆฌ'๋Š” ๋“ค์–ด๊ฐ€์ง€ ๋ชปํ•œ๋‹ค.

CREATE TABLE [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช….ํ…Œ์ด๋ธ”๋ช…] ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ฉฐ, ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ปฌ๋Ÿผ์„ ์ƒ์„ฑํ•œ๋‹ค.

์ปฌ๋Ÿผ์—๋Š” ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์ด ์žˆ์œผ๋‹ˆ, ์ด์— ์œ ์˜ํ•˜์—ฌ ์ปฌ๋Ÿผ์„ ์ƒ์„ฑํ•ด ๋ณด์ž.

 

๐Ÿ” CRUD!

Create, Read, Update, Delete. ์ด ๋ชจ๋“  ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋ฅผ ๋ชจ์€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ์ž‘์—…์„ ๋ถ€๋ฅธ๋‹ค. 

๐Ÿ“Œ Create

INSERT INTO nodejs.users (name, age, married, comment) VALUES ('peep', 22, 0, 'kimpeep!');

์ด์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ๋ฉฐ, users ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ”์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ Read

SELECT * FROM nodejs.users;

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋ฉฐ, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ Update

UPDATE nodejs.users SET comment = '๊น€์‚ก!' WHERE id = 1;

1๋ฒˆ ๋กœ์šฐ์˜ comment๊ฐ€ ๊น€์‚ก! ์œผ๋กœ ์ˆ˜์ •๋œ๋‹ค. 

๐Ÿ“Œ Delete

DELETE FROM nodejs.users WHERE id = 1;

1๋ฒˆ ๋กœ์šฐ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋œ๋‹ค.

๐Ÿ” ์‹œํ€„๋ผ์ด์ฆˆ?

๋…ธ๋“œ์—์„œ MySQL ์ž‘์—…์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. Object-Relational Mapping์œผ๋กœ ๋ถ„๋ฅ˜๋˜๋ฉฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฆด๋ ˆ์ด์…˜์„ ๋งคํ•‘ํ•ด ์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค.

์•ž์„œ ์–ธ๊ธ‰ํ•œ ํƒ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€๋„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ์„ ์•Œ์•„์„œ SQL๋กœ ๋ณ€๊ฒฝํ•ด ์ค€๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค!

728x90

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ