Bibi's DevLog ๐Ÿค“๐ŸŽ

TIL - [20.09.24] Database, MySQL ์™„๊ฐ• ๋ฐ ๋‚ด์šฉ์ •๋ฆฌ ๋ณธ๋ฌธ

TIL

TIL - [20.09.24] Database, MySQL ์™„๊ฐ• ๋ฐ ๋‚ด์šฉ์ •๋ฆฌ

๋น„๋น„ bibi 2020. 9. 25. 00:55

์ถ”์ฒœ๋ฐ›์€ ์ธํ”„๋Ÿฐ ์ƒํ™œ์ฝ”๋”ฉ DATABASE 1&2 - MySQL ๊ฐ•์˜๋ฅผ ํ•˜๋ฃจ๋งŒ์— ๋“ค์—ˆ๋‹ค!
MySQL๊ฐ•์˜๋ฅผ ๋“ฃ๋Š” ๋ชฉ์ ์€ Juni์™€์˜ ํŒ€ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด.
๋‚˜๋Š” ์ŠคํŒŒ๋ฅดํƒ€์—์„œ mongoDB์‚ฌ์šฉ๋ฒ•๋งŒ ๋ฐฐ์› ์ง€๋งŒ, MySQL์ด ๋” ๋Œ€์ค‘์ ์ด๊ณ  ๋ฌด๋ฃŒ๋ผ๊ณ  ํ•ด์„œ ์ด๋ฒˆ ๊ธฐํšŒ์— ๊ด€๊ณ„ํ˜•DB์‚ฌ์šฉ๋ฒ•์„ ์ตํ˜€ ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

 

์•„๋ž˜๋Š” ์˜ค๋Š˜ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์š”์•ฝํ•œ ๊ฒƒ!

์ค‘๊ฐ„์— ๋…ธ์…˜์— ์ •๋ฆฌํ•œ ๊ฐ•์˜๋‚ด์šฉ์„ ๋ณต๋ถ™ํ•ด ์™”๋‹ค๐Ÿ˜…

๋‚˜๋„ ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์˜ ๊ตฌ๊ธ€๋ง์— ๋„์›€์ด ๋์œผ๋ฉด(?) ํ–ˆ๋Š”๋ฐ
๊ฐ•์˜๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์„œ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ ค๋„ ๋˜๋ƒ๊ณ  ๋ฌธ์˜ํ•ด ๋ณด๋‹ˆ ๊ดœ์ฐฎ๋‹ค๊ณ  ํ•œ๋‹ค!


๊ทธ๋ž˜์„œ ์•ž์œผ๋กœ๋Š” ๊ทธ๋ƒฅ ํ•„๊ธฐ๋ฅผ ๋ธ”๋กœ๊ทธ์— ํ•˜๊ณ , ๋ฐ”๋กœ ์—…๋กœ๋“œํ•ด์•ผ๊ฒ ๋‹ค!

 


 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (Database=DB)๋ž€ ?

  • ์ •๋ณด๊ธฐ์ˆ ์˜ ์‹ฌ์žฅ์ด๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ, ์ถœ๋ ฅ์„ ๋” ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅ.
  • ํ•ต์‹ฌ๊ธฐ๋Šฅ์€ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ(Input = ์ƒ์„ฑCreate, ์กฐํšŒUpdate, ์‚ญ์ œDelete) ๊ณผ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ(Output = ์กฐํšŒRead) ์ฆ‰ CRUD์ด๋‹ค.
  • ํŒŒ์ผ๊ณผ ๋‹ค๋ฅธ ์ ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐCRUD๊ฐ€ ๊ฐ€๋Šฅํ•ด, ์ž๋™ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ ๊ธฐ์ค€?
    • ํšŒ์‚ฌ์—์„œ / ๋™๋ฃŒ๊ฐ€ ์ด๋ฏธ ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค → ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ.
    • '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋žญํ‚น 2020' ๋“ฑ์œผ๋กœ ๊ตฌ๊ธ€๋งํ•ด ๋ณด๋ฉด ์ข‹๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‘ ์ข…๋ฅ˜, SQL๊ณผ NoSQL

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค = Relational Database, RDBMS(Relational DataBase Management System)
    • ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰/์—ด์ด ์žˆ๋Š” ํ‘œ ํ˜•์‹์œผ๋กœ ์ •๋ฆฌํ•ด ์ €์žฅ.
    • ์ •ํ˜•ํ™”๋˜์–ด ์žˆ์–ด ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ, ๋ฐ์ดํ„ฐ ๋ถ„์„์— ์œ ๋ฆฌ.
    • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์ˆ˜์ •, ์ถ”๊ฐ€์— ๋ถˆ๋ฆฌ.
    • MySQL, Oracle, SQL Server, PostgreSQL, DB2, Access ๋“ฑ์ด ์žˆ๋‹ค.
    • SQL: ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ํŠน์ˆ˜ ๋ชฉ์ ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.(์ถœ์ฒ˜ ์œ„ํ‚ค๋ฐฑ๊ณผ)
  • ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค = NoSQL
    • ๋ฐ์ดํ„ฐ๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ(ํ‚คkey : ๊ฐ’value) ํ˜•ํƒœ๋กœ ์ €์žฅ.
    • ์ž์œ ๋ฃŒ์šด ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ์ ์žฌ์— ์œ ๋ฆฌ
    • ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์— ์žˆ์–ด ๋ถˆ๋ฆฌ.

 

MySQL ์„ค์น˜

MySQL Community Edition ์œผ๋กœ ๊ฒ€์ƒ‰ ํ›„ ๋งํฌ ๋“ค์–ด๊ฐ€ ๋‹ค์šด๋กœ๋“œ - MySQL Community Server ๋‹ค์šด๋กœ๋“œ ํ›„ ์„ค์น˜.

[Bitnami WAMP](MySQL์„ค์น˜๋ฅผ ์‰ฝ๊ฒŒ ํ•ด ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ)
https://bitnami.com/download/files/stacks/wampstack/7.4.10-0/bitnami-wampstack-7.4.10-0-windows-x64-installer.exe?with_popup_skip_signin=1

์—์„œ ๋‹ค์šด๋กœ๋“œ. 
์„ค์น˜ ์ค‘ root, password, re-enter
: mysql์€ ๋‹ค์ค‘์‚ฌ์šฉ์žDB์ž„(์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” DB). ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž ์ค‘์—์„œ๋„ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์‚ฌ์šฉ์ž=root(๊ด€๋ฆฌ์ž) ๊ฐ€ ์‚ฌ์šฉํ•  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •.

๊ฐ ํ™˜๊ฒฝ๋ณ„ MySQL ์„ค์น˜

