SQL ์‹œ๋ฆฌ์ฆˆ (7์žฅ) ๐Ÿชด

On a regular basisยท2021๋…„ 8์›” 21์ผ
0

SQL ์‹œ๋ฆฌ์ฆˆ ๐Ÿช“

๋ชฉ๋ก ๋ณด๊ธฐ
7/8
post-thumbnail

<SQL ์ฒซ๊ฑธ์Œ> ์„ ๋ณด๊ณ  ์ง์ ‘ ํ•™์Šตํ•˜๊ณ  ๊ธฐ๋กํ•˜๋Š” ํฌ์ŠคํŠธ! ๐Ÿ”ฅ

DATABASE ๋งˆ์Šคํ„ฐ๋ฅผ ๊ฟˆ๊พธ๋ฉฐ...๐Ÿ”ฅ

๐Ÿค 7์žฅ ๋ณต์ˆ˜์˜ ํ…Œ์ด๋ธ” ๋‹ค๋ฃจ๊ธฐ

๐Ÿค 31๊ฐ• ์ง‘ํ•ฉ ์—ฐ์‚ฐ

  • ๋‚ด๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด SQL๋ช…๋ น์€ ๋Œ€๋ถ€๋ถ„ 'ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”'์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ!
  • ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ๋Š” '๋ณต์ˆ˜์˜ ํ…Œ์ด๋ธ”'์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ๊ฒƒ!
  1. SQL๊ณผ ์ง‘ํ•ฉ
  • ๋ฒค๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ๋Š” ํ•˜๋‚˜์˜ ์›์ด ๊ณง ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ. ๊ทธ ์› ์•ˆ์—๋Š” ์š”์†Œ๊ฐ€ ํฌํ•จ. ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆซ์ž ๊ฐ™์€ ๊ฒƒ.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ…Œ์ด๋ธ”์˜ ํ–‰์ด ์š”์†Œ์— ํ•ด๋‹น.
  • select ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์งˆ์˜ํ•˜๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ ๋ช‡ ๊ฐœ์˜ ํ–‰์ด ๋ฐ˜ํ™˜๋จ. ์ด๋•Œ ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ ์ „์ฒด๋ฅผ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.
  1. UNION์œผ๋กœ ํ•ฉ์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ
  • ํ•ฉ์ง‘ํ•ฉ: ์ง‘ํ•ฉ์„ ์„œ๋กœ ๋”ํ•œ ๊ฒƒ
  • a = [1,2,3], b = [2,10,11], a์™€ b์˜ ํ•ฉ์ง‘ํ•ฉ = [1,2,3,10,11]
  • SQL์—์„œ๋Š” select๋ช…๋ น์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Œ -> UNION ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ
  • 'A UNION B'๋ผ๊ณ  ํ‘œํ˜„
๐Ÿค select * from sample71_a
UNION
๐Ÿค select * from sample71_b;

