๊ตฌ์กฐ์  ์งˆ์˜์–ด(SQL) ์™„๋ฒฝ ๊ฐ€์ด๋“œ

์ถœ์ œ ๋นˆ๋„: ์ƒ
๋นˆ์ถœ ํƒœ๊ทธ: DDL, DML, DCL, ๊ด€๊ณ„ ๋Œ€์ˆ˜, ๊ด€๊ณ„ ํ•ด์„

SQL (Structured Query Language)

๊ธฐ๋ณธ ๊ฐœ๋…

  • ์ •์˜: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ดํ•˜๋Š” ํ‘œ์ค€ ์–ธ์–ด (๊ด€๊ณ„๋Œ€์ˆ˜ ๊ธฐ์ดˆ)
  • ์ƒˆ๋กœ์šด ํ˜•ํƒœ์˜ ๋ฆด๋ ˆ์ด์…˜์„ ์ถœ๋ ฅ
  • ์ž์—ฐ์–ด์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ์˜ ๊ณ ๊ธ‰ ์–ธ์–ด
  • ์ •์˜, ์กฐ์ž‘, ์ œ์–ด ๊ธฐ๋Šฅ์ด ๊ฐ๊ฐ DDL, DML, DCL๋กœ ๊ตฌํ˜„

๋‚ด์žฅ SQL

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ํฌํ•จ๋œ SQL (ํ˜ธ์ŠคํŠธ ํ”„๋กœ๊ทธ๋žจ)
  • ์ผ๋ฐ˜ SQL์€ ๋‹ค์ˆ˜ ํŠœํ”Œ ๋ฐ˜ํ™˜ ๊ฐ€๋Šฅ, ๋‚ด์žฅ SQL์€ ๋‹จ์ผ ํŠœํ”Œ๋งŒ ๋ฐ˜ํ™˜
  • ๋ณ€์ˆ˜-ํ•„๋“œ ์ด๋ฆ„์€ ๋‹ฌ๋ผ๋„ ๋˜๋‚˜ ํƒ€์ž…์€ ์ผ์น˜ ํ•„์š”

SQL ๋ช…๋ น์–ด ๋ถ„๋ฅ˜

๋ฐ์ดํ„ฐ ์ •์˜์–ด (DDL: Data Definition Language)

  • ์šฉ๋„: ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ์œ„ํ•œ ๊ณต๊ฐ„(Database Object) ์ •์˜/์ˆ˜์ •/๋ณ€๊ฒฝ
  • ์‚ฌ์šฉ์ž: DBA(Database Administration)
  • ๋Œ€์ƒ: ์Šคํ‚ค๋งˆ, ๋„๋ฉ”์ธ, ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค ๋“ฑ

โญ ์ฃผ์š” ๋ช…๋ น์–ด

  • CREATE: DB๊ฐ์ฒด ์ƒ์„ฑ
  • ALTER: DB๊ฐ์ฒด ์ˆ˜์ •
  • DROP: DB๊ฐ์ฒด ์ œ๊ฑฐ
  • TRUNCATE: DB๊ฐ์ฒด ๋ฐ์ดํ„ฐ ์ „์ฒด ์‚ญ์ œ

๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (DML: Data Markup Language)

  • ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ๊ฐฑ์‹ , ์‚ญ์ œ ๊ธฐ๋Šฅ
  • TCL์„ ํ†ตํ•œ ์‹คํ–‰ ์ „ ์ƒํƒœ ๋ณต๊ตฌ ๊ฐ€๋Šฅ

โญ ์ฃผ์š” ๋ช…๋ น์–ด

  • INSERT: ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
  • UPDATE: ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ 
  • DELETE: ๋ฐ์ดํ„ฐ ์‚ญ์ œ
  • SELECT: ๋ฐ์ดํ„ฐ ์กฐํšŒ

๋ฐ์ดํ„ฐ ์ œ์–ด์–ด (DCL: Data Control Language)

  • ์ ‘๊ทผ ํ†ต์ œ์™€ ๋ณ‘ํ–‰ ์ˆ˜ํ–‰(๊ณต์œ )๋ฅผ ์œ„ํ•œ ์ œ์–ด ์–ธ์–ด

โญ ์ฃผ์š” ๋ช…๋ น์–ด

  • GRANT: ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๋ถ€์—ฌ
  • REVOKE: ์‚ฌ์šฉ์ž ๊ถŒํ•œ ํšŒ์ˆ˜

