[Beyond SW] 250923_Database

์ด๊ฒฝ๋ฏผยท2025๋…„ 9์›” 23์ผ

ํ•œํ™”์‹œ์Šคํ…œ Beyond SW

๋ชฉ๋ก ๋ณด๊ธฐ
8/40

๐Ÿ’ฟDatabase๋ž€

ํ•œ ์กฐ์ง์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ ์‘์šฉ ์‹œ์Šคํ…œ์—์„œ ๊ณต์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์œผ๊ณ , ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜์—ฌ ๊ตฌ์กฐ์ ์œผ๋กœ ํ†ตํ•ฉ/์ €์žฅํ•ด ๋†“์€ ๊ฒƒ์ด๋‹ค.

- ์ข…๋ฅ˜

  1. ์šด์˜ ๋ฐ์ดํ„ฐ(Operational Data): ์กฐ์ง์˜ ๋ชฉ์ ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ
  2. ๊ณต์šฉ ๋ฐ์ดํ„ฐ(Shared Data): ๊ณต๋™์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ
  3. ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ(Integrated Data): ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์ค‘๋ณต์œผ๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ํ˜„์ƒ ์ œ๊ฑฐ
  4. ์ €์žฅ ๋ฐ์ดํ„ฐ(Stored Data): ์ปดํ“จํ„ฐ ์ €์žฅ ์žฅ์น˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ

- ํŠน์ง•

  1. ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ์„ฑ(Real Time Accessibility): ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ์„œ๋น„์Šคํ•œ๋‹ค.
  2. ๊ณ„์†์ ์ธ ๋ณ€ํ™”(Continuous Change): ๋ฐ์ดํ„ฐ ๊ฐ’์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ํ•ญ์ƒ ๋ฐ”๋€๋‹ค.
  3. ๋™์‹œ ๊ณต์œ (Concurrent Sharing): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์—…๋ฌด ๋˜๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋™์‹œ ๊ณต์œ ๋œ๋‹ค. (root๊ฐ€ ๋ถ€์—ฌํ•œ ๊ถŒํ•œ์— ๋”ฐ๋ผ ๊ณ„์ • ์„ ํƒ. root์—์„œ ๊ณ„์ • ์ƒ์„ฑ ๊ฐ€๋Šฅ. root์—์„œ๋Š” ์ž‘์—…ํ•˜๋ฉด ์•ˆ๋จ.)
  4. ๋‚ด์šฉ์— ๋”ฐ๋ฅธ ์ฐธ์กฐ(Reference By Content): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ์ฐธ์กฐ๋œ๋‹ค.

DBMS

Database๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ๋งŒ๋“  ์‹œ์Šคํ…œ
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœ,์กฐ์ž‘,์ •์˜,์ œ์–ด ํ• ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์šฉ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ

  • CRUD
    C (Create) : ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ (์˜ˆ: INSERT)
    R (Read) : ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ/์กฐํšŒ (์˜ˆ: SELECT)
    U (Update) : ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ • (์˜ˆ: UPDATE)
    D (Delete) : ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ (์˜ˆ: DELETE)

- ๊ธฐ๋Šฅ

  • ๋ฐ์ดํ„ฐ ์ถ”์ถœ(Retrieval) : ์‚ฌ์šฉ์ž๊ฐ€ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜น์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœ(DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” ๊ฒƒ / ์กฐํšŒํ•ด์„œ ๋ณต์‚ฌํ•˜๋“ฏ)
  • ๋ฐ์ดํ„ฐ ์กฐ์ž‘(Manipulation) : ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด(์‘์šฉ ํ”„๋กœ๊ทธ๋žจ)๊ฐ€ ์š”์ฒญํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ ์ž‘์—…์„ ์ง€์›(CUD ๊ธฐ๋Šฅ์„ ๋งํ•จ / R ์ œ์™ธ)
  • ๋ฐ์ดํ„ฐ ์ •์˜(Definition) : ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์‚ญ์ œ ๋ฐ ๋ณ€๊ฒฝ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰
  • ๋ฐ์ดํ„ฐ ์ œ์–ด(Control) : ๋ฐ์ดํ„ฐ๊ฐ€ ์†Œ์‹ค๋๋Š”๋ฐ ๋ณต๊ตฌ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ๋งค์น˜๊ฐ€ ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ (์žฌ๊ณ  ๊ด€๋ฆฌ, ๊ฐœ์ธ ์ •๋ณด ๊ด€๋ฆฌ)๋“ฑ๋“ฑ ๋ฌธ์ œ ์ƒ๊ธธ์‹œ ๋ฐฑ์—… ๋ฐ ํšŒ๋ณต, ๋™์‹œ์„ฑ ์ œ์–ด ๋“ฑ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ง€์›

