๊ด€๋ฆฌ ๋ฉ”๋‰ด

IT’s Portfolio

[Lecture] DataBase - Day 6~8 ๋ณธ๋ฌธ

Development Study

[Lecture] DataBase - Day 6~8

f1r3_r41n 2023. 12. 29. 18:03
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ–ฅ DataBase - Day 6

๐Ÿ‘‰๐Ÿป [Chapter 08] ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ์กฐ์ธ

[01] ์กฐ์ธ

  • join
    • ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ
    • ์กฐ์ธ ์†์„ฑ : ์กฐ์ธ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์†์„ฑ
      • ์กฐ์ธ ์†์„ฑ์˜ ์ด๋ฆ„์€ ๋‹ฌ๋ผ๋„ ๋˜์ง€๋งŒ ๋„๋ฉ”์ธ์€ ๊ฐ™์•„์•ผ ํ•จ
      • ์ผ๋ฐ˜์ ์œผ๋กœ ์™ธ๋ž˜ํ‚ค๊ฐ€ ์กฐ์ธ ์†์„ฑ์œผ๋กœ ์ด์šฉ๋จ
    • ๊ฐ™์€ ์ด๋ฆ„์˜ ์†์„ฑ์ด ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์†์„ฑ ์ด๋ฆ„ ์•ž์— ํ•ด๋‹น ์†์„ฑ์ด ์†Œ์†๋œ ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„ ํ‘œ์‹œ

[02] ์กฐ์ธ ์ข…๋ฅ˜

  • ๋“ฑ๊ฐ€ ์กฐ์ธ(equi join)
    • ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์กฐ์ธ ๋ฐฉ์‹
    • ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•œ ํ›„์— ์ถœ๋ ฅ ํ–‰์„ ๊ฐ ํ…Œ์ด๋ธ”์˜ ํŠน์ • ์—ด์— ์ผ์น˜ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ ์ •ํ•˜๋Š” ๋ฐฉ์‹
    • ๋‚ด๋ถ€ ์กฐ์ธ(inner join), ๋‹จ์ˆœ ์กฐ์ธ(simple join)
  • ๋“ฑ๊ฐ€ ์กฐ์ธ(equi join) : = ์‚ฌ์šฉ
  • ์ž์ฒด ์กฐ์ธ(self join) : ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์‚ฌ์šฉ
  • ์™ธ๋ถ€ ์กฐ์ธ(outer join) : ์กฐ์ธ ์กฐ๊ฑด์˜ NULL ๋ฐ์ดํ„ฐ๋„ ์ถœ๋ ฅ
    • left
    • right

[03] SQL-99 ํ‘œ์ค€ ๋ฌธ๋ฒ•์œผ๋กœ ๋ฐฐ์šฐ๋Š” ์กฐ์ธ

  • natural join : ๋‘ ํ…Œ์ด๋ธ”์˜ ๊ฐ™์€ ์—ด ๊ธฐ์ค€
  • join ~ using : ์กฐ์ธ์— ์‚ฌ์šฉํ•  ๊ธฐ์ค€์—ด ๋ช…์‹œ
  • join ~ on : ์กฐ์ธ ์กฐ๊ฑด ์ง์ ‘ ๋ช…์‹œ
  • outer join : ์™ธ๋ถ€ ์กฐ์ธ



๐Ÿ–ฅ DataBase - Day 7

๐Ÿ‘‰๐Ÿป [Chapter 09] SQL๋ฌธ ์† ๋˜ ๋‹ค๋ฅธ SQL๋ฌธ, ์„œ๋ธŒ์ฟผ๋ฆฌ

[01] ์„œ๋ธŒ์ฟผ๋ฆฌ