-> ๋‘ ๊ฐœ์˜ ๋ช…๋ น์„ ํ•˜๋‚˜์˜ ๋ช…๋ น์œผ๋กœ ํ•ฉ์นจ!
-> ๋‘ ๊ฐœ์˜ select ๋ช…๋ น์„ ํ•˜๋‚˜์˜ ๋ช…๋ น์œผ๋กœ ํ•ฉ์น˜๋Š” ๋งŒํผ ์„ธ๋ฏธ์ฝœ๋ก (;)์€ ๋งจ ๋‚˜์ค‘์— ๋ถ™์ž„!

  • ์—ฌ๋Ÿฌ ๊ฐœ ํ•ฉ์น˜๋Š” ๊ฒƒ ๊ฐ€๋Šฅ. ๋‹จ, select๋ช…๋ น์˜ ์—ด์˜ ๋‚ด์šฉ(์—ด ๊ตฌ์„ฑ)์€ ์„œ๋กœ ์ผ์น˜ํ•ด์•ผํ•จ.

  • UNION์„ ์‚ฌ์šฉํ•  ๋•Œ์˜ order by
    UNION์œผ๋กœ select ๋ช…๋ น์„ ๊ฒฐํ•ฉํ•ด ํ•ฉ์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ select ๋ช…๋ น์— order by๋ฅผ ์ง€์ •ํ•ด ์ •๋ ฌํ•  ์ˆ˜ ์—†์Œ. order by๋ฅผ ์ง€์ •ํ•  ๋•Œ๋Š” ๋งˆ์ง€๋ง‰ select ๋ช…๋ น์—๋งŒ ์ง€์ •ํ•˜๋„๋ก ํ•จ.

    -> ์—๋Ÿฌ ๋ฐœ์ƒ: order by๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹คํ•ด๋„ ๋งˆ์ง€๋ง‰ select ๋ช…๋ น์˜ ๊ฒฐ๊ณผ๋งŒ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ํ•ฉ์ง‘ํ•ฉ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—! ๋‘๊ฐœ์˜ select ๋ช…๋ น์—์„œ ์—ด ์ด๋ฆ„์ด ์„œ๋กœ ์ผ์น˜ํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์Œ!
    -> ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ? ๋ณ„๋ช…์„ ๋ถ™์ด๊ธฐ! C!

  • UNION ALL
    -> UNION์„ ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๋ณต๊ฐ’์ด ์ œ๊ฑฐ๋˜์–ด ์ฒ˜๋ฆฌ๋จ. ๊ทผ๋ฐ ์ค‘๋ณต๊ฐ’ ์ธ์ •ํ•˜๊ณ  ๊ทธ๋ƒฅ ํ•ฉ์น˜๊ณ  ์žˆ์„ ๋•Œ๋„ ์žˆ์œผ๋‹ˆ๊นŒ...? ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” UNION ALL ์‚ฌ์šฉ!
    -> ์ค‘๋ณต ์ œ๊ฑฐ ๊ฒฝ์šฐ์—๋Š” distinct, ์ค‘๋ณต ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋‘ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ: all
    -> distinct๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด๊ณ  all๋กœ ์ค‘๋ณต์ œ๊ฑฐ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์”€!

    -> ์‚ฌ์‹ค ์š” ๋‘ ํ…Œ์ด๋ธ”์— ์ค‘๋ณต๊ฐ’์€ ์—†์ง€๋งŒ ์š”๋ ‡๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ์ณ์ฃผ๋ฉด ์ค‘๋ณต์„ ์ธ์ •ํ•˜๋Š” ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ญ‰ ๋ฝ‘์„ ์ˆ˜ ์žˆ์”€! ๐Ÿ’˜ ๊ทผ๋ฐ ์ค‘๋ณต๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋„ UNION ALL์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค€๋‹ค๊ณ  ํ•จ! .

  1. ๊ต์ง‘ํ•ฉ๊ณผ ์ฐจ์ง‘ํ•ฉ
  • MySQL์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š์ง€๋งŒ SQL์„ ์ด์šฉํ•ด ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ!
  • ๊ต์ง‘ํ•ฉ์€ INTERSECT๋ฅผ, ์ฐจ์ง‘ํ•ฉ์€ EXCEPT๋ฅผ ์‚ฌ์šฉ~!