- ์ด์ 

  • ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ตœ์†Œํ™” : ๋ฐ์ดํ„ฐ์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ถ„๋ฆฌ์‹œํ‚ด.
  • ์ฟผ๋ฆฌ ์–ธ์–ด (SQL) : ๋ณต์žกํ•œ ๊ฒ€์ƒ‰๊ณผ ๋ถ„์„ ์ž‘์—… ์†์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ.
  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ : ๋‚ด์šฉ์ด ๋งž๋Š”์ง€. ํ’ˆ์งˆ๊ณผ ์ •ํ™•์„ฑ ๋ณด์žฅ.
  • ๋ฐ์ดํ„ฐ ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ : ๋ฐ์ดํ„ฐ ์†์ƒ ์‹œ์—๋„ ๋ฐ์ดํ„ฐ ๋ณต์› ๊ฐ€๋Šฅ.
  • ํ‘œ์ค€ํ™” : ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด ์ผ๊ด„์ ์ž„. ๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•จ.

- DBMS ์ข…๋ฅ˜
1. SQL Server
2. Oracle
3. MySQL
4. MariaDB
5. DB2
6. SQLite

- Database์˜ ์œ ํ˜•

  • ๊ณ„์ธตํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ํŠธ๋ฆฌ๊ตฌ์กฐ. ๊ฐ ๋…ธ๋“œ๋Š” ํ•œ๊ฐœ ์ด์ƒ์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ํ•œ๊ฐœ์˜ ๋ถ€๋ชจ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง. "๋ถ€๋ชจ-์ž์‹"๊ด€๊ณ„.
  • ๋„คํŠธ์›Œํฌํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ. ์—ฌ๋Ÿฌ ๋ถ€๋ชจ๋…ธ๋“œ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ. "์ฃผ์ธ-๋ฉค๋ฒ„"๊ด€๊ณ„
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ํ…Œ์ด๋ธ” ํ˜•ํƒœ. row(ํ–‰, ๊ฐ€๋กœ)์™€ column(์—ด, ์„ธ๋กœ).
  • ๊ฐ์ฒด-๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ๋Šฅ ํ™•์žฅํ•˜์—ฌ ๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•จ.

- โญ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ์—„๊ฒฉํ•œ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ทœ์น™ ๊ฐ€์ง.
  • ACID ํŠธ๋žœ์žญ์…˜ ์†์„ฑ

    Atomicity(์›์ž์„ฑ)
    : ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๋ชจ๋“  ์—ฐ์‚ฐ์€ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๊ฐ„์ฃผ๋˜์–ด์•ผ ํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜์€ ๋ชจ๋‘ ์‹คํ–‰๋˜๊ฑฐ๋‚˜, ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
    Consistency(์ผ๊ด€์„ฑ)
    : ํŠธ๋žœ์žญ์…˜์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ผ๊ด€๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค. (๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ๋งŒ์กฑํ•จ์„ ๋ณด์ฆ)
    Isolation(๊ณ ๋ฆฝ์„ฑ)
    : ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌํ•ด์„œ ๋™์‹œ์„ฑ์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์‹คํ–‰๋  ๋•Œ, ๊ฐ๊ฐ์˜ ํŠธ๋žœ์žญ์…˜์€ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์—ฌ์•ผ ํ•œ๋‹ค.
    Durability(์ง€์†์„ฑ)
    : ํŠธ๋ž™์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ์‹œ์Šคํ…œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผํ•œ๋‹ค.(์ปค๋ฐ‹ ๋˜๋ฉด ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋จ์„ ๋ณด์ฆ)

  • ๋ฐ์ดํ„ฐ ์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด ์ค‘๋ณต์„ฑ ์ตœ์†Œํ™”

๐ŸฆญMariaDB๋ž€

์˜คํ”ˆ์†Œ์Šค์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)๋กœ MySQL์˜ fork๋กœ ์‹œ์ž‘๋˜์–ด MySQL๊ณผ API(Application Programming Interface) ๋ฐ ABI(Application Binary Interface) ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๋…์ž์ ์ธ ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐ€๊ณ  ์žˆ๋‹ค.