์œˆ๋„์šฐ ๊ธฐ์ค€ )
์œ„ ์ˆœ์„œ๋Œ€๋กœ ์„ค์น˜ ํ›„

BItnami WAMP Stack Manager ๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฒ€์ƒ‰ํ•ด์„œ ์‹คํ–‰. (์œ„์น˜๋Š” C๋“œ๋ผ์ด๋ธŒ - Bitnami - wampstack - 'manager-windows')
Manage Servers ํƒญ - MySQL Database ์ดˆ๋ก๋ถˆ์ธ์ง€ ํ™•์ธ. ๋งŒ์•ฝ ์ดˆ๋ก๋ถˆ์ด ์•„๋‹ˆ๋ผ๋ฉด ์„ ํƒ ํ›„ ์˜ค๋ฅธ์ชฝ start ํด๋ฆญ.

์„ค์น˜ ํ›„ MySQL ์‹คํ–‰๋ฐฉ๋ฒ•

์œˆ๋„์šฐํ‚ค+R → cmd ์ž…๋ ฅ → cd C:\Bitnami\wampstack-7.4.10-0\mysql\bin → dir → mysql -uroot -p → ์„ค์น˜์‹œ ์„ค์ •ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ .'

Welcome to the MySQL monitor ๋ฌธ๊ตฌ๊ฐ€ ๋œจ๊ณ  ๋งจ ์•„๋ž˜์— mysql> ๊ฐ€ ๋‚˜์˜ค๋ฉด ์ž˜ ์„ค์น˜๋œ ๊ฒƒ์ž„!

(wampstack ~ ์€ ์‚ฌ์šฉ ๋ฒ„์ „์— ๋”ฐ๋ผ ์ˆซ์ž ๋‹ค๋ฅด๊ฒŒ ์ž…๋ ฅ)  ๋ฐฑ์Šฌ๋ž˜์‹œ ์ž…๋ ฅ์ด ์•ˆ๋˜๋ฉด ๋Œ€์‹  ์—”ํ„ฐํ‚ค ์œ„์—์žˆ๋Š” ๋ฒ„ํŠผ(๏ฟฆ) ๋ˆ„๋ฅด๋ฉด ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. (= cd C:๏ฟฆBitnami๏ฟฆwampstack-7.4.10-0๏ฟฆmysql๏ฟฆbin )


MySQL ์˜ ๊ตฌ์กฐ

MySQL์˜ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. : ํ‘œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์Šคํ‚ค๋งˆ), ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„.

  1. MySQL๊ณผ ๊ฐ™์€ ๊ด€๊ณ„ํ˜•DB๋Š” ๋ฐ์ดํ„ฐ๋ฅผ '**ํ‘œ table'**๋กœ ์ €์žฅํ•œ๋‹ค.

  2. ํ‘œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋˜๋ฉด ํ‘œ๋ฅผ ์ •๋ฆฌํ•  ํ•„์š”๊ฐ€ ์ƒ๊ธด๋‹ค. = ํŒŒ์ผ์„ ํด๋”๋กœ ๋ฌถ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ.
    ์ด๋ ‡๊ฒŒ ์„œ๋กœ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ(ํ‘œ)๋ฅผ ๊ทธ๋ฃนํ•‘ํ•œ ๊ฒƒ์„ '**๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค database'**๋ผ๊ณ  ํ•œ๋‹ค.
    ('๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค'๋ผ๋Š” ๊ฐœ๋…๊ณผ ๋‹ฌ๋ฆฌ, ๊ด€๊ณ„ํ˜•DB์—์„œ ํ‘œ๋ฅผ ๋ฌถ๋Š” ๋‹จ์œ„์ž„. ์ด๋ฆ„์ด ๊ฐ™์„ ๋ฟ)
    MySQL์—์„œ๋Š” ์ด๋Ÿฐ ํ˜ผ๋™์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค' ๋Œ€์‹  '์Šคํ‚ค๋งˆ schema' ๋ผ๊ณ ๋„ ํ•œ๋‹ค.

  3. ๋งŽ์•„์ง„ ์Šคํ‚ค๋งˆ๋“ค์„ ์ €์žฅํ•˜๋Š” ๋‹จ์œ„๋ฅผ '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ database server' ๋ผ๊ณ  ํ•œ๋‹ค.

(์šฐ๋ฆฌ๊ฐ€ MySQL ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•œ ๊ฒƒ = ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ๋ฅผ ์„ค์น˜ํ•œ ๊ฒƒ์ด๋‹ค.)

 

MySQL ์„œ๋ฒ„ ์ ‘์†

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ํšจ์šฉ์ด ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ '๋ณด์•ˆ'์ด๋‹ค.

DB๋Š” ํŒŒ์ผ๊ณผ ๋‹ฌ๋ฆฌ ์ž์ฒด์  ๋ณด์•ˆ์ฒด๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ๋” ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ถŒํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์–ด ์–ด๋–ค ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค&ํ‘œ์— ๋Œ€ํ•œ CRUD๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ , ์–ด๋–ค ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ํŠน์ • ํ‘œ์— ๋Œ€ํ•œ ์ˆ˜์ • ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

-u : user(์‚ฌ์šฉ์ž)์˜ ์•ฝ์ž์ด๋‹ค.
-uroot : root์‚ฌ์šฉ์ž = ๊ด€๋ฆฌ์ž๋กœ ์ ‘์†ํ•˜๊ฒ ๋‹ค. โ€ป ๊ด€๋ฆฌ์ž๋Š” ๋ชจ๋“  ๊ถŒํ•œ์ด ์—ด๋ ค์žˆ์Œ. ๋”ฐ๋ผ์„œ ํ•ญ์ƒ root๋กœ ์ ‘์†ํ•ด DB๋ฅผ ๋‹ค๋ฃจ๊ธฐ๋ณด๋‹จ ํ‰์†Œ์—๋Š” ๋ณ„๋„์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋‹ค๋ฃจ๊ณ , ์ค‘์š”ํ•  ๋•Œ๋งŒ root๋กœ ์ ‘์†ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

-p : passwordํŒจ์Šค์›Œ๋“œ์˜ ์•ฝ์ž์ด๋‹ค. ์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด Enter password: ์™€ ํ•จ๊ป˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โ€ป ๋งŒ์•ฝ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žŠ์–ด๋ฒ„๋ ธ๋‹ค๋ฉด MySQL password forgot ๋“ฑ์œผ๋กœ ๊ตฌ๊ธ€๋งํ•ด ์กฐ์น˜ํ•˜๋ฉด ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ -uroot -p ๋กœ ์ ‘์†ํ•˜๊ณ  ๋‚˜๋ฉด ๋น„๋กœ์†Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ๋‹ด์„ ๋„˜์€ ๊ฒƒ. ์ด์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์Šคํ‚ค๋งˆ) ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค!

 

