c o d i n g . . ๐Ÿ‰/MySQL

[์ƒํ™œ์ฝ”๋”ฉ] Nodejs๋กœ Database ๋‹ค๋ฃจ๊ธฐ(1)

H J 2021. 7. 19. 17:40

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

 

database๋Š” ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ด€๊ณ„ํ˜• database(Oracle, Mysql, Sql server)์™€ ๊ทธ ์™ธ์˜ ๋‹ค์–‘ํ•œ NoSQL๋กœ ๋‚˜๋‰œ๋‹ค.

 

 

MySQL ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ

 

https://bitnami.com/stack/wamp

 

WAMP

Bitnami WAMP Stack provides a complete, fully-integrated and ready to run WAMP development environment. In addition to PHP, MySQL and Apache, it includes FastCGI, OpenSSL, phpMyAdmin, ModSecurity, SQLite, ImageMagick, xDebug, Xcache, OpenLDAP, ModSecurity,

bitnami.com

์ด๊ณณ์—์„œ apache, MySQL, PHP๋ฅผ ํ•œ ๋ฒˆ์— ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ MySQL์„ ๋”ฐ๋กœ ์„ค์น˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค!!

 

๋‚˜๋Š” ์ „์— ์ƒํ™œ์ฝ”๋”ฉ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ์ด๊ฑธ ๋‹ค์šด๋ฐ›์•„๋†“๊ณ  MySQL๋ฅผ ๋”ฐ๋กœ ๋˜ ์„ค์น˜ํ–ˆ๋”๋‹ˆ ์ด์ƒํ•ด์ ธ์„œ ๊ฒจ์šฐ๊ฒจ์šฐ ๊ตฌ๊ธ€๋ง ํ•ด์„œ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹คใ… ใ… 

 

์ด๋ ‡๊ฒŒ manager-windows ํŒŒ์ผ์„ ์—ด์–ด์„œ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค!

 

database๋Š” ์—ฐ๊ด€๋œ table๋“ค์˜ ํด๋”, ๋ถ„๋ฅ˜, ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

 

cmd ์ฐฝ์„ ์—ด์–ด์„œ mysql์— ์ ‘๊ทผํ•œ๋‹ค

password๋Š” ์„ค์น˜ํ•  ๋•Œ ์ž…๋ ฅํ–ˆ๋˜ ๋ฒˆํ˜ธ๋กœ!

Bitnami์˜ mysql์˜ bin์œผ๋กœ ๊ฐ€์„œ mysql -uroot -p๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด mysql์ด ์‹คํ–‰๋œ๋‹ค

 

mysql ๋’ค์˜ -h ๋’ค์— ์ ‘๊ทผํ•  DB์˜ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๊ฑฐ๋‚˜ ์ƒ๋žตํ•ด์ค€๋‹ค(์ƒ๋žตํ•˜๋ฉด ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์˜ mysql๋กœ ์ ‘๊ทผ)

mysql ๋’ค์˜ -P ๋’ค์—๋Š” port ๋ฒˆํ˜ธ๋ฅผ ์จ์ฃผ๋ฉด ๋˜๊ณ  ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •๋œ port ๋ฒˆํ˜ธ(3306)์— ์ ‘์†๋œ๋‹ค

 

๋น„๋ฐ€๋ฒˆํ˜ธ๊นŒ์ง€ ์ž…๋ ฅ์„ ํ•œ ๊ฒฝ์šฐ DB server๊นŒ์ง€ ์ ‘๊ทผ์„ ํ•œ ๊ฒƒ์ด๋‹ค

 

๊ทธ๋ฆฌ๊ณ  table์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„  DB๊ฐ€ ์žˆ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— DB๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค

 

 

DB ์ƒ์„ฑํ•˜๊ธฐ

CREATE DATABASE o2 CHARACTER SET utf8 COLLATE utf8_general_ci;

cmd ์ฐฝ์— ์ด๋ ‡๊ฒŒ ์ž…๋ ฅ์„ ํ•ด์ฃผ๋ฉด o2๋ผ๋Š” DB๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค

 

๊ทธ๋ฆฌ๊ณ  DB๊ฐ€ ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ๋ณด๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด์ค€๋‹ค

SHOW DATABASES;

 

 

ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ

 

