230223(๋ชฉ)
๐ ์ฑ์ฅ์ผ์ง 3.1
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ ํค์๋ (1.0)
์ต๋ํ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ, ์ถํ์ ๋ณด๋ฉด์ ์ค์ค๋ก ์ค๋ช
๐ ๊ฒฝํ ์์ฃผ๋ก (2.0)
๋จ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ๋ณด๋ค ๋ฌด์์ ๋ฐฐ์ ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์งง๊ณ ๊ฐ๋จํ๊ฒ ์์ฑ
โ๏ธ ์ ํด์ง ํ ํ๋ฆฟ์ ๋ง์ถฐ์ (3.0)
ํค์๋, ๊ฒฝํ ๋ชจ๋ ์ข๋ค. ๋ค๋ง ๋งค์ผ ์์ฑํ๊ธฐ๋ก ๋ง์ ๋จน์๋งํผ ํต์ฌ๋ง ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํ ์ ์๊ฒ ํ ํ๋ฆฟ์ ์์ฑ (3.1) 230102๋ถํฐ ์์๋๋ ํ์ต์ ๊ดํ ๋ด์ฉ ์ถ๊ฐ
๐ ์ค๋์ ํค์๋
๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ์ ์งํฉ, ํํ DB(DataBase)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ฅ
๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ผ๊ณ ํ๋ฉด ๋ณดํต ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋งํ๋ค. - ๋ํ, ์๋ฐํ DB๋ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์๋ฏธํ๊ณ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ MySQL, MariaDB, MongoDB ๋ฑ์
DBMS(DataBase Management System)
์ด๋ค.
์ด๋ํฐ
- ์๋ก ๋ค๋ฅธ ์ ๊ธฐ, ๊ธฐ๊ณ ์ฅ์น๋ฅผ ์ฐ๊ฒฐํด์ ์๋ํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒฐํฉ๋๊ตฌ
- ๊ฐ ์ธ์ด์ ๋ง๋ db ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ํ์ฌ ๋ด๊ฐ ์ง ํ๋ก๊ทธ๋จ๊ณผ db๋ฅผ ์ฐ๊ฒฐํ๋ ์ด๋ํฐ๋ฅผ ๊ตฌํํ ์ ์๋ค.
DB Connection
- DB์ ๋ด๊ฐ ์์ฑํ๊ณ ์๋ ์ฝ๋(ํ๋ก๊ทธ๋จ)์ ์ฐ๊ฒฐํ๋ ๊ฒ
- ์ด๋ป๊ฒ ๋ณด๋ฉด ์ด๋ํฐ๋ฅผ ๊ตฌํํ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
npm i -D mysql mysql2
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: 'localhost',
user: 'jayden',
password: '1234',
port: 3306,
database: 'databasename',
});
// ๋ณดํต port๋ 3306์ ์ฌ์ฉํ์ง๋ง, ๋ง์ฝ ๋ก์ปฌ์ MySQL์ด ์ค์น๋์ด์๋ ์ํ๋ก
// docker์ mysql container๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค๋ฉด port๋ฅผ 3307๊ณผ ๊ฐ์ ๋น์ด์๋ ํฌํธ๋ฅผ ํ ๋นํด์ค์ผ ํ๋ค.
MySQL
- ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ RDBMS(Relational DBMS; ๊ด๊ณํ)์ผ๋ก ์ฌ ๋ง์ดํฌ๋ก์์คํ ์ฆ๊ฐ ๊ฐ๋ฐํ๊ณ ์ถํ ์ค๋ผํด์ ์ธ์๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์คํ ์์ค ๋ผ์ด์ผ์ค์ด์ง๋ง ์์ ์ ์ผ๋ก ์ฌ์ฉ ์, ์์ ์ฉ ๋ผ์ด์ผ์ค๋ฅผ ๊ตฌ์ ํด์ผํ๋ค.
- 15๋ ๋ 11์์ ๋ฐํ๋ 5.7๋ฒ์ ์ด ๋ฒ์ฉ์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ค.(๊ธ์์ฑ ๊ธฐ์ค 8.0๊น์ง ์ถ์)
SELECT
- DML(Data Manipulation Language)์ ์ํ๋ ์ฟผ๋ฆฌ๋ฌธ(๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ฟผ๋ฆฌ)
- AUTO COMMIT๋์ง ์๋๋ค.(์ฆ, ์ธ์ ๋ ๋กค๋ฐฑ์ด ๊ฐ๋ฅํ๋ค.)
- ํน์ ํ ์ด๋ธ์์ ์ํ๋ ์กฐ๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ค.
SELECT ์ปฌ๋ผ(ํ๋)๋ช
FROM ํ
์ด๋ธ๋ช
WHERE (์ด๋ค ์กฐ๊ฑด);
INSERT
- ๋ง์ฐฌ๊ฐ์ง๋ก DML์ ์ํ๋ ์ฟผ๋ฆฌ๋ฌธ
- ํ ์ด๋ธ์ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ค.
INSERT INTO ํ
์ด๋ธ๋ช
(์ปฌ๋ผ1, ์ปฌ๋ผ2, ์ปฌ๋ผ3...) VALUES (๊ฐ1, ๊ฐ2, ๊ฐ3...);
UPDATE
- ๋ง์ฐฌ๊ฐ์ง๋ก DML์ ์ํ๋ ์ฟผ๋ฆฌ๋ฌธ
- ํ ์ด๋ธ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ค.(WHERE์ ์ ์กฐ๊ฑด๋ฌธ์ ๋ง์กฑํ๋ ๋ ์ฝ๋์ ๊ฐ์ ์์ ํ๋ค.)
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ1 = ๊ฐ1, ์ปฌ๋ผ2 = ๊ฐ2, ์ปฌ๋ผ3 = ๊ฐ3... WHERE ์ปฌ๋ผ = ํน์ ๊ฐ;
DELETE
- ๋ง์ฐฌ๊ฐ์ง๋ก DML์ ์ํ๋ ์ฟผ๋ฆฌ๋ฌธ
- ํ ์ด๋ธ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.
DELETE FROM ํ
์ด๋ธ๋ช
; // ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ค์ ์ ๋ถ ์ง์ด๋ค.
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์ปฌ๋ผ๋ช
= ๊ฐ; // WHERE์ ์ ํด๋นํ๋ ๋ ์ฝ๋๋ง ์ง์ด๋ค.
DROP, TRUNCATE์์ ์ฐจ์ด
DROP: ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๋ ๊ฒ ์๋๋ผ, ๊ทธ๋ฅ ํ ์ด๋ธ ์์ฒด๋ฅผ ํต์งธ๋ก ์ง์ฐ๋ ๊ฒ์ผ๋ก DDL์ ์ํ๋ค.(์ฆ, ์คํํ๋ฉด ๋กค๋ฐฑ์ด ์๋จ)
TRUNCATE: ํ ์ด๋ธ์ ์ด๊ธฐํํ๋ค. ์ผํ ๋ณด๋ฉด โDELETE FROM ํ ์ด๋ธ๋ช ;โ๊ณผ ๊ฐ์๋ณด์ด์ง๋ง, TRUNCATE์ DDL์ด๋ค. ์ฆ, ๋กค๋ฐฑ์ด ์๋๋ค.
์ฆ, DELETE๋ ํ ์ด๋ธ์ ์ ๋ถ ์ง์ฐ๋๋ผ๋ ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ก๊ทธ๋ก ์ ์ฅํด๋๋ ๋ฐ๋ฉด TRUNCATE๋ ์ง์ง ์์ ์ญ์ ์ฒ๋ผ ์ง์๋ฒ๋ฆฐ๋ค.
๊ทธ๋ฌ๋ฏ๋ก ํ์คํ๊ฒ ํ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๋ ๊ฑฐ๋ผ๋ฉด DELETE๋ณด๋ค TRUNCATE๊ฐ ๋ ์ข๋ค.(์์คํ ์ ์ธ ๋ถํ๊ฐ ์ ์)
์ฐธ๊ณ
- TCP School - MySQL ์๊ฐ
- DB, DBMS, SQL ๊ฐ๋
- MySQL, ๋์ปค๋ก ๋์ฐ๊ธฐ
- TCP School - MySQL ์ฟผ๋ฆฌ๋ค
- MySQL - ๋ฐ์ดํฐ ํ์ ์ ๋ฆฌ
- MySQL - 5.7 INTEGER TYPE
- MySQL - ํ ์ด๋ธ ๋ฐ์ดํฐ ์ญ์ : DELETE, TRUNCATE
๐ ์์ฝ ๋ฐ ํ๋ฃจ ๊ฐ๋จ ํ๊ณ
์ค๋ ์ ๋ง ์ค์ํ ๊ฐ๋
๋ค์ ๋ง์ด ์๊ฒ ๋์๋ค. ๋์ปค๋ก ๋์ฐ๋ ์ปจํ
์ด๋ ํฌํธ์ ๋ด ๋ก์ปฌ ํธ์คํธ ํฌํธ์์ ๊ด๊ณ, ๊ทธ๋ฆฌ๊ณ DB์ ์ง์ ์ ๊ทผํด์ ์ฝ๋๋ฅผ ์ง๋ ๊ฒ ์ด๋ค ์๋ฏธ์ธ์ง ๋ฑ๋ฑ..!
๋, ๋ฏธ์
์ ๊ตฌํํ๋ฉด์ ๊ณ์ ์ฟผ๋ฆฌ๋ฌธ์ ์ฐ์ตํ๊ฒ ๋ ๊ฑฐ ๊ฐ์์ ์ข์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํ๋ฉด ํ ์๋ก TypeORM์ ๋๋์ฒด ์ด๋ค๊ฑธ๊น ๊ถ๊ธํ๊ฒ ๋๋คโฆใ
๋๋ฌด ์์ฌ๋ถ๋ฆฌ์ง ์๋
๋ด๊ฐ ์๋ํด๋ณผ ์ ์๋ ์ ์์ ๋ค๋ค๋ด์ผ๊ฒ ๋ค..!
์ค๋์ ์ํ ์
- ๋ฏธ์ ๊ตฌํ ์๋ฃ ๋ฐ ๊ฐ๋ ์ ๋ฆฌ ์ ๋ง ์ด์ฌํ ํจ!!!
์ค๋์ ์์ฌ์ด ์
- ๋ฑํ ์๋ค :) ์ง๊ธ ๊ธ ์์ฑํ๋๋ผ ์ข ๋ฆ๊ฒ ์๋ ์ ..?