MySQL ์Šคํ‚ค๋งˆ์˜ ์‚ฌ์šฉ

  • mySQL์— ์ ‘์†ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์ œ ์Šคํ‚ค๋งˆ๋ฅผ ๋งŒ๋“ค๊ณ  ํ‘œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

(mySQL๋ช…๋ น์–ด)

โ€ป mySQL์—์„œ ์กฐ์ž‘์–ด(๋ช…๋ น์–ด)๋Š” ๋Œ€๋ฌธ์ž๋กœ / ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค,ํ‘œ, ์นผ๋Ÿผ์—๋Š” ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
   ๋˜, ๊ณต๋ฐฑ ๋Œ€์‹  _๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์Šคํ‚ค๋งˆ) ๋งŒ๋“ค๊ธฐ : CREATE DATABASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„;
    โ€ป ; : ๋ช…๋ น์ด ๋๋‚ฌ์Œ์„ ์•Œ๋ฆฌ๋Š” ๋ถ€ํ˜ธ. ๋ฐ˜๋“œ์‹œ ๋ถ™์—ฌ์•ผ.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์Šคํ‚ค๋งˆ) ์‚ญ์ œํ•˜๊ธฐ : DROP DATABASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„;
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐํšŒํ•˜๊ธฐ(์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ).. : SHOW DATABASES;
    DATABASES ์ด๋‹ค!
  • ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉํ•˜๊ธฐ : USE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„;
    ์ดํ›„ ์ž…๋ ฅํ•˜๋Š” ๋ช…๋ น์–ด๋Š” USE์ดํ•˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ํ‘œ์— ๋Œ€ํ•ด ์ ์šฉ๋œ๋‹ค.

SQL๊ณผ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ๊ณ  ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ‘œ ๋“ฑ ๋งŽ์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ.

์ด์ œ๋Š” SQL์ด๋ผ๋Š” ์ปดํ“จํ„ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šธ ๊ฒƒ์ด๋‹ค.

  • SQL = Structured ๊ตฌ์กฐํ™”๋œ Query ์งˆ๋ฌธ Language ์–ธ์–ด.
    *query language=์งˆ์˜์–ด= ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ •๋ณด ์‹œ์Šคํ…œ์— ์งˆ์˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ณ ๊ธ‰ ์ปดํ“จํ„ฐ ์–ธ์–ด์ด๋‹ค.
    ->๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„(MySQL)์™€ ์ •ํ•ด์ง„ ์–ธ์–ด(SQL)๋กœ ์†Œํ†ตํ•ด์•ผ ์„œ๋ฒ„์—๊ฒŒ ๋ช…๋ น์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • SQL์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด๋ณด๋‹ค๋Š” ๋น„๊ต์  ์‰ฝ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ค‘์š”ํ•˜๋‹ค.
  • SQL์€ ๋ชจ๋“  ๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ํ™”๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด์ด๋‹ค.

ํ‘œ=ํ…Œ์ด๋ธ”table ๊ตฌ์กฐ

  • ํ‘œ์˜ ๊ฐ€๋กœ์ค„ = ํ–‰ = row = record. SQL์—์„œ row = ๋ฐ์ดํ„ฐ ํ•œ ๊ฑด์„ ์˜๋ฏธํ•œ๋‹ค.
  • ํ‘œ์˜ ์„ธ๋กœ์ค„ = ์—ด = column SQL์—์„œ column = ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…/๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ์œ„์˜ ํ‘œ์—์„œ row = 2 (๋ฐ์ดํ„ฐ๊ฐ€ 2๊ฑด์ด๋ฏ€๋กœ), column = 4์ด๋‹ค.

MySQL ํ…Œ์ด๋ธ”์˜ ์ƒ์„ฑ

  • ํ…Œ์ด๋ธ” ์ƒ์„ฑ
    : CREATE TABLE ํ…Œ์ด๋ธ” ์ด๋ฆ„(... ๊ฐ column ์ด๋ฆ„๊ณผ ๋ช…๋ น์–ด๋“ค ...);
  • ํ…Œ์ด๋ธ” ์‚ญ์ œ
    : DROP TABLE ํ…Œ์ด๋ธ” ์ด๋ฆ„;
  • ํ…Œ์ด๋ธ” ์กฐํšŒ
    : SHOW TABLES; TABLES ์ด๋‹ค!

โ€ป ํ˜„์žฌ ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ
: SET PASSWORD = PASSWORD('๋น„๋ฐ€๋ฒˆํ˜ธ');

  • ์ž๋ฃŒํ˜• Datatype
    ->SQL์€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ๋ถ€ํ„ฐ ๊ฐ column์— ๋“ค์–ด๊ฐˆ datatype์„ ์ •ํ•ด์•ผ ํ•œ๋‹ค.
    ์ž๋ฃŒํ˜•์€ MySQL Datatype์œผ๋กœ ๊ตฌ๊ธ€๋งํ•ด์„œ ์›ํ•˜๋Š” ์ž๋ฃŒํ˜• ๋ช…๋ น์–ด๋ฅผ ๋„ฃ๋Š”๋‹ค.
  • INT(์ตœ๋Œ€์ถœ๋ ฅ์ž๋ฆฟ์ˆ˜) ์†Œ์ˆ˜์  ์—†๋Š” ์–‘์ˆ˜, ์Œ์ˆ˜, 0.(=INTEGER)
  • (string : ๋ฌธ์ž์—ด , character : ๋ฌธ์ž)
    VARCHAR(์ตœ๋Œ€๋ฌธ์ž์ˆ˜=size) ๊ฐ€๋ณ€์ ์ธ(var) ๋ฌธ์ž(*character). ๊ด„ํ˜ธ ์•ˆ์— ๊ธ€์ž์ˆ˜ ์ œํ•œ์„ ์„ค์ •ํ•œ๋‹ค.
    VARCHAR(10) → 10๊ธ€์ž ์ด์ƒ์ด๋ฉด 11์ž๋ถ€ํ„ฐ๋Š” ์ €์žฅX.
    TEXT(size) / MEDIUMTEXT(size) / LONGTEXT(size) ๋ฌธ์ž์—ด์„ ์ €์žฅํ•จ. ๊ด„ํ˜ธ ์•ˆ์— ๊ธ€์ž์ˆ˜ ์ œํ•œ.
    ์ปดํ“จํ„ฐ์˜ ์ €์žฅ๊ณต๊ฐ„์€ ์ •ํ•ด์ ธ ์žˆ์œผ๋ฏ€๋กœ, ํ•ญ์ƒ column์— ์ €์žฅ๋  ๋ฐ์ดํ„ฐ ์ตœ๋Œ“๊ฐ’์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ!
  • DATE / TIME / DATETIME .. : ๋‚ ์งœ(์—ฐ์›”์ผ) / ์‹œ๊ฐ„ / ๋‚ ์งœ,์‹œ๊ฐ„ ์ž๋ฃŒํ˜•์„ ์ €์žฅ
  • NOT NULL ํ•„์ˆ˜ ์ •๋ณด. ์—†์–ด์„ (NULL) ์•ˆ ๋˜๋Š” ๋ฐ์ดํ„ฐ. ํ•ด๋‹น ๊ฐ’์ด ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค.
    NULL ์„ ํƒ ์ •๋ณด. ์—†์–ด๋„ ๋˜๋Š” ๋ฐ์ดํ„ฐ. ๊ฐ’์ด ์—†์–ด๋„ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ.
  • AUTO_INCREMENT ์ž๋™์œผ๋กœ 1์”ฉ ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ํ•œ๋‹ค. 1,2,3,4,5,6..
    id์™€ ๊ฐ™์ด ์ ˆ๋Œ€ ์ค‘๋ณต๋˜์–ด์„  ์•ˆ ๋˜๋Š” ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด.