o2๋ผ๋Š” ์ด๋ฆ„์˜ table์˜ ์ ‘๊ทผ์„ ํ•ด๋ณด๋ฉด ์•„์ง ์•„๋ฌด๊ฒƒ๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋œจ๊ฒŒ ๋œ๋‹ค

 

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์จ์„œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ด์ฃผ๊ณ  SHOW TABLES;๋ฅผ ์ด์šฉํ•ด์„œ ํ™•์ธํ•ด์ค€๋‹ค

CREATE TABLE `topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `description` text NOT NULL,
  `author` varchar(30) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

์•„๊นŒ์™€ ๋‹ค๋ฅด๊ฒŒ topic์ด๋ผ๋Š” table ์ƒ์„ฑ!

 

 

INSERT : table์— data ์‚ฝ์ž…ํ•˜๊ธฐ

INSERT INTO topic (title, description, author) VALUES('JavaSript', 'JavaScript is...', 'name');

INSERT๋ฅผ ์ด์šฉํ•ด์„œ topic์ด๋ผ๋Š” table์— title: JavaScript, description: JavaScript is..., author: name์ด๋ผ๋Š” data๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค

 

์ •๋ณด๋ฅผ ๋„ฃ์–ด์ค„ ๋•Œ ๋งค์นญ์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ์ˆœ์„œ๋ฅผ ๋งž์ถ”์–ด ์ž…๋ ฅํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค

 

 

SELECT : table์˜ data ๊ฐ€์ ธ์˜ค๊ธฐ

SELECT * FROM topic;

SELECT๋ฅผ ์ด์šฉํ•ด์„œ topic์ด๋ผ๋Š” table์—์„œ ๋ชจ๋“  ํ–‰์„ ๊ฐ€์ ธ์˜จ๋‹ค๋Š” ๋œป์ด๋‹ค

 

์œ„์—์„œ DB๋ฅผ ๋งŒ๋“ค ๋•Œ `id` int(11) NOT NULL AUTO_INCREMENT ์ด๋ ‡๊ฒŒ id๋Š” ์ž๋™์ƒ์„ฑ๋˜๋„๋ก ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— data๋ฅผ ๋„ฃ์–ด์ค„ ๋•Œ id์˜ ๊ฐ’์„ ๋”ฐ๋กœ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•„๋„ id ๊ฐ’์ด ์ž๋™ ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค

 

๋˜ ํ•˜๋‚˜์˜ ํ–‰์„ ๋ฝ‘์•„์˜ค๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค

SELECT * FROM topic WHERE id=2;

 

๋”๋ณด๊ธฐ
์ด๋ ‡๊ฒŒ row๋ฅผ ์ถ”๊ฐ€ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค

 

UPDATE : table์˜ data ์ˆ˜์ •ํ•˜๊ธฐ

UPDATE topic SET title='npm' WHERE id=2;

UPDATE๋ฅผ ์‚ฌ์šฉํ•ด์„œ topic์ด๋ผ๋Š” table์˜ 2๋ฒˆ์งธ ํ–‰์˜ title์„ npm์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค

 

UPDATE topic SET title='npm', description='Node package manager' WHERE id=2;

์ด๋ ‡๊ฒŒ ,๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์—ฌ๋Ÿฌ data๋ฅผ ํ•œ ๋ฒˆ์— ๋ฐ”๊ฟ€ ์ˆ˜๋„ ์žˆ๋‹ค

์ˆ˜์ •ํ•  ๋•Œ WHERE id์˜ ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๋ฐ”๋€Œ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์ฃผ์˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค!!!!!

 

 

DELETE : table์˜ data ์‚ญ์ œํ•˜๊ธฐ

DELETE FROM topic WHERE id=2;

DELETE๋ฅผ ์‚ฌ์šฉํ•ด์„œ topic์ด๋ผ๋Š” table์—์„œ id ๊ฐ’์ด 2์ธ ํ–‰์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค

์ด ๋•Œ๋„ WHERE id ๊ฐ’์„ ์„ค์ •ํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค!!!!!

ํ•ญ์ƒ ์„œ๋ฒ„์—์„œ data๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ๋•Œ๋Š” ๋งค์šฐ ๋งค์šฐ ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค!

 

 

์ด๋ฒˆ ๊ธ€์€ ์—ฌ๊ธฐ๊นŒ์ง€!!