๐Ÿค 32๊ฐ• ํ…Œ์ด๋ธ” ๊ฒฐํ•ฉ

  • ํ…Œ์ด๋ธ” ๊ฒฐํ•ฉ์€ RDBMS์—์„œ ์ฉฐ ์ค‘์š” โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ -> JOIN
  • ์ง€๊ธˆ๊นŒ์ง€๋Š” ์„ธ๋กœ(ํ–‰) ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋Š˜๊ฑฐ๋‚˜ ์ฃผ๋Š” ๊ฑธ ๊ณต๋ถ€ํ–ˆ๋”ฐ๋ฉด! ์ด์ œ๋ถ€ํ„ฐ๋Š” ๊ฐ€๋กœ(์—ด) ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋Š˜์–ด๋‚˜๋Š” ๊ณ„์‚ฐ~!
  • ๊ฒฐํ•ฉ์„ ์ดํ•ดํ•˜๋Š” ๋™์‹œ์— ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ฐœ๋…์ด '๊ณฑ์ง‘ํ•ฉ'!
  1. ๊ณฑ์ง‘ํ•ฉ๊ณผ ๊ต์ฐจ๊ฒฐํ•ฉ
  • ๋‘ ๊ฐœ์˜ ์ง‘ํ•ฉ์„ ๊ณฑํ•˜๋Š” ์—ฐ์‚ฐ ๋ฐฉ๋ฒ•.

  • x = [A,B,C], y = [1,2,3] -> x์™€ y์˜ ๊ณฑ์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋ฉด?
    -> A,1 / A,2 / A,3
    -> B,1 / B,2 / B,3
    -> C,1 / C,2 / C,3

  • ๊ต์ฐจ๊ฒฐํ•ฉ: select ๋ช…๋ น์—์„œ๋Š” from ๊ตฌ์— ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋งŒ ์ง€์ •. ์—ฌ๊ธฐ์„œ ๋‘๊ฐœ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๊ณฑ์ง‘ํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ.

๐Ÿค select * from ํ…Œ์ด๋ธ”๋ช…1, ํ…Œ์ด๋ธ”๋ช…2 ๐Ÿค


-> ์š”๋ ‡๊ฒŒ ํ•ฉ์ณค๋‹น!

  • UNION ์—ฐ๊ฒฐ๊ณผ ๊ฒฐํ•ฉ ์—ฐ๊ฒฐ์˜ ์ฐจ์ด
    -> UNION์œผ๋กœ ํ•ฉ์ง‘ํ•ฉ์„ ๊ตฌํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ์„ธ๋กœ๋ฐฉํ–ฅ์œผ๋กœ ๋”ํ•ด์ง / from ๊ตฌ๋กœ ๊ฒฐํ•ฉ์‹œ ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ๋”ํ•ด์ง.
  1. ๋‚ด๋ถ€๊ฒฐํ•ฉ
  • ๊ฒฐํ•ฉ์ด ๋œ๋‹ค๊ณ ๋Š” ํ•˜์ง€๋งŒ ํ…Œ์ด๋ธ” ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์กฐํ•ฉ ์ˆ˜๊ฐ€ ์—„์ฒญ ๋Š๋‹ˆ๊นŒ ์ง‘ํ•ฉ์ด ๊ฑฐ๋Œ€ํ•ด์งˆ๊ฑฐ์•ผ.. ๊ทธ๋ž˜์„œ ๊ทธ๊ฑธ ๋‹ค ๊ต์ฐจ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋“œ๋ฌผ๋‹น! ๊ทธ๋ž˜์„œ ๊ต์ฐจ๊ฒฐํ•ฉ < ๋‚ด๋ถ€๊ฒฐํ•ฉ ๋” ์ž์ฃผ ์‚ฌ์šฉ!

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ. ์ด๋•Œ ๊ธฐ๋ณธํ‚ค๋Š” ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐํ–‰์„ ๋Œ€ํ‘œํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ! ๊ทธ๋ž˜์„œ ์ƒํ’ˆ๋ช…๋ณด๋‹ค๋Š”(์ค‘๋ณต๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋‹ˆ๊น!) ์ƒํ’ˆ ์ฝ”๋“œ๋ฅผ '๊ธฐ๋ณธํ‚ค'๋กœ ์‚ฌ์šฉ.