โš ๏ธ PRIMARY KEY(ํŠน์ • column๋ช…) : ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์— ๋ฐ˜๋“œ์‹œ ์ง€์ •, ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ๋ช…๋ น์–ด.
: primary key๋ฅผ ์ง€์ •ํ•˜๋Š” ์ด์œ ๋Š” '์„ฑ๋Šฅ'๊ณผ '์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ'๋•Œ๋ฌธ. ์ง€๊ธˆ์€ ํ›„์ž๋งŒ ์•Œ๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด id column๊ณผ ๊ฐ™์€ ์‹๋ณ„์ž(uniqueํ•œ column)์— ์ง€์ •ํ•œ๋‹ค. : PRIMARY KEY(id)

์˜ˆ๋ฅผ ๋“ค์–ด..

'topic'์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์œ„์˜ ํ‘œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด,

CREATE TABLE topic(
	id INT(11) NOT NULL AUTO_INCREMENT,
	title VARCHAR(1000) NOT NULL,
	description TEXT NULL,
	created DATETIME NOT NULL,
	author VARCHAR(15) NULL,
	profile VARCHAR(200) NULL,
	PRIMARY KEY(id)
);

์ด๋ ‡๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿ’ cheatsheet : =์ปจ๋‹ํŽ˜์ดํผ. ํ•œ๋งˆ๋””๋กœ ์š”์•ฝ์ •๋ฆฌ๋œ ๋ฌธ์„œ. ๊ตฌ๊ธ€๋งํ•  ๋•Œ ์ด ๋‹จ์–ด๋ฅผ ๋„ฃ์œผ๋ฉด ์š”์•ฝ์ •๋ฆฌ๋œ ๋ฌธ์„œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค!

โ€ป ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฐจ์ด ์ค‘ ํ•˜๋‚˜ : ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ฐ•์ œ์„ฑ์ด ๊ฐ•ํ•˜๋‹ค.


MySQL CRUD

CRUD = ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฃผ์š” 4๊ฐ€์ง€ ๊ธฐ๋Šฅ.

→ Create ๋ฐ์ดํ„ฐ ์ƒ์„ฑ, Read ๋ฐ์ดํ„ฐ ์กฐํšŒ, Update ๋ฐ์ดํ„ฐ ์ˆ˜์ •, Delete ๋ฐ์ดํ„ฐ ์‚ญ์ œ

์ด ์ค‘์—์„œ๋„ DB๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์€? Create์™€ Read.
์–ด๋–ค ๋ถ„์•ผ(ํšŒ๊ณ„, ์—ญ์‚ฌ ๋“ฑ)์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜์ •๊ณผ ์‚ญ์ œ ๊ธฐ๋Šฅ์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋„ ํ•œ๋‹ค.

โ€ป DESC ํ…Œ์ด๋ธ”์ด๋ฆ„; : ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ช…๋ น์–ด.

Create : SQL์˜ INSERT ๊ตฌ๋ฌธ

ํ‘œ์— ํ–‰์„ '์‚ฝ์ž…'ํ•œ๋‹ค๋Š” ์ ์—์„œ INSERT๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
auto_increment ์ธ ๊ฐ’๋งŒ ์ œ์™ธํ•˜๊ณ  ํ•ญ๋ชฉ๋“ค์„ ์ ์–ด๋„ฃ์œผ๋ฉด ๋œ๋‹ค.
→ INSERT INTO ํ…Œ์ด๋ธ”์ด๋ฆ„ (์—ด1์ด๋ฆ„,์—ด2์ด๋ฆ„...) VALUES('์—ด1๊ฐ’','์—ด2๊ฐ’',...);

Read : SQL์˜ SELECT๊ตฌ๋ฌธ

๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” SQL๋ช…๋ น์–ด.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค= ์ตœ๋Œ€ ์–ต ๋‹จ์œ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ. ๋”ฐ๋ผ์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ณจ๋ผ์„œ(select) ์กฐํšŒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ž˜ ๋‹ค๋ฃฌ๋‹ค = select๋ฌธ์„ ์ž˜ ๋‹ค๋ฃฌ๋‹ค.
SELECT๋ฌธ์€ ์กฐ๊ฑด์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์‹ฌ์˜คํ•ด์ง€๋ฏ€๋กœ, ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ๊ทธ๋•Œ๊ทธ๋•Œ ํ•„์š”ํ•œ ๋ช…๋ น์–ด&๋ช…๋ น์–ด ์ˆœ์„œ๋ฅผ ์ฐพ์•„ ์จ์•ผ ํ•œ๋‹ค.

