๐Ÿš€
Growth log
  • About me
  • I LEARNED
    • General
      • ๊ฐœ๋ฐœ์ž ๊ฟ€ํŒ
      • ๊ทธ๋กœ์Šคํ•ดํ‚น ๊ธฐ์ดˆ
      • ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋„๋ฉ”์ธ ์ง€์‹์€ ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ• ๊นŒ?
      • DTO ๋…ผ์Ÿ์— ๋Œ€ํ•˜์—ฌ
      • MSA๋ž€?
    • Seminar
      • ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ 100% - SLASH 21
      • TDD๊ฐ€ ์‹คํŒจํ•˜๋Š” ์ด์œ  - by ์ด๊ทœ์›๋‹˜
      • ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ํŠœ๋‹ ๋…ธํ•˜์šฐ ๋‹ค ์•Œ๋ ค ๋“œ๋ฆผ|๋ผ์ธ๊ฐœ๋ฐœ์‹ค๋ก
      • ๊ฒฐ์ œ ์‹œ์Šคํ…œ์˜ SDK์™€ API ๋””์ž์ธ - SLASH 21
    • Web
      • SOP์™€ CORS
    • Spring & OOP
      • DTO vs VO
    • Ruby On Rails
      • Rails lib ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ
      • Rails์˜ concerns๋ž€?
      • Rails์—์„œ์˜ GC ์ž‘๋™์›๋ฆฌ
      • Eager loading vs Lazy loading
      • Rails ํ™˜๊ฒฝ ๊ตฌ์„ฑ
      • ActionCable
      • ๐Ÿ“”Perfect ruby on rails
        • MVC ํŒจํ„ด์ธ Rails
        • Ruby on Rails ๊ธฐ๋ณธ - ์ปจํŠธ๋กค๋Ÿฌ
        • Ruby on Rails ๊ธฐ๋ณธ - ๋ทฐ
        • Ruby on Rails ๊ธฐ๋ณธ - ๋ชจ๋ธ
        • ์Šค์บํด๋”ฉ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ Rails ๊ฐœ๋ฐœ ๊ธฐ์ดˆ
        • ๋ทฐ ๊ฐœ๋ฐœ
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ๋‚™๊ด€์  ๋™์‹œ ์‹คํ–‰ ์ œ์–ด
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ตฌํ˜„
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - Association
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ์ฝœ๋ฐฑ
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”
        • ์ปจํŠธ๋กค๋Ÿฌ ๊ฐœ๋ฐœ - ์š”์ฒญ ์ •๋ณด ์ถ”์ถœ
        • ์ปจํŠธ๋กค๋Ÿฌ ๊ฐœ๋ฐœ - ์‘๋‹ต
        • ์ปจํŠธ๋กค๋Ÿฌ ๊ฐœ๋ฐœ - ์ƒํƒœ ๊ด€๋ฆฌ
        • ๋ผ์šฐํŒ… - RESTful
        • ๋ผ์šฐํŒ… - RESTful ์ธํ„ฐํŽ˜์ด์Šค์˜ ์‚ฌ์šฉ์ž ์ •์˜ํ™”
        • ๋ผ์šฐํŒ… - RESTful ํ•˜์ง€ ์•Š์€ ๋ผ์šฐํŠธ ์ •์˜
        • ํ…Œ์ŠคํŠธ
        • ํ…Œ์ŠคํŠธ - ์ค€๋น„
        • ํ…Œ์ŠคํŠธ - Unit ํ…Œ์ŠคํŠธ
        • ํ…Œ์ŠคํŠธ - Functional ํ…Œ์ŠคํŠธ
        • ํ…Œ์ŠคํŠธ - Integration ํ…Œ์ŠคํŠธ
        • ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ - Sprockets vs Webpacker
        • ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ - Sprockets
    • Node.js & Express
      • ๊ธฐ๋ณธ ๊ฐœ๋…
      • npx
    • Programing Language
      • Java
        • JavaDoc์— ๋Œ€ํ•ด
        • invocation์— ๋Œ€ํ•ด์„œ
        • ์–ด๋…ธํ…Œ์ด์…˜
        • ์ถ”์ƒํด๋ž˜์Šค & ์ธํ„ฐํŽ˜์ด์Šค
        • Package
        • ์˜ค๋ฒ„๋กœ๋”ฉ vs ์˜ค๋ฒ„๋ผ์ด๋”ฉ
      • Javascript
        • TCP School ํ›‘์–ด๋ณด๊ธฐ
          • ํƒ€์ž…
          • ํ˜• ๋ณ€ํ™˜
          • ๋ณ€์ˆ˜
          • ์—ฐ์‚ฐ์ž
          • ๋ฐ˜๋ณต๋ฌธ
          • ๋ฐฐ์—ด(array)
          • ํ•จ์ˆ˜
          • ํ•จ์ˆ˜ - ์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ…
          • ํ•จ์ˆ˜ - ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ˆ˜
          • ํ•จ์ˆ˜ - ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ „์—ญ ํ•จ์ˆ˜
          • ๊ฐ์ฒด
          • ํ”„๋กœํ† ํƒ€์ž…
          • DOM
          • BOM - Window ๊ฐ์ฒด
          • ์ด๋ฒคํŠธ(event)
      • Ruby
        • ๐Ÿ“”ํผํŽ™ํŠธ ๋ฃจ๋น„
    • DB
      • Redis
        • Redis ๊ฐœ์š”
      • Index(์ธ๋ฑ์Šค)?
      • DB Transaction & Lock
      • ๋™์‹œ์„ฑ ์ œ์–ด์— ๊ด€ํ•˜์—ฌ
      • Lock(์ž ๊ธˆ)์ด๋ž€?
      • ActiveRecord lock vs with_lock
      • Table lock vs Row lock
      • WHERE 1=1 ๊ตฌ๋ฌธ์— ๋Œ€ํ•˜์—ฌ
      • COUNT(*) vs COUNT(indexed column)
      • ๐Ÿ“•๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ค์ „์ž…๋ฌธ
      • ๐Ÿ“”SQL ์ฒซ๊ฑธ์Œ
      • ๐Ÿ“”๋ชจ๋‘์˜ SQL
    • Design Patterns
      • Observer pattern
      • Flyweight pattern
      • Singleton pattern
    • OOP
      • ๐Ÿ“”์˜ค๋ธŒ์ ํŠธ
        • 6์žฅ ๋ฉ”์‹œ์ง€์™€ ์ธํ„ฐํŽ˜์ด์Šค
      • ํด๋ž˜์Šค๊ฐ„ ๊ด€๊ณ„ ๊ฐ„๋‹จ ์ •๋ฆฌ
    • Regex
    • Collaboration
      • Git
      • Sourcetree
  • DAILY REVIEW
    • 2021
      • August
        • 2021-08-25(Wed)
        • 2021-08-23(Mon)
        • 2021-08-11(Wed)
        • 2021-08-04(Wed)
        • 2021-08-03(Tue)
        • 2021-08-02(Mon)
      • July
        • 2021-07-29(Thu)
        • 2021-07-26(Mon)
        • 2021-07-23(Fri)
        • 2021-07-22(Thu)
        • 2021-07-21(Wed)
        • 2021-07-20(Tue)
        • 2021-07-19(Mon)
        • 2021-07-15(Thu)
        • 2021-07-14(Wed)
        • 2021-07-13(Tue)
        • 2021-07-12(Mon)
      • June
        • 2021-06-05(Sat)
        • 2021-06-04(Fri)
        • 2021-06-03(Thu)
        • 2021-06-02(Wed)
        • 2021-06-01(Tue)
      • May
        • 2021-05-31(Mon)
        • 2021-05-29(Sat)
        • 2021-05-28(Fri)
        • 2021-05-27(Thu)
        • 2021-05-26(Wed)
        • 2021-05-25(Tue)
        • 2021-05-24(Mon)
        • 2021-05-22(Sat)
        • 2021-05-21(Fri)
        • 2021-05-20(Thu)
        • 2021-05-19(Wed)
        • 2021-05-18(Tue)
        • 2021-05-17(Mon)
        • 2021-05-15(Sat)
        • 2021-05-13(Thu)
        • 2021-05-12(Wed)
        • 2021-05-11(Tue)
        • 2021-05-10(Mon)
        • 2021-05-03(Mon)
      • April
        • 2021-04-30(Fri)
        • 2021-04-29(Thu)
        • 2021-04-28(Wed)
        • 2021-04-27(Tue)
        • 2021-04-26(Mon)
        • 2021-04-24(Sat)
        • 2021-04-23(Fri)
        • 2021-04-21(Wed)
        • 2021-04-20(Tue)
        • 2021-04-19(Mon)
        • 2021-04-18(Sun)
        • 2021-04-16(Fri)
        • 2021-04-15(Thu)
        • 2021-04-14(Wed)
        • 2021-04-12(Mon)
        • 2021-04-11(Sun)
        • 2021-04-09(Fri)
        • 2021-04-08(Thu)
        • 2021-04-06(Tue)
        • 2021-04-05(Mon)
        • 2021-04-04(Sun)
        • 2021-04-03(Sat)
        • 2021-04-02(Fri)
        • 2021-04-01(Thu)
      • March
        • 2021-03-29(Mon)
        • 2021-03-28(Sun)
        • 2021-03-26(Fri)
        • 2021-03-25(Thu)
        • 2021-03-24(Wed)
        • 2021-03-23(Tue)
        • 2021-03-22(Mon)
        • 2021-03-21(Sun)
        • 2021-03-20(Sat)
        • 2021-03-17(Wed)
        • 2021-03-16(Tue)
        • 2021-03-15(Mon)
        • 2021-03-12(Fri)
        • 2021-03-11(Thu)
        • 2021-03-10(Wed)
        • 2021-03-09(Tue)
        • 2021-03-08(Mon)
        • 2021-03-07(Sun)
        • 2021-03-05(Fri)
        • 2021-03-03(Wed)
        • 2021-03-02(Tue)
        • 2021-03-01(Mon)
      • Feb
        • 2021-02-26(Fri)
        • 2021-02-25(Thu)
        • 2021-02-24(Wed)
        • 2021-02-23(Tue)
        • 2021-02-22(Mon)
        • 2021-02-19(Fri)
        • 2021-02-18(Thu)
        • 2021-02-17(Wed)
        • 2021-02-16(Tue)
        • 2021-02-15(Mon)
        • 2021-02-14(Sun)
        • 2021-02-13(Sat)
        • 2021-02-12(Fri)
        • 2021-02-10(Wed)
        • 2021-02-09(Tue)
        • 2021-02-08(Mon)
        • 2021-02-07(Sun)
        • 2021-02-05(Fri)
        • 2021-02-03(Wed)
        • 2021-02-02(Tue)
        • 2021-02-01(Mon)
      • Jan
        • 2021-01-29(Fri)
        • 2021-01-28(Thu)
        • 2021-01-27(Wed)
        • 2021-01-26(Tue)
        • 2021-01-25(Mon)
        • 2021-01-23(Sat)
        • 2021-01-22(Fri)
        • 2021-01-20(Wed)
        • 2021-01-19(Tue)
        • 2021-01-18(Mon)
        • 2021-01-12(Tue)
        • 2020-01-11(Mon)
        • 2021-01-08(Fri)
        • 2021-01-07(Thu)
        • 2021-01-06(Wed)
        • 2021-01-05(Tue)
        • 2021-01-04(Mon)
        • 2021-01-01(Fri)
    • 2020
      • Dec
        • 2020-12-30(Thu)
        • 2020-12-25(Fri)
        • 2020-12-24(Thu)
        • 2020-12-23(Wed)
        • 2020-12-22(Tue)
        • 2020-12-21(Mon)
        • 2020-12-18 (Fri)
      • Nov
        • 2020-11-30(Mon)
        • 2020-11-28(Sat)
        • 2020-11-26(Thu)
        • 2020-11-25(Wed)
        • 2020-11-24(Tue)
        • 2020-11-23(Mon)
        • 2020-11-22(Sun)
        • 2020-11-20(Fri)
        • 2020-11-19(Thu)
        • 2020-11-18(Wed)
        • 2020-11-17(Tue)
        • 2020-11-14(Sat)
        • 2020-11-13(Fri)
        • 2020-11-12(Thu)
        • 2020-11-11(Wed)
        • 2020-11-09(Mon)
        • 2020-11-07(Sat)
        • 2020-11-05(Thu)
        • 2020-11-04(Wed)
        • 2020-11-03(Tue)
        • 2020-11-02(Mon)
    • Good article ์•„์นด์ด๋น™