ํŠธ๋žœ์žญ์…˜ ์ œ์–ด์–ด (TCL: Transaction Control Language)

  • COMMIT: ํŠธ๋žœ์žญ์…˜ ๊ฒฐ๊ณผ ๋ฐ˜์˜
  • ROLLBACK: ํŠธ๋žœ์žญ์…˜ ์ž‘์—… ์ทจ์†Œ
  • CHECKPOINT: ํŠธ๋žœ์žญ์…˜ ๋ณต๊ท€ ์ง€์  ์„ค์ •

๊ด€๊ณ„ํ•ด์„ (Relation Calculus)

๊ธฐ๋ณธ ๊ฐœ๋…

  • ์ •๋ณด๊ฐ€ ๋ฌด์—‡(What)์ธ์ง€ ์ •์˜ํ•˜๋Š” ๋น„์ ˆ์ฐจ์  ์–ธ์–ด
  • ์ˆ ์–ด ํ•ด์„ ๊ธฐ๋ฐ˜ (์‹คํ–‰๊ฒฐ๊ณผ๊ฐ€ ์ฐธ/๊ฑฐ์ง“์œผ๋กœ ๋‚˜ํƒ€๋‚จ)
  • SQL๋ฌธ๊ณผ ๊ฐ™์€ ์งˆ์˜์–ด ์‚ฌ์šฉ
  • ํŠœํ”Œ ๊ด€๊ณ„ ํ•ด์„๊ณผ ๋„๋ฉ”์ธ ๊ด€๊ณ„ ํ•ด์„์œผ๋กœ ๊ตฌ์„ฑ

๋…ผ๋ฆฌ ๊ธฐํ˜ธ

  • OR (โˆจ): ์›์ž์‹ ๊ฐ„์˜ โ€˜๋˜๋Š”โ€™ ์—ฐ๊ฒฐ
  • AND (โˆง): ์›์ž์‹ ๊ฐ„์˜ โ€˜๊ทธ๋ฆฌ๊ณ โ€™ ์—ฐ๊ฒฐ
  • NOT (ยฌ): ์›์ž์‹ ๋ถ€์ •

์ •๋Ÿ‰์ž

  • Universal Quantifier (โˆ€): ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•˜์—ฌ (for all)
  • Existential Quantifier (โˆƒ): ์–ด๋А ๊ฒƒ ํ•˜๋‚˜๋ผ๋„ ์กด์žฌ (there exists)

๊ด€๊ณ„๋Œ€์ˆ˜ (Relational Algebra) โญ๋นˆ์ถœโญ

๊ธฐ๋ณธ ๊ฐœ๋…

  • ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ(How) ์œ ๋„ํ•˜๋Š”์ง€ ์ •์˜ํ•˜๋Š” ์ ˆ์ฐจ์  ์–ธ์–ด
  • ์ฃผ์–ด์ง„ ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜ ์œ ๋„

์—ฐ์‚ฐ์ž ์ข…๋ฅ˜

  • ์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž: ํ•ฉ์ง‘ํ•ฉ(โˆช), ๊ต์ง‘ํ•ฉ(โˆฉ), ์ฐจ์ง‘ํ•ฉ(โˆ’), ๊ต์ฐจ๊ณฑ(ร—)
  • ์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž: SELECT(ฯƒ), PROJECT(ฯ€), JOIN(โจ), DIVISION(รท)

์ง‘ํ•ฉ ์—ฐ์‚ฐ

  1. ํ•ฉ์ง‘ํ•ฉ (Union)
    • R โˆช S = {e | e โˆˆ R โˆจ e โˆˆ S} = R UNION S
    • ์ฐจ์ˆ˜์™€ ๋Œ€์‘ ์†์„ฑ์˜ ๋„๋ฉ”์ธ์ด ๋™์ผํ•ด์•ผ ํ•จ
    • ์ค‘๋ณต ์ œ๊ฑฐํ•˜์—ฌ ํ•ฉ์นจ
  2. ๊ต์ง‘ํ•ฉ (Intersection)
    • R โˆฉ S = {e | e โˆˆ R โˆง e โˆˆ S} = R INTERSECT S
    • ์ฐจ์ˆ˜์™€ ๋Œ€์‘ ์†์„ฑ์˜ ๋„๋ฉ”์ธ์ด ๋™์ผํ•ด์•ผ ํ•จ
    • ๋™์ผ(์ค‘๋ณต) ํŠœํ”Œ ์ถ”์ถœ
  3. ์ฐจ์ง‘ํ•ฉ (Difference)
    • R - S = {e | e โˆˆ R โˆง e โˆ‰ S} = R MINUS S
    • ์ฐจ์ˆ˜์™€ ๋Œ€์‘ ์†์„ฑ์˜ ๋„๋ฉ”์ธ์ด ๋™์ผํ•ด์•ผ ํ•จ
    • ๊ฒฐ๊ณผ๋Š” ๋Œ€์ƒ ๋ฆด๋ ˆ์ด์…˜(R)์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ
  4. ๊ณฑ์ง‘ํ•ฉ (Cartesian Product)
    • ์ˆœ์„œ์Œ ์ง‘ํ•ฉ ์ƒ์„ฑ
    • ์ฐจ์ˆ˜/๋„๋ฉ”์ธ์ด ๋‹ฌ๋ผ๋„ ๊ฐ€๋Šฅ
    • ๊ฒฐ๊ณผ: ๊ธฐ์ˆ˜๋Š” ๋‘ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ณฑ, ์ฐจ์ˆ˜๋Š” ๋‘ ๋ฆด๋ ˆ์ด์…˜ ์ฐจ์ˆ˜์˜ ํ•ฉ
    • ์•”๊ธฐ๋ฒ•: ์—ด-์ฐจ (๋น„)ํ–‰-๊ธฐ