SELECT~ FROM~ ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
FROM ๋’ค์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ํ‘œ ์ด๋ฆ„์ด ์˜จ๋‹ค.
SELECT ์™€ FROM ์‚ฌ์ด = Projection = ํ‘œ์‹œํ•˜๊ณ  ์‹ถ์€ column์ด๋ฆ„์ด ์˜จ๋‹ค. (* = ์ „๋ถ€)

  1. ํŠน์ • ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์„ ๋•Œ.
    → SELECT * FROM ํ…Œ์ด๋ธ”์ด๋ฆ„;
  2. ํŠน์ • ํ…Œ์ด๋ธ”์˜ ํŠน์ • column๋“ค๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์„ ๋•Œ.
    → SELECT column1์ด๋ฆ„, column2์ด๋ฆ„,.. FROM ํ…Œ์ด๋ธ”์ด๋ฆ„;
  3. ํŠน์ • ํ…Œ์ด๋ธ”์˜ ํŠน์ • column์˜ ํŠน์ • ์กฐ๊ฑด ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์„ ๋•Œ.
    → SELECT * FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ WHERE ํŠน์ •column๋ช…=์กฐ๊ฑด;
  4. ํŠน์ • ํ…Œ์ด๋ธ” ํŠน์ • column ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ.
    โ€ปascending order = ์˜ค๋ฆ„์ฐจ์ˆœ = ์ •๋ฐฉํ–ฅ ์ •๋ ฌ. 123, ๊ฐ€๋‚˜๋‹ค, ABC..
    descending order = ๋‚ด๋ฆผ์ฐจ์ˆœ = ์—ญ๋ฐฉํ–ฅ ์ •๋ ฌ. 987, ํ•˜ํŒŒํƒ€, ZYX...
    ascending → SELECT * FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ ORDER BY ํŠน์ •column๋ช… ASC; (ASC ๋Š” ์ƒ๋žต๊ฐ€๋Šฅ-๊ธฐ๋ณธ์˜ต์…˜)
    descending → SELECT * FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ ORDER BY ํŠน์ •column๋ช… DESC;

Update : SQL์˜ UPDATE ๊ตฌ๋ฌธ

→ UPDATE ํ…Œ์ด๋ธ”์ด๋ฆ„ SET column๋ช…=์ˆ˜์ •ํ• ๊ฐ’, column๋ช…=์ˆ˜์ •ํ• ๊ฐ’.. WHERE ์ˆ˜์ •๋Œ€์ƒ;
์ˆ˜์ •๋Œ€์ƒ์—๋Š” ์ฃผ๋กœ id=__ ์™€ ๊ฐ™์ด ์‹๋ณ„์ž๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. (์ˆ˜์ •ํ•  ๋ฐ์ดํ„ฐ์˜ uniqueํ•œ ๊ฐ’)
โš ๏ธUPDATE ๊ตฌ๋ฌธ์—์„œ WHERE ~ ๋ฅผ ๋น ๋œจ๋ฆฌ๋ฉด ์žฌ์•™์ด ์˜จ๋‹ค.. ๋ชจ๋“  ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์ด ๋ฐ”๋€” ์ˆ˜๋„ ์žˆ๋‹ค.

Delete : SQL์˜ DELETE ๊ตฌ๋ฌธ

→ DELETE FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ WHERE ์‚ญ์ œ๋Œ€์ƒ;
์‚ญ์ œ๋Œ€์ƒ์—๋Š” ์ฃผ๋กœ id=__ ์™€ ๊ฐ™์ด ์‹๋ณ„์ž๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. (์‚ญ์ œํ•  ๋ฐ์ดํ„ฐ์˜ uniqueํ•œ ๊ฐ’)
โš ๏ธDELETE ๊ตฌ๋ฌธ์—์„œ WHERE ~ ๋ฅผ ๋น ๋œจ๋ฆฌ๋ฉด ์žฌ์•™์ด ์˜จ๋‹ค.. ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ฐ’์ด ์‚ญ์ œ๋  ์ˆ˜๋„ ์žˆ๋‹ค.


์ˆ˜์—…์˜ ์ •์ƒ

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ์ˆ ์˜ ๋ณธ์งˆ๊ณผ ํ˜์‹ ์„ ๊ตฌ๋ถ„ํ•ด ๋ณด๋ฉด..

๋ณธ์งˆ=๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ˜์‹ =๊ด€๊ณ„ํ˜•.
→๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณธ์งˆ์€ CRUD.

์ด์ œ ๋ณธ์งˆ์„ ๋„˜์–ด์„  ํ˜์‹ ์— ๋Œ€ํ•ด ๋ฐฐ์šธ ๊ฒƒ์ด๋‹ค.
→'๊ด€๊ณ„ํ˜•relational' ์ด ์™œ ํ˜์‹ ์ธ๊ฐ€? (์ดํ•˜)

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•„์š”์„ฑ

๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์™œ ํ•„์š”ํ•œ๊ฐ€?

๋ฐ์ดํ„ฐ๋“ค์€ ์ค‘๋ณต์ด ๋งŽ์„์ˆ˜๋ก ์ข‹์ง€ ์•Š๋‹ค. (์ค‘๋ณต์˜ ์•…์ทจ)
selectํ•˜๊ธฐ ์–ด๋ ค์›Œ์ ธ์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒ, ๊ด€๋ฆฌ(์œ ์ง€๋ณด์ˆ˜)๊ฐ€ ์–ด๋ ค์›Œ์ง€๊ธฐ ๋–„๋ฌธ.

๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐœ์„ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์˜ ํ‘œtopic์€ author, profileํ•ญ๋ชฉ์˜ ์ค‘๋ณต์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค.
๊ทธ๋ž˜์„œ ์•„๋ž˜์ฒ˜๋Ÿผ author, topic ์˜ ๋‘ ๊ฐœ์˜ ํ‘œ๋กœ ๋‚˜๋ˆ„์–ด ์ €์žฅํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด..
→ egoing ์˜ ์ด๋ฆ„์ด ์ด๊ณ ์ž‰์œผ๋กœ ๋ฐ”๋€Œ์–ด๋„ authorํ‘œ์—์„œ๋งŒ ๋ฐ”๊พธ๋ฉด ๋˜์–ด ํŽธ๋ฆฌ.
→ ๊ธฐ์กด ์ €์ž์™€ ์ด๋ฆ„, ํ”„๋กœํ•„์ด ๊ฐ™์€ ๋‹ค๋ฅธ ์ž‘๊ฐ€๊ฐ€ ์ถ”๊ฐ€๋˜์–ด๋„ ์‹๋ณ„ ๊ฐ€๋Šฅ.
(์ด๋ฆ„์ด egoing, ํ”„๋กœํ•„์ด developer์ธ ๋™๋ช…์ด์ธ์ด ์ถ”๊ฐ€๋˜์–ด๋„ author id๋Š” ๋‹ค๋ฅผ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ)

ํ•˜์ง€๋งŒ ๋‹จ์ ๋„ ์žˆ๋‹ค.
์œ„์˜ ํ‘œ๋Š” ๋” ์ง๊ด€์ ์ด๋‹ค (ํ•˜๋‚˜์˜ ํ‘œ๋งŒ ๋ณด๋ฉด ๋œ๋‹ค). 
์•„๋ž˜์˜ ๋‘ ํ‘œ๋Š” ์ฐธ์กฐํ‘œ๊ฐ€ ํ•„์š”ํ•˜๊ณ , ๋งค๋ฒˆ ๋น„๊ตํ•ด์„œ ๋ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค.