๋™์ž‘์›๋ฆฌ

  • ip ์ฃผ์†Œ
    192.168.0.38

  • ํฌํŠธ๋Š” ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์„ ์ง€์นญํ•œ๋‹ค
    mySQL, MariaDB ๋‘˜ ๋‹ค 3306
    ๋”ฐ๋ผ์„œ mySQL์ด ์ด๋ฏธ ์žˆ์œผ๋ฉด MariaDB๋Š” 3307๋กœ

  • ์ž์ฃผ ์“ฐ์ด๋Š” ํฌํŠธ ์˜ˆ์‹œ
    8080 โ†’ ์›น ์„œ๋ฒ„์—์„œ ์ž์ฃผ ์“ฐ๋Š” ํฌํŠธ
    ์›๋ž˜ HTTP ๊ธฐ๋ณธ ํฌํŠธ๋Š” 80๋ฒˆ์ธ๋ฐ, ์ด๋ฏธ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์“ฐ๊ณ  ์žˆ๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์šฉ ์„œ๋ฒ„๋ฅผ ๋„์šธ ๋•Œ ๋ณดํ†ต 8080์„ ๋งŽ์ด ์‚ฌ์šฉ.
    ์˜ˆ: http://localhost:8080 โ†’ ๋‚ด PC์—์„œ ์‹คํ–‰ ์ค‘์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ ‘์†.
    3306 โ†’ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ๊ธฐ๋ณธ ํฌํŠธ
    ํด๋ผ์ด์–ธํŠธ(phpMyAdmin, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ)๊ฐ€ MySQL DB์™€ ํ†ต์‹ ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ 3306 ํฌํŠธ๋ฅผ ์‚ฌ์šฉ.
    ์˜ˆ: mysql -h 127.0.0.1 -P 3306 -u root -p โ†’ ๋กœ์ปฌ MySQL ์ ‘์†

    IP:8080 โ†’ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(๊ฐœ๋ฐœ์šฉ ์„œ๋ฒ„ ๋“ฑ)์— ์ ‘์†
    IP:3306 โ†’ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†

  • MariaDB cmd์—์„œ CLI ๋ช…๋ น์–ด๋กœ ์ ‘์† ํ™•์ธ
  • root ๊ณ„์ •์œผ๋กœ mariadb ์ ‘์†

    mariadb -u root -p

  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ (mariadb)
  • database ์กฐํšŒ (show databases;)
  • ์ข…๋ฃŒ (quit)

์‹ค์Šต

  • ์ƒˆ๋กœ์šด swcamp ๊ณ„์ • ๋งŒ๋“ค๊ธฐ
    CREATE USER 'swcamp'@'%' IDENTIFIED BY 'swcamp';
    -> 'localhost' ๋Œ€์‹  '%'๋ฅผ ์“ฐ๋ฉด ์™ธ๋ถ€ ip๋กœ ์ ‘์† ๊ฐ€๋Šฅํ•˜๋‹ค. ์–ด๋””์„œ๋“  (๋ชจ๋“  ์™ธ๋ถ€ IP) ์ ‘์† ๊ฐ€๋Šฅ.
    %๋Š” '์–ด๋А๊ณณ์—์„œ๋“  ์ ‘์†ํ• ๊ฒŒ์š”'๋ผ๋Š” ๋œป ('swcamp'@'localhost' ์˜ค์ง ๋กœ์ปฌ ๋จธ์‹ (์„œ๋ฒ„ ์ž๊ธฐ ์ž์‹ ) ์—์„œ๋งŒ ์ ‘์† ๊ฐ€๋Šฅ

  • ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™•์ธ
    SHOW DATABASES;

  • mysql ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ณ„์ • ์ •๋ณด ํ™•์ธํ•˜๊ธฐ
    USE mysql; (mysql database๋Š” ๊ธฐ๋ณธ ์ ์œผ๋กœ ์ œ๊ณต๋จ)

  • mysql database์—์„œ user๋ฅผ ํ™•์ธํ•ด ๊ณ„์ •์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธ
    SELECT * FROM user;

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์Šคํ‚ค๋งˆ) ์ƒ์„ฑ
    CREATE DATABASE menudb;
    MySQL ๋˜๋Š” MariaDB๋Š” ๊ฐœ๋…์ ์œผ๋กœ database์™€ schema๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ(CREATE DATABASE = CREATE SCHEMA)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ์™„๋ฃŒ ํ™•์ธ
    SHOW DATABASES;

  • swcamp ๊ณ„์ •์˜ ๊ถŒํ•œ ํ™•์ธํ•˜๊ธฐ
    SHOW GRANTS FOR 'swcamp'@'%';

  • ์™ผ์ชฝ Navigator๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•ด์„œ menudb database(schema)๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธํ•œ๋‹ค.

  • menu์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ถŒํ•œ ๋ถ€์—ฌ
    GRANT ALL PRIVILEGES ON menudb.* TO 'swcamp'@'%';

  • swcamp ๊ณ„์ •์˜ ๋ฐ”๋€ ๊ถŒํ•œ ํ™•์ธํ•˜๊ธฐ
    SHOW GRANTS FOR 'swcamp'@'%';

  • ์ƒˆ๋กœ์šด ์ ‘์†๊ธฐ ์ƒ์„ฑ ํ›„ ์ ‘์†ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™œ์šฉํ•˜๊ธฐ
    -- ์ขŒ์ธก ์ƒ๋‹จ์˜ 'ํŒŒ์ผ' ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ '์„ธ์…˜ ๊ด€๋ฆฌ์ž'์—์„œ '์‹ ๊ทœ'๋กœ swcamp ๊ณ„์ • ์ ‘์†๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด
    -- ์ ‘์†ํ•˜๊ณ  database(schema)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    -- ์ ‘์†๊ธฐ์˜ Connection Name์€ 'SWCAMP'๋กœ ์ง€์ •
    -- Parameters์˜ Username์€ 'swcamp'๋กœ ์ง€์ •(๊ณ„์ •๋ช…)
    -- Default Schema(๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์Šคํ‚ค๋งˆ) ์„ค์ •)๋Š” 'menudb'๋กœ ์ง€์ • USE menudb;