Powered by GitBook
On this page
  • ์ƒ์„ธ ํ•™์Šต ๋‚ด์šฉ
  • SQL ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์„ ์žก์ž
  • ์กฐ์ธ(Join)
  • ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž
  • ์„œ๋ธŒ์ฟผ๋ฆฌ
  • ํ•™์Šต ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ดํ‰
  • ๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

Was this helpful?

  1. DAILY REVIEW
  2. 2021
  3. April

2021-04-27(Tue)

Previous2021-04-28(Wed)Next2021-04-26(Mon)

Last updated 4 years ago

Was this helpful?

ํ•ญ๋ชฉ

๋‚ด์šฉ

ํ•™์Šต ๋‚ ์งœ

2021-04-27(ํ™”)

ํ•™์Šต ์‹œ๊ฐ„

09:00~23:00

ํ•™์Šต ๋ฒ”์œ„ ๋ฐ ์ฃผ์ œ

AWS EC2

ํ•™์Šต ๋ชฉํ‘œ

Rails ์„œ๋น„์Šค ๋ฐฐํฌํ•˜์ž.

๋™๋ฃŒ ํ•™์Šต ๋ฐฉ๋ฒ•

-

์ƒ์„ธ ํ•™์Šต ๋‚ด์šฉ

๊ฐ„๋‹จํ•˜๊ฒŒ ํŠธ๋ Œ์„ผ๋˜์Šค ํ”„๋กœ์ ํŠธ๋ฅผ AWS EC2๋กœ ๋ฐฐํฌํ•˜์˜€๋‹ค!