-> ์š”๋ ‡๊ฒŒ ๊ธฐ๋ณธํ‚ค๋Š” ์ƒํ’ˆ์ฝ”๋“œ๋กœ!

  • ์žฌ๊ณ ํ…Œ์ด๋ธ”๋„ ๋งŒ๋“ค์–ด๋ณผ๊นŒ?


    -> ์ƒํ’ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„ ์žฌ๊ณ ์ˆ˜ ํ…Œ์ด๋ธ”!
    -> ์žฌ๊ณ ์ˆ˜ ํ…Œ์ด๋ธ”์€ ๊ธฐ๋ณธํ‚ค์ธ ์ƒํ’ˆ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ƒํ’ˆ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ(์ฐธ์กฐ)ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ด์คญ..! โญ๏ธ

  • ์žฌ๊ณ ์ˆ˜ ํ…Œ์ด๋ธ”์—์„œ ์ƒํ’ˆ๋ถ„๋ฅ˜๊ฐ€ ์ƒํ™œ์šฉํ’ˆ์ธ ์ƒํ’ˆ์˜ ์žฌ๊ณ ์ˆ˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒฝ์šฐ -> ์ด ๊ฒฝ์šฐ ์ƒํ’ˆ์ฝ”๋“œ๋ณด๋‹ค ์ƒํ’ˆ๋ช…์œผ๋กœ ํ‘œ์‹œํ•˜๋ฉด ์•Œ์•„๋ณด๊ธฐ ์‰ฌ์šธ ๊ฒƒ!
    -> ์ƒํ’ˆ๋ช… | ์žฌ๊ณ ์ˆ˜
    -> a | 200
    -> ์ด๋ ‡๊ฒŒ ์žฌ๊ณ ์ˆ˜ ํ…Œ์ด๋ธ”๊ณผ ์ƒํ’ˆ ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•ด ๊ฐ€๋กœ๋กœ ๋‚˜์—ดํ•˜๋ ค๋ฉด! from ๊ตฌ์—์„œ ํ…Œ์ด๋ธ”์„ ์„œ๋กœ ๊ฒฐํ•ฉํ•จ!

    -> ์ด๋ ‡๊ฒŒ from๊ตฌ์— ํ…Œ์ด๋ธ”์„ ๋ณต์ˆ˜๋กœ ์ง€์ •ํ•˜๋ฉด ๊ณฑ์ง‘ํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ๋จ.
    -> ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์ง‘ํ•ฉ์—์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด? where ๊ตฌ๋กœ ์กฐ๊ฑด์„ ์ง€์ •. ๋‹จ, '์ƒํ’ˆ์ฝ”๋“œ๊ฐ€ ๊ฐ™๋‹ค๋Š” ์กฐ๊ฑด'์ด ํ•„์š”!

๐Ÿค select * from ์ƒํ’ˆ, ์žฌ๊ณ ์ˆ˜
    where ์ƒํ’ˆ.์ƒํ’ˆ์ฝ”๋“œ = ์žฌ๊ณ ์ˆ˜.์ƒํ’ˆ์ฝ”๋“œ; ๐Ÿค


-> ์ด๋ ‡๊ฒŒ ๊ต์ฐจ๊ฒฐํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ๋œ ๊ณฑ์ง‘ํ•ฉ์—์„œ ์›ํ•˜๋Š” ์กฐํ•ฉ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์„ '๋‚ด๋ถ€๊ฒฐํ•ฉ'์ด๋ผ ๋ถ€๋ฆ„!

  • ์ด๋ฒˆ์—๋Š” ์ƒํ’ˆ๋ถ„๋ฅ˜๊ฐ€ '์ƒํ™œ์šฉํ’ˆ'์ด๋ผ๋Š” ์กฐ๊ฑด์„ ๊ฒ€์ƒ‰ํ•ด๋ณด์žฅ!
๐Ÿค select ์ƒํ’ˆ.์ƒํ’ˆ๋ช…, ์žฌ๊ณ ์ˆ˜.์žฌ๊ณ ์ˆ˜ from ์ƒํ’ˆ, ์žฌ๊ณ ์ˆ˜
    where ์ƒํ’ˆ.์ƒํ’ˆ์ฝ”๋“œ = ์žฌ๊ณ ์ˆ˜.์ƒํ’ˆ์ฝ”๋“œ
    and ์ƒํ’ˆ.์ƒํ’ˆ๋ถ„๋ฅ˜ = '์ƒํ™œ์šฉํ’ˆ'; ๐Ÿค