⇒ ์ด ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค. " ์ €์žฅ์€ ๋ถ„์‚ฐํ•ด์„œ, ๋ณด์—ฌ์ค„ ๋• ํ•ฉ์ณ์„œ ๋ณด์—ฌ์ค€๋‹ค ". ( JOIN )

ํ…Œ์ด๋ธ” ๋ถ„๋ฆฌํ•˜๊ธฐ

์œ„์˜ ์˜ˆ์ œ์ฒ˜๋Ÿผ ํฐ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ๋‘˜๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ์—ฐ์Šต์„ ๋จผ์ € ํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค.

ํฐ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์—์„œ ์„œ๋กœ ๊ด€๊ณ„์žˆ๋Š” ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด..
ํฐ ํ…Œ์ด๋ธ” : id, title, description, created, author, profile ์˜ ์—ด์ด ์žˆ์Œ

→๊ฐ€์žฅ ๊ด€๊ณ„์„ฑ ๋†’์•„์„œ ๋ถ„๋ฆฌํ•˜๊ธฐ ์ข‹์€ author, profile ์„ ๋ถ„๋ฆฌํ•œ๋‹ค.

->topic : id, title, description, created, author→author_id
->author : id, author, profile
(์‹ค์Šต ๋ฐ์ดํ„ฐ ์ฝ”๋“œ๋Š” ์ธ๊ฐ• ์ˆ˜์—…์ž๋ฃŒ์— ์žˆ์Œ!)

JOIN - ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฝƒ

JOIN = ๊ฒฐํ•ฉ.
๋‘ ํ…Œ์ด๋ธ”์„ joinํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฒฐํ•ฉํ•  '๊ธฐ์ค€'์ด ํ•„์š”ํ•˜๋‹ค.
์ด '๊ธฐ์ค€'์€ ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ฒฐํ•ฉ๊ณ ๋ฆฌ(์—ฐ๊ด€์ ) ์— ํ•ด๋‹นํ•œ๋‹ค.
์˜ˆ๋ฅผ๋“ค์–ด, ์œ„ ์˜ˆ์ œ์˜ topic-author_id ์™€ author-id ๊ฐ€ ์„œ๋กœ ์—ฐ๊ด€๋˜์–ด ์žˆ์œผ๋ฉฐ, JOIN ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ด๋ฅผ ์ฐธ์กฐํ•ด ๋ช…๋ นํ•  ์ˆ˜ ์žˆ๋‹ค.
→ SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
 ์ฆ‰ SELECT * FROM ํ…Œ์ด๋ธ”1 LEFT JOIN ํ…Œ์ด๋ธ”2 ON ๊ฒฐํ•ฉ๊ธฐ์ค€;

๋‹จ์ˆœํžˆ ๋‘ ํ…Œ์ด๋ธ”๋งŒ ์—ฐ๊ด€์ง“๊ณ  ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ด€์ง“๊ณ  ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๊ฒƒ์ด ๋ฌด๊ถ๋ฌด์ง„ํ•˜๊ฒŒ ์‘์šฉ ๊ฐ€๋Šฅํ•œ '๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค'์˜ ํž˜!
JOIN ์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์žฅ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‹ต๊ฒŒ ํ•˜๋Š” ๊ฝƒ์ด๋‹ค.
JOIN ์„ ์ดํ•ดํ•ด์•ผ ๋น„๋กœ์†Œ '๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค'์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

โ€ป** AS ## → ** ๋ฅผ ## ๋กœ ๋ฐ”๊พผ๋‹ค.

 

์ธํ„ฐ๋„ท๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

์ธํ„ฐ๋„ท๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•  ๊ฒƒ.
MySQL์€ ์ธํ„ฐ๋„ท์„ ํ™œ์šฉ๊ฐ€๋Šฅํ•˜๊ฒŒ ๊ณ ์•ˆ๋œ ์‹œ์Šคํ…œ์ด๋‹ค.

'์ธํ„ฐ๋„ท' ์— ๋Œ€ํ•˜์—ฌ

์ธํ„ฐ๋„ท์ด ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์ตœ์†Œ ๋ช‡ ๋Œ€๋‚˜ ํ•„์š”ํ• ๊นŒ? → ๋‘ ๋Œ€.

'์ธํ„ฐ๋„ท'์˜ ์˜๋ฏธ : ์„œ๋กœ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋“ค์ด ์ธํ„ฐ๋„ท์œผ๋กœ ์—ฐ๊ฒฐ๋จ.
→ 'ํ•œ ๋Œ€์˜ ์ปดํ“จํ„ฐ'๊ฐ€ ๊ฐ€์ง„ ํ•œ๊ณ„๋ฅผ ๋›ฐ์–ด๋„˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด.. (WEB)
ํ•œ ๋Œ€์˜ ์ปดํ“จํ„ฐ(A)๋Š” ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ณ , (์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด)
๋‹ค๋ฅธ ์ปดํ“จํ„ฐ(B)๋Š” ์š”์ฒญํ•œ ์ •๋ณด๋ฅผ ์‘๋‹ตํ•œ๋‹ค.

์ด ๋‘ ์ปดํ“จํ„ฐ(A,B)์˜ ๊ฐœ๋…์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๋ง์ด 'ํด๋ผ์ด์–ธํŠธ'์™€ '์„œ๋ฒ„'์ด๋‹ค.
A = ์ •๋ณด์š”์ฒญ = client(๊ณ ๊ฐ, ๊ฐ‘) . (A์ปดํ“จํ„ฐ์— ์„ค์น˜๋œ ์›น์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ = web client=์›น๋ธŒ๋ผ์šฐ์ €)
B = ์š”์ฒญ์‘๋‹ต = server(์‚ฌ์—…์ž, ์„) (B์ปดํ“จํ„ฐ์— ์„ค์น˜๋œ ์›น์„ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ = web server์›น์„œ๋ฒ„)

'๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„'์˜ ์˜๋ฏธ๋Š” ๋ฌด์—‡์ธ๊ฐ€?

MySQL์„ ์„ค์น˜ํ•˜๋ฉด ๋‘ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋œ๋‹ค.
→ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธdatabase client,
๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„database server.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ : ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ :๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋Š” ์ˆ˜๋‹จ..(์›น๋ธŒ๋ผ์šฐ์ €์ฒ˜๋Ÿผ)

์šฐ๋ฆฌ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ '์ง์ ‘' ๋‹ค๋ฃฌ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ,
์‚ฌ์‹ค์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ๋ฅผ 'ํ†ตํ•ด์„œ' ๋‹ค๋ฃฌ ๊ฒƒ์ด๋‹ค.