๋ฐฐํฌ ๋งํฌ:

Nginx ์™€ Capistrano ์กฐํ•ฉ์„ ์ด์šฉํ•ด์„œ ์ƒ์šฉ ์„œ๋น„์Šค์ฒ˜๋Ÿผ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ๋„ ๊ณ ๋ คํ•ด๋ณด์•˜์œผ๋‚˜, ์ง€๊ธˆ ํ•ด์•ผํ•  ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŽ์•„์„œ ์šฐ์„  ์ˆœ์œ„์—์„œ ๋ฏธ๋ค˜๋‹ค.

์ฐธ๊ณ 

๊ทธ๋ฆฌ๊ณ  SQL์˜ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์„ ์žก๊ธฐ ์œ„ํ•ด ์ฑ…์„ ์ฝ์—ˆ๋‹ค.

SQL ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์„ ์žก์ž

RDBMS๋กœ ๊ฐ์ฒด ๋‹ค๋ฃจ๋“ฏ ํ•˜๋‹ค๋ณด๋‹ˆ SQL ๋ฌธ๋ฒ•์ด ํ—ท๊ฐˆ๋ฆฐ๋‹ค.

์กฐ์ธ(Join)

์กฐ์ธ ๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜

  • ๊ณฑ์ง‘ํ•ฉ(cartesian product)

    • ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ–‰์„ ์กฐ์ธ

  • ๋™๋“ฑ ์กฐ์ธ(equi join or inner join)

    • ์กฐ์ธ ์กฐ๊ฑด์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ฒฐ๊ณผ ์ถœ๋ ฅ

  • ๋น„๋™๋“ฑ ์กฐ์ธ(non equi join)

    • ์กฐ์ธ ์กฐ๊ฑด์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ

  • ์™ธ๋ถ€ ์กฐ์ธ(outer join)

    • ์กฐ์ธ ์กฐ๊ฑด์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ

  • ์ž์ฒด ์กฐ์ธ(self join)

    • ์ž์ฒด ํ…Œ์ด๋ธ”์—์„œ ์กฐ์ธํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ

๋™๋“ฑ ์กฐ์ธ ์˜ˆ์‹œ

-- employees ํ…Œ์ด๋ธ”๊ณผ departments ํ…Œ์ด๋ธ”๊ณผ locations ํ…Œ์ด๋ธ”์„ ์กฐ์ธ ์˜ˆ์‹œ
โ€‹
SELECT  A.employee_id, A.department_id, B.department_name, C.location_id, C.city
FROM employees A, departments B, locations C
WHERE A.department_id = B.department_id
AND B.location_id = C.location_id;

์™ธ๋ถ€ ์กฐ์ธ

์™ธ๋ถ€ ์กฐ์ธ์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์€ ํ–‰๋„ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ์กฐ์ธ ๊ธฐ๋ฒ•.

-- employees ํ…Œ์ด๋ธ”๊ณผ departments ํ…Œ์ด๋ธ”์„ department_id๋กœ ์™ธ๋ถ€ ์กฐ์ธํ•˜์—ฌ department_id๊ฐ€ null ๊ฐ’์ธ Kimberely Grant๋„ ํ•จ๊ป˜ ์ถœ๋ ฅํ•ด๋ผ.
โ€‹
SELECT A.employee_id, A.first_name, A.last_name, B.department_id, B.department_name
FROM employees A, departemnts B
WHERE A.department_id = B.department_id(+)
ORDER BY A.employee_id;