DB script

๋…ผ๋ฆฌ ๋ชจ๋ธ
๋ฌผ๋ฆฌ ๋ชจ๋ธ

  • DBeaver ์—์„œ๋Š”
    ํ•œ์ค„์”ฉ ์‹คํ–‰ํ•˜๋ ค๋ฉด ctrl+enter
    ์—ฌ๋Ÿฌ์ค„ ํ•œ๋ฒˆ์— ์‹คํ–‰ํ•˜๋ ค๋ฉด Alt+x

COMMIT; ํ•ด์ค˜์•ผ ๋”ฑ ๋๋‚จ. ์•ˆํ•˜๋ฉด ๋Œ€๊ธฐ์ƒํƒœ๋กœ ๊ณ„์† ์œ ์ง€๋จ.

SELECT ์ ˆ

ํŠน์ •ํ…Œ์ด๋ธ”์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด์„œ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์‚ฌ์šฉ๋จ

SELECT 
		menu_price >> 2๋ฒˆ
	FROM           >> 1๋ฒˆ

SELECT ์‚ฌ์น™์—ฐ์‚ฐ

  • ๋‚ด์žฅํ•จ์ˆ˜
    SELECT NOW( ) : ์‹œ๊ฐ„ ํ™•์ธ
    SELECT CONCAT(' ',' ') : ๋ฌธ์ž์—ด ์ด์–ด๋ถ™์ด๊ธฐ

ORDER BY

select๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉฐ result set์„ ์ •๋ ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค

  • ํ•˜๋‚˜์˜ ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
    ASC๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ (์ƒ๋žต๊ฐ€๋Šฅ, default)
    DESC๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ
SELECT                                       
       menu_code                             
     , menu_name                             
     , menu_price                            
  FROM tbl_menu                              
 ORDER BY menu_price DESC;
  • ์—ฌ๋Ÿฌ ์—ด๋กœ ์ •๋ ฌ
    - ์ •๋ ฌ ๊ธฐ์ค€์ƒ ๋™์ผํ•œ ๊ฐ’์ด ์žˆ์„๋•Œ, ๊ทธ ๋‹ค์Œ ์ •๋ ฌ ๊ธฐ์ค€์„ ์„ธ์šธ ์ˆ˜ ์žˆ๋‹ค
SELECT
       menu_code
     , menu_name
     , menu_price
  FROM tbl_menu
 ORDER BY menu_price DESC, menu_name ASC;
 
 >>price๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ํ›„, ๊ฐ™์€ price ๋‚ด์—์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
  • ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋กœ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ ์ •๋ ฌ
  • ๋ณ„์นญ์„ ๋‹ฌ์•„์ค„ ์ˆ˜๋„ ์žˆ๋‹ค (AS)

0๊ฐœ์˜ ๋Œ“๊ธ€