-> ๋”ฐ๋ž€๐ŸŒˆ
-> where ๊ตฌ์— ๋‘๊ฐœ์˜ ์กฐ๊ฑด์‹์ด ์ง€์ •๋˜์–ด์žˆ์Œ! 1) ๊ต์ฐจ๊ฒฐํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ๋œ ๊ณฑ์ง‘ํ•ฉ์—์„œ ์›ํ•˜๋Š” ์กฐํ•ฉ ๊ฒ€์ƒ‰ (=๊ฒฐํ•ฉ์กฐ๊ฑด) 2) ๊ฒฐํ•ฉ์กฐ๊ฑด์ด ์•„๋‹Œ ๊ฒ€์ƒ‰์กฐ๊ฑด

  1. INNER JOIN์œผ๋กœ ๋‚ด๋ถ€๊ฒฐํ•ฉํ•˜๊ธฐ
  • from ๊ตฌ์— ํ…Œ์ด๋ธ”์„ ๋ณต์ˆ˜ ์ง€์ •ํ•ด ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ํ…Œ์ด๋ธ” ๊ฒฐํ•ฉ๊ฐ€๋Šฅ

  • ๊ต์ฐจ๊ฒฐํ•ฉํ•˜๋ฉด ๊ณฑ์ง‘ํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ๋จ

  • where ์กฐ๊ฑด์„ ์ง€์ •ํ•ด ๊ณฑ์ง‘ํ•ฉ์—์„œ ํ•„์š”ํ•œ ์กฐํ•ฉ๋งŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Œ!

  • ์œ„์—๊บผ๋Š” ์˜›๋‚  ๋ฐฉ๋ฒ•์ด๋ผ๋„ค..?^^ ์ด๋ฒˆ์—๋Š” INNER JOIN ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฐํ•ฉ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด๋ณด์žฅ !

๐Ÿค select * from ํ…Œ์ด๋ธ”๋ช…1 inner join ํ…Œ์ด๋ธ”๋ช…2 on ๊ฒฐํ•ฉ์กฐ๊ฑด ๐Ÿค
  • INNER JOIN์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋Š”๊ฑฐ์–‘!
๐Ÿค select ์ƒํ’ˆ.์ƒํ’ˆ๋ช…, ์žฌ๊ณ ์ˆ˜.์žฌ๊ณ ์ˆ˜
	from ์ƒํ’ˆ inner join ์žฌ๊ณ ์ˆ˜
    	on ์ƒํ’ˆ.์ƒํ’ˆ์ฝ”๋“œ = ์žฌ๊ณ ์ˆ˜.์ƒํ’ˆ์ฝ”๋“œ
    where ์ƒํ’ˆ.์ƒํ’ˆ๋ถ„๋ฅ˜ = '์ƒํ™œ์šฉํ’ˆ'; ๐Ÿค

  • ๋‚ด๋ถ€๊ฒฐํ•ฉ (INNER JOIN)