์•„๋ž˜์ฒ˜๋Ÿผ ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•ด๋ณด์ž.

  1. ์–‘์ชฝ ํ…Œ์ด๋ธ” ์ค‘ ์ „๋ถ€ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์€ ํ…Œ์ด๋ธ” ์ชฝ์„ ๋จผ์ € ์ƒ๊ฐํ•œ๋‹ค.

  2. (+)๋Š” ๋‹ค๋ฅธ ์ชฝ ํ…Œ์ด๋ธ” ์ชฝ ์กฐ์ธ ์กฐ๊ฑด์— ๋ถ™์ธ๋‹ค.

์ž์ฒด ์กฐ์ธ

์ž์ฒด ์กฐ์ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ณ„์นญ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

-- employees ํ…Œ์ด๋ธ”์„ ์ž์ฒด ์กฐ์ธํ•˜์—ฌ ์ง์›๋ณ„ ๋‹ด๋‹น ๋งค๋‹ˆ์ €๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์กฐํšŒํ•˜์ž.
SELECT A.employee_id, A.first_name, A.last_name, A.manager_id, B.first_name || ' ' B.last_name manger_name
FROM employees A, employees B
WHERE A.manager_id = B.employee_id
ORDER BY A.employee_id;

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

์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด๋„ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์ข…๋ฅ˜

  • UNION

    • SELECT ๋ฌธ์˜ ์กฐํšŒ ๊ฒฐ๊ณผ์˜ ํ•ฉ์ง‘ํ•ฉ. ์ค‘๋ณต๋˜๋Š” ํ–‰์€ ํ•œ ๋ฒˆ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. (ํ•ฉ์ง‘ํ•ฉ)

  • UNION ALL

    • SELECT ๋ฌธ์˜ ์กฐํšŒ ๊ฒฐ๊ณผ์˜ ํ•ฉ์ง‘ํ•ฉ. ์ค‘๋ณต๋˜๋Š” ํ–‰๋„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค. (ํ•ฉ์ง‘ํ•ฉ)

  • INTERSET

    • SELECT ๋ฌธ์˜ ์กฐํšŒ ๊ฒฐ๊ณผ์˜ ๊ต์ง‘ํ•ฉ. ์ค‘๋ณต๋˜๋Š” ํ–‰๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. (๊ต์ง‘ํ•ฉ)

  • MINUS

    • ์ฒซ ๋ฒˆ์งธ SELECT ๋ฌธ์˜ ์กฐํšŒ ๊ฒฐ๊ณผ์—์„œ ๋‘ ๋ฒˆ์งธ ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ๋บ€๋‹ค. (์ฐจ์ง‘ํ•ฉ)

-- employees ํ…Œ์ด๋ธ”์˜ department_id ์ง‘ํ•ฉ๊ณผ departments ํ…Œ์ด๋ธ”์˜ department_id ์ง‘ํ•ฉ์„ UNION ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ํ•ฉ์ณ ๋ณด์„ธ์š”.
โ€‹
SELECT department_id
FROM employees
UNION
SELECT department_id
FROM departments;

์„œ๋ธŒ์ฟผ๋ฆฌ

์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋Š” ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