์™œ? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋Š” ๋ฐ˜๋“œ์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค๋ค„์•ผ ํ•˜๊ธฐ ๋–„๋ฌธ.
→ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ = MySQL monitor
(MySQL์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ)
MySQL monitor ๋Š” ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์„œ๋ฒ„๋ฅผ ์ œ์–ดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด์—ˆ๋˜ ๊ฒƒ์ž„.

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ๋ฅผ 2๊ฐœ ํ™œ์šฉํ•˜๋Š” ์ˆœ๊ฐ„ ๊ทธ DB๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ , ๋” ์ž์œ ๋กญ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

โ€ป ํฐ ๋…ธ์ด๋งŒ(์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“  ์—”์ง€๋‹ˆ์–ด&๊ณผํ•™์ž) ์™ˆ..
"๊ฒฐ๊ตญ ์ˆ˜ํ•™์€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ์ด๋ผ๋„ค."
์šฐ๋ฆฌ์˜ ๊ณต๋ถ€์˜ ๋ชฉํ‘œ๋„ '์ดํ•ด'๊ฐ€ ์•„๋‹Œ '์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ' ์ด๋‹ค. '์ต์ˆ™ํ•ด์ง€๋Š”' ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ดํ•ด์ด๋‹ค.

๋ฐฉ๊ธˆ ๋ฐฐ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ๋ผ๋Š” ์ถ”์ƒ์ ์ธ ๊ฐœ๋…๋„ ์ต์ˆ™ํ•ด์ง€๋ฉด ๊ดœ์ฐฎ์•„ ์งˆ ๊ฒƒ์ด๋‹ค.

'๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„'์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ..
์ „์„ธ๊ณ„์˜ ์ˆ˜๋งŽ์€ ์ปดํ“จํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์ •๋ณด๋ฅผ ๋„ฃ๊ณ  ๋นผ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.
→ ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ณ , ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

 

MySQL ํด๋ผ์ด์–ธํŠธ

๋งŽ์€ MySQL ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ์‚ฌ์šฉํ•œ ๊ฒƒ์€ MySQL monitor ์ž„.

  • MySQL monitor
    -MySQL์„ ์„ค์น˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ•จ๊ป˜ ์„ค์น˜๋˜๋Š” ๋ฒˆ๋“ค ํ”„๋กœ๊ทธ๋žจ.
    -์–ด๋–ค ์กฐ๊ฑด, ์–ด๋Š ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
    -CLI(๋ช…๋ น ์ค„ ์ธํ„ฐํŽ˜์ด์Šค Command-Line Interface) ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋žจ.
    -์žฅ์ ) ์•ˆ์ •์ ์ด๊ณ  ์ž์›์„ ๋œ ์†Œ๋ชจํ•œ๋‹ค.
    -๋‹จ์ ) ๋ช…๋ น์–ด๋ฅผ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค.
  • MySQL Workbench
    -๋”ฐ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ.
    -MySQL์ด ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ.
    -GUI ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋žจ.
    -์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ์ข€ ๋” ํŽธํ•˜๋‹ค. ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค๋ฅผ ํ†ตํ•ด ์กฐ์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด์™ธ์˜ MySQL client๋Š” MySQL client ๋กœ ๊ตฌ๊ธ€๋งํ•˜๋ฉด ๋‚˜์˜จ๋‹ค.

๊ฐ ํด๋ผ์ด์–ธํŠธ์˜ ์žฅ๋‹จ์ ์ด ๊ฐ๊ฐ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

MySQL Workbench

MySQL์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ ์ค‘ ํ•˜๋‚˜. MySQL์ด ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณต (mongoDB์˜ robo3T์— ํ•ด๋‹น)

MySQL monitor ์—์„œ๋Š”..

→ -uroot -p -hlocalhost (-hlocalhost๋Š” ์ƒ๋žต ๊ฐ€๋Šฅ)

(-u์œ ์ €=root, -pํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ, -hํ˜ธ์ŠคํŠธ =๋กœ์ปฌํ˜ธ์ŠคํŠธ)

โ€ปํ˜ธ์ŠคํŠธhost = ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ(์ธํ„ฐ๋„ท)์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฐ๊ฐ์˜ ์ปดํ“จํ„ฐ๋ฅผ ์ง€์นญํ•˜๋Š” ๋ง. ๋งŒ์•ฝ MySQL monitor ๋กœ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด, ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์˜ MySQL์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ ค๋ฉด -h ๋’ค์— ๊ทธ ์„œ๋ฒ„์ปดํ“จํ„ฐ์˜ ์ฃผ์†Œ๋ฅผ ์ ์œผ๋ฉด ๋œ๋‹ค.(-hgoogle.com ์ฒ˜๋Ÿผ) ์ง€๊ธˆ ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ MySQLํด๋ผ์ด์–ธํŠธ์™€ MySQL ์„œ๋ฒ„๊ฐ€ ๊ฐ™์€ ์ปดํ“จํ„ฐ์— ์žˆ์œผ๋ฉด -hlocalhost ๋ผ๊ณ  ์ ๋Š”๋‹ค.

