7. MySQL
7. MySQL
7.1 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋?
๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ๋ฐ ์กฐ์ ํ ์ ์๋ ์์คํ -> DBMS
RDBMS : MySQL
NoSQL : MongoDB
7.2 MySQL ์ค์นํ๊ธฐ
๋์ปค๋ก ๋์ฒด
7.3 DB SQL ์ค์น
์ํฌ๋ฒค์น ๋์ Datagrip์ด๋ DBeaver(๋ฌด๋ฃ) ์ถ์ฒ ์ํฌ๋ฒค์น ์๋ต
Datagrip : https://www.jetbrains.com/datagrip/
DBeaver : https://dbeaver.io/
7.4 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ํ
์ด๋ธ ์์ฑํ๊ธฐ
์๋ฃํ
INT : ์ ์์๋ฏธ. ์์๊น์ง ์ ์ฅ -> FLOAT, DOUBLE ์ฌ์ฉ
VARCHAR : ๊ฐ๋ณ๊ธธ์ด. ๋ช๋ฐฑ์ ์ด๋ด
TINYINT : -127 ~ 128
TEXT : ๊ธด๊ธ ์ ์ฅ
DATETIME : ๋ ์ง ๋ฐ ์๊ฐ์๋ ํ ์ ๋ณด. ๋ ์ง๋ง -> DATE, ์๊ฐ -> TIME
7.5 CRUD ์์
ํ๊ธฐ (์์ฑ, ์ฝ๊ธฐ, ์์ , ์ญ์ )
C : Create. ์์ฑ
insert into table values (๊ฐ,...)
R : Read. ์ฝ๊ธฐ
select * from table
U : Update. ์์
update table set field1 = x, field2 = y ..
D : Delete. ์ญ์
delete from table where ~
7.6 ์ํ๋ผ์ด์ฆ ์ฌ์ฉํ๊ธฐ
ORM : ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฆด๋ ์ด์ ๋งคํ
์๋ฐ์คํฌ๋ฆฝํธ ๊ตฌ๋ฌธ -> SQL๋ก ๋ฐ๊ฟ์ค
๋ชจ๋ ์ค์น
config.json ๋ด์ฉ
operatorsAliases : ๋ณด์์ ์ทจ์ฝํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ง ์ฌ๋ถ (false์ ๋ ฅ : ์ฌ์ฉ์ํจ)
4๋ ์ ๋ณด : username, password, database, host ์ ๋ณด ์๋ง๊ฒ ์ ๋ ฅ
models/user.js
user ์ ๋ณด
sequlize.define ๋ฉ์๋๋ก ๋ชจ๋ธ ์ ์. ์ํ๋ผ์ด์ฆ์ MySQL ์๋ฃํ์ ์ฝ๊ฐ ์์ด
MySQL | ์ํ๋ผ์ด์ฆ |
VARCHAR | STRING |
INT | INTEGER |
TINYINT | BOOLEAN |
DATETIME | DATE |
ํ ์ด๋ธ๋ช ๋ณต์ํ | ๋ชจ๋ธ๋ช ๋จ์ํ |
์ ์ธ์ ํ ์ด๋ธ์ต์
paranoid : timestamps๊ฐ true์ธ ๊ฒฝ์ฐ๋ง ์ฌ์ฉ ๊ฐ๋ฅ, deletedAt ์ปฌ๋ผ์ด ์ถ๊ฐ๋จ. ์ญ์ ์ ์ญ์ ๋ ๋ ์ง๊ฐ ์ ๋ ฅ๋จ (์ญ์ ํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๋จ๊ฒจ๋๋ ์ด์ ๋ ๋ฐฑ์ ๋ฐ ํ์คํ ๋ฆฌ ๊ด๋ฆฌ ๋๋ฌธ)
underscored : createdAt, updatedAt, deleteAt ์ปฌ๋ผ๊ณผ ์ํ๋ผ์ด์ฆ๊ฐ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ ๊ด๊ณ ์ปฌ๋ผ๋ค์ ์ด๋ฆ์ ์ค๋ค์ดํฌ์ผ์ด์ค ํ์์ผ๋ก ๋ณ๊ฒฝ ํด์ค. ์ค๋ค์ดํฌ์ผ์ด์ค๋ ๋๋ฌธ์ ๋์ _๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์. ex : createdAt -> created_at
tableName : ํ ์ด๋ธ ์ด๋ฆ์ ๋ค๋ฅธ๊ฒ์ผ๋ก ์ค์ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉ. ์ํ๋ผ์ด์ฆ๋ ์๋์ผ๋ก ์ฒซ๋ฒ์งธ ์ธ์(๋ชจ๋ธ๊ฐ)๊ฐ์ ๋ณต์ํ์ผ๋ก ๋ง๋ค์ด ํ ์ด๋ธ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํจ. user -> users, comment -> comments
1:N ๊ด๊ณ ํํ hasMany๋ฉ์๋ ์ฌ์ฉ. foreignKey ์์ฑ์ผ๋ก ๊ฐ ์ผ์น. sourceKey ํค๊ฐ(id), targetKey ํค๊ฐ(id)
1:1 ๊ด๊ณ ํํ hasOne ๋ฉ์๋ ์ฌ์ฉ. foreignKey ์์ฑ์ผ๋ก ๊ฐ ์ผ์น. sourceKey ํค๊ฐ(id), targetKey ํค๊ฐ(id)
N:M ๊ด๊ณ ํํ (๋ค๋๋ค) belongsToMany ๋ฉ์๋ ์ฌ์ฉ. through ์์ฑ์ ์ค๊ฐ ๊ด๊ณ ํ ์ด๋ธ ์ด๋ฆ ์ด๋ผ๊ณ ๋ณด๋ฉด๋ ๋ฏ.
get+๋ชจ๋ธ์ด๋ฆ ๋ณต์ํ
์ํ๋ผ์ด์ฆ ์ฟผ๋ฆฌ ์์๋ณด๊ธฐ
์ํ๋ผ์ด์ฆ๋ง์ ๋ฐฉ์ ๋ฐํ : ํ๋ก๋ฏธ์ค async/await ๊ฐ์ด ์ฌ์ฉ ๊ฐ๋ฅ
order : ์ ๋ ฌ๋ฐฉ์
attributes : select ์ปฌ๋ผ ๋ช ์
์ํ๋ผ์ด์ฆ์ OP -> ์คํผ๋ ์ดํฐ
Last updated