๊ด€๊ณ„ ์—ฐ์‚ฐ

  1. SELECT
    • ์ˆ˜ํ‰์ (ํŠœํ”Œ) ๋ถ€๋ถ„ ์ง‘ํ•ฉ ์ถ”์ถœ
    • ํ‘œ๊ธฐ: ฯƒ <์กฐ๊ฑด> (R)
    • ์˜ˆ: ฯƒ ๋Œ€์—ฌํšŸ์ˆ˜ > 7 (R)
  2. PROJECT
    • ์ˆ˜์ง์ (์†์„ฑ) ๋ถ€๋ถ„ ์ง‘ํ•ฉ ์ถ”์ถœ
    • ํ‘œ๊ธฐ: ฯ€ <๋ฆฌ์ŠคํŠธ> (R)
    • ์˜ˆ: ฯ€ ํšŒ์›๋ฒˆํ˜ธ, ์ด๋ฆ„ (R)
  3. JOIN
    • ์กฐ๊ฑด์— ๋งž๋Š” ํŠœํ”Œ์„ ํ•ฉ์ณ ์ƒˆ๋กœ์šด ๋ฆด๋ ˆ์ด์…˜ ์ƒ์„ฑ
    • ๊ณตํ†ต ์†์„ฑ ํ•„์š”
    • ์ข…๋ฅ˜:
      • R โ‹ˆ ์†์„ฑ = ์†์„ฑ S: ๋™์ผ ์†์„ฑ ๊ธฐ์ค€ ์กฐ์ธ (์ค‘๋ณต ํฌํ•จ)
      • R โ‹ˆ N S: ๋™์ผ ์†์„ฑ ๊ธฐ์ค€ ์กฐ์ธ (์ค‘๋ณต ์ œ์™ธ)
      • R โ‹ˆ + S: ์กฐ๊ฑด ๋ถˆ์ผ์น˜ ํŠœํ”Œ๋„ ํฌํ•จ (NULL ์ฒ˜๋ฆฌ)
      • R โ‹ˆ ฮธ S: ๋“ฑํ˜ธ ์™ธ ์กฐ๊ฑด์‹ ๊ธฐ์ค€ ์กฐ์ธ
  4. DIVISION
    • R รท S: S ์†์„ฑ๊ฐ’ ๊ธฐ์ค€์œผ๋กœ R์˜ ๋‚˜๋จธ์ง€ ์†์„ฑ ์ค‘ S์˜ ๋ชจ๋“  ๊ฐ’ ๋งŒ์กฑํ•˜๋Š” ํŠœํ”Œ ๋ฐ˜ํ™˜

์ฟผ๋ฆฌ ์ตœ์ ํ™” ๊ทœ์น™

์ฃผ์š” ์›์น™

  • ์ ˆ๋Œ€์ ์ธ ์ตœ์ ํ™” ๊ทœ์น™์€ ์—†์Œ
  • Project(์ˆ˜์ง์ ) ์—ฐ์‚ฐ์€ ์ตœ๋Œ€ํ•œ ์ผ์ฐ ์ˆ˜ํ–‰
  • Select(์ˆ˜ํ‰์ ) ์—ฐ์‚ฐ๋„ ๊ฐ€๊ธ‰์  ์ผ์ฐ ์ˆ˜ํ–‰
  • Join ์—ฐ์‚ฐ์€ ์„ฑ๋Šฅ ์˜ํ–ฅ์ด ํฌ๋ฏ€๋กœ ๋งˆ์ง€๋ง‰์— ์ˆ˜ํ–‰