โ€ป [localhost](<http://localhost>) : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ค์น˜๋œ ๊ทธ ์ปดํ“จํ„ฐ ์ž์‹ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํŠน์ˆ˜ํ•œ ๋„๋ฉ”์ธ. [localhost](<http://localhost>) ์™€ ๊ฐ™์€ ์˜๋ฏธ์˜ IP์ฃผ์†Œ = 127.0.0.1

## 4:10 ๊นŒ์ง€ ๋ณด๋‹ค๊ฐ€ ์ค‘๋‹จ! (C++ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋‚˜์™€์„œ..) ๋‚˜์ค‘์— ํ•„์š”ํ•ด์ง€๋ฉด ๋‹ค์‹œ ์ฐพ์•„๋ด์•ผ๊ฒ ๋‹ค.


DATABASE 2 - MySQL ์ˆ˜์—…์„ ๋งˆ์น˜๋ฉฐ

์ด์ œ ๋‘ ๊ฐ€์ง€ ๊ธธ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

  1. ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๊ฑธ ์‚ฌ์šฉํ•ด ํ˜„์‹ค์˜ ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ.
  2. ์ง€๊ธˆ ๋ฐฐ์šด ๊ธฐ์ˆ ์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ก &๊ธฐ์ˆ (ํ˜์‹ )์„ ๋ฐฐ์šฐ๊ธฐ.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๊ธฐ ๋•Œ๋ฌธ์—, 1. ๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด ์ง€๊ธˆ ๋‹จ๊ณ„์—์„œ๋Š” ํ˜„๋ช…ํ•œ ์„ ํƒ์ด๋‹ค.

2.๋กœ ๊ฐ€๊ธฐ ์ ๋‹นํ•œ ๋•Œ๋Š” 1.์˜ ๊ธธ์„ ๊ฐ€๋‹ค๊ฐ€ ํ•œ๊ณ„๋ฅผ ๋Š๋ผ๊ณ  ์ถฉ๋ถ„ํžˆ ์ ˆ๋งํ–ˆ์„ ๋•Œ์ด๋‹ค.

 

์•„๋ž˜๋Š” 1.์˜ ๊ธธ์„ ์ž˜ ๊ฐ€๊ธฐ ์œ„ํ•œ ์กฐ์–ธ๋“ค.

  • ๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ž˜ ๋‹ค๋ฃจ๋Š” ์‚ฌ๋žŒ =SQL์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์ž˜ ๋‹ค๋ฃจ๋Š” ์‚ฌ๋žŒ.
    ํŠนํžˆ CRUD์™€, R์— ํ•ด๋‹นํ•˜๋Š” SELECT ๊ตฌ๋ฌธ.
    SELECT๊ตฌ๋ฌธ์„ ์—ฐ์Šตํ•˜๋Š” ๊ฒƒ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์—ญ๋Ÿ‰์„ ๊ธฐ๋ฅด๋Š” ์ฒซ๊ฑธ์Œ์ด๋‹ค.
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ž์‹ ์ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊บผ๋‚ด๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค.
    → ์ฒ˜์Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์ง€ ์•Š์•„ ์ƒ๊ด€์—†์ง€๋งŒ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ •๋ฆฌ์ •๋ˆ์˜ ํ•„์š”์„ฑ์€ ๋†’์•„์ง„๋‹ค.
    ์ด ์ •๋ฆฌ์ •๋ˆ์„ ๋„์™€์ฃผ๋Š” ๊ฒƒ์ด ์ƒ‰์ธindex ์ด๋‹ค.
    ์‚ฌ๋žŒ๋“ค์ด ์ž์ฃผ ์ฐพ๋Š” ํ•ญ๋ชฉ์— index๋ฅผ ์„ค์ •ํ•ด ๋†“์œผ๋ฉด ์ปดํ“จํ„ฐ๋Š” ๊ทธ ํ•ญ๋ชฉ์„ ๋ฏธ๋ฆฌ ์ฐพ์•„ ์ค€๋น„ํ•ด๋†“๋Š”๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ๋” ๋น ๋ฅด๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋‹ค.
    ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์กŒ์„ ๋•Œ '์ƒ‰์ธindex'๋ฅผ ๊ตฌ๊ธ€๋งํ•ด ์ ์šฉํ•ด ๋ณด๋ผ.
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ž์‹ ์ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊บผ๋‚ด๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค.
    → ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค๋‹ค.
    ํŠนํžˆ ์ฒ˜์Œ์— ํ…Œ์ด๋ธ”์„ ์ž˜๋ชป ์„ค๊ณ„ํ–ˆ์„ ๋•Œ.
    →์–ด๋–ป๊ฒŒ ํ…Œ์ด๋ธ”์„ ๋” ํšจ์œจ์ ์œผ๋กœ, ์ค‘๋ณต ์—†์ด, ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜๋„๋ก ์„ค๊ณ„ํ•  ๊ฒƒ์ธ๊ฐ€ : ๋ชจ๋ธ๋งmodeling.
     ์ •๊ทœํ™”, ๋น„์ •๊ทœํ™”, ์—ญ์ •๊ทœํ™”... ๋กœ ๊ตฌ๊ธ€๋งํ•ด ๋ณด๋ผ.
  • ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์ˆ˜๋กœ ๋‚ ์•„๊ฐ€๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด์•ผ ํ•œ๋‹ค.
    ๋ฐฑ์—…backup ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค.
    ์˜ˆ) ํ•˜๋“œ๋””์Šคํฌ์— ๋Œ€ํ•ด ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ : ์–ธ์ œ ๊ณ ์žฅ๋‚  ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.
      ํ•˜๋“œ๋””์Šคํฌ์— ๋Œ€ํ•ด ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ : ์–ธ์  ๊ฐ€ ๋ฐ˜๋“œ์‹œ ๊ณ ์žฅ๋‚œ๋‹ค.
      (๋งˆ์น˜ ์ธ๊ฐ„์€ ์–ธ์ œ ์ฃฝ์„์ง€ ์•Œ ์ˆ˜ ์—†์ง€๋งŒ, ๋ฐ˜๋“œ์‹œ ์ฃฝ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ)
    ๋ฐฑ์—…backup ์˜ ์›๋ฆฌ? ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•ด์„œ ๋ณด๊ด€ํ•˜๋Š” ๊ฒƒ.
     ๋‚ด ์ปดํ“จํ„ฐ ์™€ ๋‹ค๋ฅธ ๋ณ„๋„์˜ ์ปดํ“จํ„ฐ์— ์ €์žฅํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์œ ์‹ค ๊ฐ€๋Šฅ์„ฑ์€ ํ›จ์”ฌ ๋‚ฎ์•„์ง„๋‹ค.
      mysqldump , binary log .. ๋“ฑ์˜ ํ‚ค์›Œ๋“œ๋กœ ๊ตฌ๊ธ€๋งํ•˜๋ฉด ๋œ๋‹ค.
  • ํด๋ผ์šฐ๋“œ์ปดํ“จํŒ…์‹œ์Šคํ…œ.
    ์•„๋งˆ์กด, ๊ตฌ๊ธ€, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๊ฐ™์€ ๊ฑฐ๋Œ€IT๊ธฐ์—…์ด ์ž„๋Œ€ํ•˜๋Š” ์ปดํ“จํ„ฐ๋ฅผ ๋นŒ๋ ค ์“ฐ๋Š” ๊ฒƒ (์›๊ฒฉ ์ œ์–ด).
    ์žฅ์ ) ์ „๋ฌธ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋ฐฑ์—…์„ ๊ด€๋ฆฌํ•ด์ฃผ๋ฏ€๋กœ DB๋ณธ๋ž˜์˜ ๊ธฐ๋Šฅ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค, ์ง์ ‘ MySQL DB๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์‰ฝ๋‹ค.
    AWS RDS , Google Cloud SQL for MySQL , AZURE Database for MySQL ..
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐprogramming. 
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์“ฐ๋Š” ์ด์œ ? ๊ทธ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ถ„์„ํ•ด ๊ฐ์ž์˜ ๋ชฉ์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด.
    ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด๋ฅผ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ €์žฅ๋œ ์ •๋ณด๋“ค์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    Python mysql api, PHP mysql api, Java mysql api.. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ด๋ฆ„ + 'mysql api' ๋กœ ๊ตฌ๊ธ€๋ง.

 

์˜ค๋Š˜์˜ ์ˆœ์ˆ˜๊ณต๋ถ€์‹œ๊ฐ„ : ์•ฝ 7์‹œ๊ฐ„!