Skip to content

Latest commit

ย 

History

History
68 lines (53 loc) ยท 2.96 KB

File metadata and controls

68 lines (53 loc) ยท 2.96 KB

SQL

SQL (Structured Query Language)

  • Database์— ์žˆ๋Š” ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์–ธ์–ด
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ์–ธ์–ด
    • ๋ชจ๋“  RDBMS์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (MySQL, PostgreSQL, Oracle ๋“ฑ)
    • ANSI ํ‘œ์ค€
  • Query์˜ ๋Œ€์†Œ๋ฌธ์ž๋Š” ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ
    • ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ์˜ ๋Œ€์†Œ๋ฌธ์ž๋Š” ๊ตฌ๋ถ„
    • MySQL์€ ๋ฐ์ดํ„ฐ๋„ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ (default ์„ค์ •)
    • ์ฟผ๋ฆฌ ์บ์‹ฑ์˜ ๊ฒฝ์šฐ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์บ์‹ฑํ•˜์ง€๋งŒ MySQL InnoDB์—์„œ๋Š” ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์ฟผ๋ฆฌ ์บ์‹ฑ์ด ์ œ๊ฑฐ๋จ

RDBMS (Relational Database Management System)

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ” ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜๊ณ  ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ
  • ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜์˜ DBMS
    • ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ” ๋‹จ์œ„๋กœ ๊ด€๋ฆฌํ•จ. ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์นผ๋Ÿผ์œผ๋กœ ๊ตฌ์„ฑ
    • ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์†Œํ™” ์‹œํ‚ด. ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ์นผ๋Ÿผ ๋˜๋Š” ํ…Œ์ด๋ธ”์— ์กด์žฌํ–ˆ์„ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ • ์‹œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง€๋ฏ€๋กœ ์ •๊ทœํ™” ํ•„์š”

DDL, DML, DCL


ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ

  • SQL์€ ํŠธ๋žœ์žญ์…˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€
  • ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Œ
    • COMMIT: ํŠธ๋žœ์žญ์…˜์„ ์ข…๋ฃŒํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ €์žฅ
    • ROLLBACK: ํŠธ๋žœ์žญ์…˜์„ ์ทจ์†Œํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋˜๋Œ๋ฆผ
    • SAVEPOINT: ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ์ง€์ ์„ ์„ค์ •

์กฐ์ธ (Join)

  • SQL์€ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Œ
  • ์กฐ์ธ์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Œ
    • INNER JOIN : ๋‘ ํ…Œ์ด๋ธ”์—์„œ ์ผ์น˜ํ•˜๋Š” ํ–‰๋งŒ ์กฐํšŒ
    • LEFT JOIN : ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰๊ณผ ์ผ์น˜ํ•˜๋Š” ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ํ–‰์„ ์กฐํšŒ
    • RIGHT JOIN : ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰๊ณผ ์ผ์น˜ํ•˜๋Š” ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ ํ–‰์„ ์กฐํšŒ
    • FULL OUTER JOIN : ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ์กฐํšŒ (์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Œ)

์ง‘๊ณ„ ํ•จ์ˆ˜

  • SQL์€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์•ฝํ•˜๊ฑฐ๋‚˜ ์ง‘๊ณ„ํ•  ๋•Œ ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณต
  • ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Œ
    • COUNT(): ํ–‰์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
    • SUM(): ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐ
    • AVG(): ํ‰๊ท ์„ ๊ณ„์‚ฐ
    • MAX(), MIN(): ์ตœ๋Œ€๊ฐ’๊ณผ ์ตœ์†Œ๊ฐ’์„ ๋ฐ˜ํ™˜

์ธ๋ฑ์Šค

  • SQL์—์„œ ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • CREATE INDEX ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•˜์—ฌ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์กฐํšŒ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ ์ ˆํ•œ ์ธ๋ฑ์Šค ์„ค๊ณ„๊ฐ€ ํ•„์š”

๋ณด์•ˆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ

  • SQL์€ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š” ๊ถŒํ•œ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • ์ฃผ์š” ๋ช…๋ น์–ด๋Š” GRANT, REVOKE๊ฐ€ ์กด์žฌ
    • GRANT : ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ์„ ๋ถ€์—ฌ
    • REVOKE : ๋ถ€์—ฌ๋œ ๊ถŒํ•œ์„ ์ฒ ํšŒ