[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(2)(Lv. 3)

2023. 2. 6. 15:27ยท๐Ÿ’พ DataBase
728x90
728x90

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(2)

์ž…์–‘์„ ๊ฐ„ ๋™๋ฌผ ์ค‘, ๋ณดํ˜ธ ๊ธฐ๊ฐ„์ด ๊ฐ€์žฅ ๊ธธ์—ˆ๋˜ ๋™๋ฌผ ๋‘ ๋งˆ๋ฆฌ์˜ ์•„์ด๋””์™€ ์ด๋ฆ„์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ๋ณดํ˜ธ ๊ธฐ๊ฐ„์ด ๊ธด ์ˆœ์œผ๋กœ ์กฐํšŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 


 

ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ๋ณดํ˜ธ ์‹œ์ž‘์ผ, ๋ณดํ˜ธ ์‹œ์ž‘ ์‹œ ์ƒํƒœ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

ANIMAL_OUTS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์—์„œ ์ž…์–‘ ๋ณด๋‚ธ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_OUTS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ์ž…์–‘์ผ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ANIMAL_OUTS ํ…Œ์ด๋ธ”์˜ ANIMAL_ID๋Š” ANIMAL_INS์˜ ANIMAL_ID์˜ ์™ธ๋ž˜ ํ‚ค์ž…๋‹ˆ๋‹ค.

NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_OUTCOME VARCHAR(N) FALSE

 


์ด์ „ ๋ฌธ์ œ ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(1)์€, '์ž…์–‘์„ ๋ชป ๊ฐ„ ๋™๋ฌผ'์ด ๋Œ€์ƒ์ด์—ˆ๋‹ค๋ฉด ๋ณธ ๋ฌธ์ œ๋Š” '์ž…์–‘์„ ๊ฐ„ ๋™๋ฌผ'์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๋‹ค.

๋•Œ๋ฌธ์— (1)์—์„œ๋Š” OUT ํ…Œ์ด๋ธ”์˜ DATETIME์ด NULL์ธ ๋™๋ฌผ์„ ์ฐพ์•„์•ผ ํ–ˆ๋Š”๋ฐ,

(2)์—์„œ๋Š” IN/OUT ํ…Œ์ด๋ธ”์˜ DATETIME์€ ๋ชจ๋‘ NOT NULL์ด๋˜ ์ถ”๊ฐ€๋กœ '๋ณดํ˜ธ ๊ธฐ๊ฐ„์ด ๊ฐ€์žฅ ๊ธธ์—ˆ๋˜' ๋™๋ฌผ์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.

 

์ด๋ฅผ ์ฟผ๋ฆฌํ™”ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • IN/OUT ํ…Œ์ด๋ธ”์„ JOINํ•œ๋‹ค. ์ด๋•Œ ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋ฉฐ, ์–‘์ชฝ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ํ•„์š”ํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜ JOIN์„ ์‚ฌ์šฉํ•œ๋‹ค.
-- IN/OUT ํ…Œ์ด๋ธ” JOIN
FROM ANIMAL_INS INS JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID=OUTS.ANIMAL_ID
  • ๋ณดํ˜ธ ๊ธฐ๊ฐ„์€ IN DATETIME(๋ณดํ˜ธ ์‹œ์ž‘์ผ)๊ณผ OUT DATETIME(์ž…์–‘์ผ)์˜ ์ฐจ์ด๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณดํ˜ธ ๊ธฐ๊ฐ„์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ํ›„, ์ƒ์œ„ 2๋งˆ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ LIMIT ์กฐ๊ฑด์„ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ์™„๋ฃŒ.
-- ๋ณดํ˜ธ ๊ธฐ๊ฐ„์ด ๊ฐ€์žฅ ๊ธด ๋™๋ฌผ 2๋งˆ๋ฆฌ
ORDER BY INS.DATETIME - OUTS.DATETIME
LIMIT 2

 

์ „์ฒด ์ฟผ๋ฆฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ด์ „ ๋ฌธ์ œ๋“ค๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ JOIN์˜ ์กฐ๊ฑด๊ณผ ์ •๋ ฌ ๋“ฑ ๋””ํ…Œ์ผํ•œ ์š”์†Œ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

-- ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”
SELECT INS.ANIMAL_ID, INS.NAME
FROM ANIMAL_INS INS JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID=OUTS.ANIMAL_ID
ORDER BY INS.DATETIME - OUTS.DATETIME
LIMIT 2

 

๋”๋ณด๊ธฐ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ANIMAL_INS, ANIMAL_OUTS ํ…Œ์ด๋ธ” ๋ฌธ์ œ ๋”๋ณด๊ธฐ

 

  • ์—†์–ด์ง„ ๊ธฐ๋ก ์ฐพ๊ธฐ(Lv. 3)
 

[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—†์–ด์ง„ ๊ธฐ๋ก ์ฐพ๊ธฐ(Lv. 3)

ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””

idox.tistory.com

  • ์žˆ์—ˆ๋Š”๋ฐ์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค(Lv. 3)
 

[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์žˆ์—ˆ๋Š”๋ฐ์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค(Lv. 3)

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์žˆ์—ˆ๋Š”๋ฐ์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค ๊ด€๋ฆฌ์ž์˜ ์‹ค์ˆ˜๋กœ ์ผ๋ถ€ ๋™๋ฌผ์˜ ์ž…์–‘์ผ์ด ์ž˜๋ชป ์ž…๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ˜ธ ์‹œ์ž‘์ผ๋ณด๋‹ค ์ž…์–‘์ผ์ด ๋” ๋น ๋ฅธ ๋™๋ฌผ์˜ ์•„์ด๋””์™€ ์ด๋ฆ„์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ

idox.tistory.com

  • ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(1)
 

[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(1)(Lv. 3)

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(1) ์•„์ง ์ž…์–‘์„ ๋ชป ๊ฐ„ ๋™๋ฌผ ์ค‘, ๊ฐ€์žฅ ์˜ค๋ž˜ ๋ณดํ˜ธ์†Œ์— ์žˆ์—ˆ๋˜ ๋™๋ฌผ 3๋งˆ๋ฆฌ์˜ ์ด๋ฆ„๊ณผ ๋ณดํ˜ธ ์‹œ์ž‘์ผ์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ๋ณดํ˜ธ ์‹œ์ž‘์ผ

idox.tistory.com

 

728x90
320x100
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ’พ DataBase' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Oracle] Linux CentOS 8 ์„œ๋ฒ„์— Oracle DB ์„ค์น˜ํ•˜๊ธฐ  (0) 2023.02.08
[DBeaver] DBeaver ์„ค์น˜์™€ ORACLE DB ์ ‘์†ํ•˜๊ธฐ  (0) 2023.02.08
[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(1)(Lv. 3)  (0) 2023.02.06
[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์žˆ์—ˆ๋Š”๋ฐ์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค(Lv. 3)  (0) 2023.02.06
[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—†์–ด์ง„ ๊ธฐ๋ก ์ฐพ๊ธฐ(Lv. 3)  (0) 2023.02.06
'๐Ÿ’พ DataBase' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Oracle] Linux CentOS 8 ์„œ๋ฒ„์— Oracle DB ์„ค์น˜ํ•˜๊ธฐ
  • [DBeaver] DBeaver ์„ค์น˜์™€ ORACLE DB ์ ‘์†ํ•˜๊ธฐ
  • [MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(1)(Lv. 3)
  • [MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์žˆ์—ˆ๋Š”๋ฐ์š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค(Lv. 3)
mxnxeonx
mxnxeonx
"์•„, ์ด๊ฑฐ ๋ญ์˜€๋”๋ผ"๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ์œ„ํ•œ ์ผ๊ธฐ์žฅ.
  • mxnxeonx
    MJ's Development Diary
    mxnxeonx
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
      • ๐Ÿ’ป Language (43)
        • Java : ์ž๋ฐ” (18)
        • Python : ํŒŒ์ด์ฌ (9)
        • ROS : ๋กœ๋ด‡์‹œ์Šคํ…œ (9)
        • Android : ์•ˆ๋“œ๋กœ์ด๋“œ (4)
        • JavaScript : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ (2)
      • ๐ŸŒ Environment (19)
        • IDE : ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ (9)
        • Virtual : ๊ฐ€์ƒํ™˜๊ฒฝ (10)
      • โš™ Framework (12)
        • Vue-๋ทฐ (3)
        • Spring-์Šคํ”„๋ง (7)
      • ๐Ÿ’พ DataBase (18)
      • ๐ŸŒŒ OS (36)
        • Linux-๋ฆฌ๋ˆ…์Šค (36)
      • ๐Ÿ’ฌ CI · CD (7)
        • Git : ๊นƒ (7)
      • ๐Ÿ“ƒ ETC (3)
      • ๐Ÿค– AI (4)
  • ๋งํฌ

    • GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
mxnxeonx
[MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ณดํ˜ธํ•œ ๋™๋ฌผ(2)(Lv. 3)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”