๐Ÿค select * from ํ…Œ์ด๋ธ”๋ช…1 INNER JOIN ํ…Œ์ด๋ธ”๋ช…2 ON ๊ฒฐํ•ฉ์กฐ๊ฑด ๐Ÿค
  • ์˜›๋‚  ๋ฐฉ๋ฒ•์€ where ๊ตฌ์— ๊ฒฐํ•ฉ์กฐ๊ฑด์„ ์ง€์ •ํ•˜์˜€์ง€๋งŒ INNER JOIN์—์„œ๋Š” ON์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐํ•ฉ์กฐ๊ฑด์„ ์ง€์ •!
  1. ๋‚ด๋ถ€๊ฒฐํ•ฉ์„ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
  • ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋Š” ํ•œ ๊ตฐ๋ฐ์— ์ €์žฅํ•œ๋‹ค- ๋Š” ๋ฃฐ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋ฉ”์ด์ปค์ฝ”๋“œ์™€ ๋ฉ”์ด์ปค๋ช…์„ ๊ฐ€์ง€๋Š” '๋ฉ”์ด์ปค ํ…Œ์ด๋ธ”'์„ ์ž‘์„ฑํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ด๋ณด๊ฒ ์Œ!

  • ์ƒํ’ˆ์„ ์ œ์กฐํ•˜๋Š” ๋ฉ”์ด์ปค๊ฐ€ ๋งŽ์ด ์žˆ๋‹ค๊ณ ํ•ด๋„ ์ƒํ’ˆ์ˆ˜๋ณด๋‹ค๋Š” ์ ์Œ! ์ด๋•Œ ์ฝ”๋“œ์™€ ์ด๋ฆ„์„ ๊ฐ€์ง€๋Š” ํ…Œ์ด๋ธ”๋กœ ๋ถ„ํ• ํ•ด ๊ด€๋ฆฌํ•˜๋ฉด ์ €์žฅ๊ณต๊ฐ„ ์ ˆ์•ฝ ๊ฐ€๋Šฅ! ๋ฉ”์ด์ปค ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑํ•˜๋Š” ๋ช…๋ น๊ณผ ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด์žฅ...๐ŸŒผ

  • ์š”๋ ‡๊ฒŒ ๋จผ์ € ๋ฉ”์ด์ปค table์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ ~!

  • desc ๋ฉ”์ด์ปค ํ…Œ์ด๋ธ” ํ™•์ธ!

  • ์ƒํ’ˆํ…Œ์ด๋ธ”๊ณผ ๋ฉ”์ด์ปคํ…Œ์ด๋ธ”์„ ๋‚ด๋ถ€๊ฒฐํ•ฉํ•ด๋ณด์žฅ! ๐ŸŒน