select ์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ...
from ํ…Œ์ด๋ธ” ๋˜๋Š” ๋ทฐ
where ์ปฌ๋Ÿผ ์—ฐ์‚ฐ์ž (select ์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ...
                from ํ…Œ์ด๋ธ”
                where ์กฐ๊ฑด);
  • sub query

    • select ๋ฌธ ์•ˆ์— ๋‹ค์‹œ select ๋ฌธ์ด ๊ธฐ์ˆ ๋œ ํ˜•ํƒœ์˜ ์ฟผ๋ฆฌ
    • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”์ธ์ฟผ๋ฆฌ์—์„œ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ
      • ์ค‘์ฒฉ๋œ(nested) ์ฟผ๋ฆฌ
    • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋Š” ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉ๋จ
    • ๋‹จ์ผ select ๋ฌธ์œผ๋กœ ์กฐ๊ฑด์‹์„ ๋งŒ๋“ค๊ธฐ์—๋Š” ์กฐ๊ฑด์ด ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ์™„์ „ํžˆ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์กฐํšŒํ•˜์—ฌ ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค ํ•  ๋•Œ ์œ ์šฉํ•จ
    • ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋‘ ๋ฒˆ ์ž‘์„ฑํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š” select ๋ฌธ์„ ํ•œ ๋ฒˆ๋งŒ ์ž‘์„ฑํ•ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ
  • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ํŠน์ง•

    • ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ๋Š” order by ์ ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
    • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ select ์ ˆ์— ๋ช…์‹œ๋œ ์—ด์€ ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ๋น„๊ต ๋Œ€์ƒ๊ณผ ๊ฐ™์€ ์ž๋ฃŒํ˜•๊ณผ ๊ฐ™์€ ๊ฐœ์ˆ˜๋กœ ์ง€์ •ํ•ด์•ผ ํ•จ
    • ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ํ–‰์ˆ˜๋Š” ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ์—ฐ์‚ฐ์ž ์ข…๋ฅ˜์™€ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•ด์•ผํ•จ
      • ๋‹จ์ผํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ, ๋‹ค์ค‘ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ

[02] ๋‹จ์ผํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ

  • single-row sub query
    • ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‹จ ํ•˜๋‚˜์˜ ํ–‰์œผ๋กœ ๋‚˜์˜ค๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ
    • ๋‹จ์ผํ–‰ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ
      • >, >=, =, <=, <, <>, ^=, !=

[03] ๋‹ค์ค‘ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ

  • multi-row sub query
    • ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ–‰์œผ๋กœ ๋‚˜์˜ค๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ
    • ๋‹ค์ค‘ํ–‰ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ
      • in
        • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ์™€ ์ผ์น˜ํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์ง„ ํ–‰ ์ถœ๋ ฅ
        • where ์ ˆ์— ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ์—†์„ ๋•Œ์˜ in ์—ฐ์‚ฐ์ž์™€ ๋™์ผํ•œ ํšจ๊ณผ
      • any, some
        • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๊ฐ’ ์ค‘ ๋ฉ”์ธ์ฟผ๋ฆฌ์™€ ์กฐ๊ฑด์‹์„ ์‚ฌ์šฉํ•œ ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ true๋ผ๋ฉด ๋ฉ”์ธ์ฟผ๋ฆฌ ์กฐ๊ฑด์‹์„ true๋กœ ๋ฐ˜ํ™˜
      • all
        • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๋ชจ๋“  ๊ฒฐ๊ณผ๊ฐ€ ์กฐ๊ฑด์‹์— ๋งž์•„์•ผ๋งŒ ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด์‹์ด true๊ฐ€ ๋˜๋Š” ์—ฐ์‚ฐ์ž
      • exit
        • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ์กด์žฌํ•˜๋ฉด ์กฐ๊ฑด์‹์ด ๋ชจ๋‘ true
        • ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
          • ํŠน์ • ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ’์˜ ์กด์žฌ ์œ ๋ฌด์— ๋”ฐ๋ผ ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ๋…ธ์ถœ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•  ๋•Œ ๊ฐ„ํ˜น ์‚ฌ์šฉ

[04] ๋‹ค์ค‘์—ด ์„œ๋ธŒ์ฟผ๋ฆฌ

  • multiple-column sub query
    • ์„œ๋ธŒ์ฟผ๋ฆฌ์— ์—ฌ๋Ÿฌ ์—ด ์ง€์ •
    • ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ๋น„๊ต ์—ด์€ ๋™์ผํ•œ ๊ฐœ์ˆ˜/์ž๋ฃŒํ˜•์„ ()๋กœ ๋ฌถ์–ด์„œ ์ง€์ •



๐Ÿ–ฅ DataBase - Day 8

๐Ÿ‘‰๐Ÿป [Chapter 10] ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด

[01] ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ

  • DML(Data Manipulation Language)
    • ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด
    • insert, update, delete, select ๋ฌธ
    • ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ํŠธ๋žœ์žญ์…˜(transaction)์ด๋ผ๊ณ  ํ•จ
    • DML์€ ํŠธ๋žœ์žญ์…˜์„ ๋‹ค๋ฃจ๋Š” ๋ช…๋ น์–ด