๋ฉ”์ธ ์ฟผ๋ฆฌ์™€ ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ์—ฐ๊ฒฐ ํ˜•ํƒœ๋Š” ์—ฐ์‚ฐ์ž์— ๋”ฐ๋ผ ์˜๋ฏธ๊ฐ€ ๋‹ค๋ฅด๋‹ค.

์—ฐ์‚ฐ์ž ๊ตฌ๋ถ„

์ข…๋ฅ˜

์‚ฌ์šฉ์ฒ˜

๋‹จ์ผ ํ–‰ ์—ฐ์‚ฐ์ž

=, >, >=, <, <=, <>, !=

๋‹จ์ผ ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ, ๋‹ค์ค‘ ์—ด ์„œ๋ธŒ์ฟผ๋ฆฌ

๋‹ค์ค‘ ํ–‰ ์—ฐ์‚ฐ์ž

IN, NOT IN, EXISTS, ANY, ALL

๋‹ค์ค‘ ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ, ๋‹ค์ค‘ ์—ด ์„œ๋ธŒ์ฟผ๋ฆฌ

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

-- employees ํ…Œ์ด๋ธ”์˜ last_name์ด 'De Haan'์ธ ์ง์›๊ณผ salary๊ฐ€ ๋™์ผํ•œ ์ง์›์—๋Š” ๋ˆ„๊ฐ€ ์žˆ๋Š”์ง€ ๋‹จ์ผ ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์ถœ๋ ฅํ•ด๋ณด์ž.
โ€‹
SELECT *
FROM employees A
WHERE A.salary = (
                  SELECT salary
                  FROM employees
                  WHERE last_name = 'De Haan'
                  )

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

-- employees ํ…Œ์ด๋ธ”์—์„œ department_id๋ณ„๋กœ ๊ฐ€์žฅ ๋‚ฎ์€ salary๊ฐ€ ์–ผ๋งˆ์ธ์ง€ ์ฐพ์•„๋ณด๊ณ , ์ฐพ์•„๋‚ธ salary์— ํ•ด๋‹นํ•˜๋Š” ์ง์›์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋‹ค์ค‘ ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ฐพ์•„๋ณด์ž.
โ€‹
SELECT *
FROM employees A
WHERE A.salary = IN (
                    SELECT MIN(salary) ์ตœ์ €๊ธ‰์—ฌ
                    FROM employees
                    GROUP BY department_id
                    )
ORDER BY A.salary DESC;

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

-- employees ํ…Œ์ด๋ธ”์—์„œ job_id๋ณ„๋กœ ๊ฐ€์žฅ ๋‚ฎ์€ salary๊ฐ€ ์–ผ๋งˆ์ธ์ง€ ์ฐพ์•„๋ณด๊ณ , ์ฐพ์•„๋‚ธ job_id๋ณ„ salary์— ํ•ด๋‹นํ•˜๋Š” ์ง์›์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋‹ค์ค‘ ์—ด ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ฐพ์•„๋ณด์ž.
โ€‹
SELECT *
FROM employees A
WHERE (A.job_id, A.salary) IN  (
                                SELECT job_id, MIN(salary) ๊ทธ๋ฃน๋ณ„๊ธ‰์—ฌ
                                FROM employees
                                GROUP BY job_id
                                )
ORDER BY A.salary DESC;

FROM ์ ˆ ์„œ๋ธŒ์ฟผ๋ฆฌ: ์ธ๋ผ์ธ ๋ทฐ

FROM ์ ˆ์—์„œ๋„ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค!

-- ์ง์› ์ค‘์—์„œ department_name์ด IT์ธ ์ง์›์˜ ์ •๋ณด๋ฅผ ์ธ๋ผ์ธ ๋ทฐ๋ฅผ ์ด์šฉํ•ด์„œ ์ถœ๋ ฅํ•ด ๋ณด๋ผ.
โ€‹
SELECT *
FROM employees AS A,
                  ( 
                  SELECT department_id
                  FROM departments
                  WHERE department_name = 'IT'
                  ) AS B
WHERE A.departemnt_id = B.department_id;

ํ•™์Šต ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ดํ‰

๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

https://bit.ly/3sU04CL
https://kbs4674.tistory.com/126