๐Ÿค select ์ƒํ’ˆ๋ช…, ๋ฉ”์ด์ปค๋ช… from ์ƒํ’ˆ INNER JOIN ๋ฉ”์ด์ปค ON ์ƒํ’ˆ.๋ฉ”์ด์ปค์ฝ”๋“œ = ๋ฉ”์ด์ปค.๋ฉ”์ด์ปค์ฝ”๋“œ; ๐Ÿค

  • ์—ฌ๊ธฐ์„œ '๋ฉ”์ด์ปค์ฝ”๋“œ'๋Š” ๋„ˆ๋ฌด ์ค‘์š”ํ•จ.

  • ์™ธ๋ถ€ํ‚ค: ๋ฉ”์ด์ปค ํ…Œ์ด๋ธ”์˜ ๋ฉ”์ด์ปค์ฝ”๋“œ๋Š” ๊ธฐ๋ณธํ‚ค. ๊ทธ์— ๋น„ํ•ด ์ƒํ’ˆ ํ…Œ์ด๋ธ”์˜ ๋ฉ”์ด์ปค์ฝ”๋“œ๋Š” '์™ธ๋ถ€ํ‚ค'. ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์—ด์ด ์™ธ๋ถ€ํ‚ค๊ฐ€ ๋จ!

  • ์ž๊ธฐ๊ฒฐํ•ฉ(Self Join): ํ…Œ์ด๋ธ”์— ๋ณ„๋ช…์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด ๊ฐ™์€ ํ…Œ์ด๋ธ”๋ผ๋ฆฌ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•จ.

  1. ์™ธ๋ถ€๊ฒฐํ•ฉ
    -> ๊ฒฐํ•ฉ๋ฐฉ๋ฒ•: ๋‚ด๋ถ€๊ฒฐํ•ฉ, ์™ธ๋ถ€๊ฒฐํ•ฉ
    -> ์™ธ๋ถ€๊ฒฐํ•ฉ: '์–ด๋Š ํ•œ ์ชฝ์—๋งŒ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐํ–‰์„ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃฐ์ง€'๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐํ•ฉ๋ฐฉ๋ฒ•.
  • ์ƒํ’ˆํ…Œ์ด๋ธ”์— ์ƒํ’ˆ์ฝ”๋“œ๊ฐ€ 4์ธ ํ–‰์„ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•จ.

    -> ์žฌ๊ณ ์ˆ˜ ํ…Œ์ด๋ธ”์—๋Š” ์•„์ง ์ด ์ƒํ’ˆ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ. ์ด๋Ÿฐ ์ƒํƒœ์—์„œ ๊ณฑ์ง‘ํ•ฉ์„ ๊ตฌํ•ด๋„ ๋‚ด๋ถ€๊ฒฐํ•ฉ ๊ฒฐ๊ณผ์—์„œ๋Š” ์ƒํ’ˆ์ฝ”๋“œ๊ฐ€ 4์ธ ์ƒํ’ˆ์ด ์ œ์™ธ๋จ. ๐ŸŒผ ์ด๋Ÿฐ ๊ฒฝ์šฐ ์™ธ๋ถ€๊ฒฐํ•ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋จ! ๐ŸŒผ
    -> ์™ธ๋ถ€๊ฒฐํ•ฉ๋“  ๊ฒฐํ•ฉํ•˜๋Š” ํ…Œ์ด๋ธ” ์ค‘ ์–ด๋Š ์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ ํ• ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ. LEFT JOIN์„ ์‚ฌ์šฉํ•ด๋ณด์žฅ!

    -> ์žฌ๊ณ ์ˆ˜ ํ…Œ์ด๋ธ”์—๋Š” ์ƒํ’ˆ์ฝ”๋“œ=4 ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๊ฐ’์ด NULL๋กœ ํ‘œ์‹œ๋จ! ๊ธฐ์ค€์ด ๋˜๋Š” ์ƒํ’ˆ ํ…Œ์ด๋ธ”์„ JOIN์˜ ์™ผ์ชฝ์— ๊ธฐ์ˆ ํ–ˆ์œผ๋ฏ€๋กœ LEFT JOIN! ์ƒํ’ˆ ํ…Œ์ด๋ธ”์„ ์˜ค๋ฅธ์ชฝ์— ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ๋‚˜ ์žฌ๊ณ  ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ ์‚ผ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” RIGHT JOIN์„ ์‚ฌ์šฉํ•ด ์™ธ๋ถ€๊ฒฐํ•ฉ์„ ์‹œํ–‰ํ•จ!

    -> ์š”๊ฑด right join์„ ์‚ฌ์šฉํ•œ๊ฑด๋ฐ, right join ์•ž์— ์žฌ๊ณ ํ…Œ์ด๋ธ”์˜ ์žฌ๊ณ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‚ผ์•˜๋”๋‹ˆ ๊ฐ™์€ ๊ฒฐ๊ด๊ฐ’์ด ๋‚˜์˜ด! ๊ธฐ์–ตํ•ด์ฃผ๊ธฐ!

  • MySQL์€ ์™ธ๋ถ€๊ฒฐํ•ฉ ๋ถˆ๊ฐ€...^^ ์ตœ๊ทผ์— ๋‚˜์˜จ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ์„œ...^^

๐Ÿค 33๊ฐ• ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ

  • SQL์€ ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์— ์˜ํ•ด ๊ตฌ์ถ•๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ฒด๊ณ„์ ์ธ ๋ช…๋ น์˜ ์ง‘ํ•ฉ! ๐Ÿผ
  • ๊ธฐ๋ณธ์ ์ธ ์š”์†Œ -> ๋ฆด๋ ˆ์ด์…˜ (๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์˜ ๋ฆด๋ ˆ์ด์…˜์€ SQL์—์„œ ๋งํ•˜๋Š” ํ…Œ์ด๋ธ”! ํ…Œ์ด๋ธ”๋ผ๋ฆฌ์˜ ๊ด€๊ณ„ NO!)

๐Ÿผ ์ด์ œ insert into ๋ž‘ update ํ•˜๋Š” ๊ฒƒ ๋“ฑ๋“ฑ ๋ช‡๊ฐ€์ง€ ๋ช…๋ น์–ด๋“ค์€ ์†์— ์ต๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋”๋”๋”ใ…“๋”ใ…“๋”๋”๋›ใ„ธ..... ๋” ์†์— ์ตํžˆ๊ณ  ์—ฐ์Šตํ•˜๊ณ ... ํ™”์ด๋ต ! ๐Ÿผ

profile
๊ฐœ๋ฐœ ๊ธฐ๋ก

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