insert into ํ…Œ์ด๋ธ”๋ช…[(์—ด์ด๋ฆ„1, ์—ด์ด๋ฆ„2 ...)]
values (๋ฐ์ดํ„ฐ๊ฐ’1, ๋ฐ์ดํ„ฐ๊ฐ’2 ...);
  • insert : ํ–‰ ์‚ฝ์ž…ํ•˜๊ธฐ
    • ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ํ–‰์„ ์‚ฝ์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•จ
    • ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ(new data)๋ฅผ ํ–‰ ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•จ
    • ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋‹ค์Œ์— ์—ด ์ˆœ์„œ์— ๋”ฐ๋ผ ์ฐจ๋ก€๋Œ€๋กœ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๊ธฐ์ˆ ํ•ด์„œ ์ƒˆ๋กœ์šด ํ–‰ ์‚ฝ์ž…
    • values ์ ˆ์—๋Š” ํ…Œ์ด๋ธ”์˜ ํ•œ ํ–‰์— ์‚ฝ์ž…๋  ๊ฐ’์„ ๊ธฐ์ˆ ํ•จ
    • ์—ด ์ด๋ฆ„์„ ๋ชจ๋‘ ๊ธฐ์ˆ ํ•˜์ง€ ์•Š๊ณ  ์ƒ๋žตํ•œ ์ฑ„๋กœ ์—ด ์ˆœ์„œ์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ ๊ฐ’๋งŒ ๊ธฐ์ˆ ํ•ด๋„ ์ƒˆ๋กœ์šด ํ–‰์ด ์‚ฝ์ž…๋จ
  • ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฒฝ์šฐ
    • ์ง€์ •ํ•œ ์—ด ๊ฐœ์ˆ˜์™€ ์ž…๋ ฅํ•  ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ๋งž์ง€ ์•Š์„ ๋•Œ
    • ์ง€์ •ํ•œ ์—ด์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ์ž…๋ ฅํ•  ๋ฐ์ดํ„ฐ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋‚˜ ํฌ๊ธฐ๊ฐ€ ๋งž์ง€ ์•Š์„ ๋•Œ
  • ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ
    • insert ๋ฌธ์— ์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉ ์‹œ ์œ ์˜์ 
      • values ์ ˆ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
      • ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ํ…Œ์ด๋ธ”์˜ ์—ด ๊ฐœ์ˆ˜์™€ ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ์—ด ๊ฐœ์ˆ˜๊ฐ€ ์ผ์น˜ํ•ด์•ผ ํ•จ
      • ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ํ…Œ์ด๋ธ”์˜ ์ž๋ฃŒํ˜•๊ณผ ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ์ž๋ฃŒํ˜•์ด ์ผ์น˜ํ•ด์•ผ ํ•จ

[02] ๋ฐ์ดํ„ฐ ์ˆ˜์ •ํ•˜๊ธฐ

update [๋ณ€๊ฒฝํ•  ํ…Œ์ด๋ธ”]
set [๋ณ€๊ฒฝํ•  ์—ด1]=[๋ฐ์ดํ„ฐ], [๋ณ€๊ฒฝํ•  ์—ด2]=[๋ฐ์ดํ„ฐ], ...
[where ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋Œ€์ƒ ํ–‰์„ ์„ ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด];
  • update : ํ–‰ ์ˆ˜์ •ํ•˜๊ธฐ
    • ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉ
    • update ์ ˆ์— where ์กฐ๊ฑด ์ ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐฑ์‹ ํ•˜๋ ค๋Š” ๋Œ€์ƒ์˜ ์กฐ๊ฑด์„ ๊ธฐ์ˆ ํ•  ์ˆ˜ ์žˆ์Œ
  • ์œ ์˜์ 
    • update ๋ฌธ์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „ update ๋ฌธ์˜ where ์ ˆ ๊ฒ€์ฆ ์ž‘์—…์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”

[03] ๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ

delete [from] [ํ…Œ์ด๋ธ” ์ด๋ฆ„]
[where ์‚ญ์ œํ•  ๋Œ€์ƒ ํ–‰์„ ์„ ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์‹];
  • delete : ํ–‰ ์‚ญ์ œํ•˜๊ธฐ
    • where ์ ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    • where ์ ˆ ์ƒ๋žต ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋จ
728x90
๋ฐ˜์‘ํ˜•

'Development Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Lecture] DataBase - Day 10~11  (1) 2023.12.29
[Lecture] DataBase - Day 9  (1) 2023.12.29
[Lecture] DataBase - Day 5  (0) 2023.12.29
[Lecture] DataBase - Day 4  (0) 2023.12.29
[Lecture] DataBase - Day 3  (1) 2023.12.29
Comments