๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

728x90

RDB๐Ÿ—‚๏ธ/์ธํ”„๋Ÿฐ : SQLD ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ

(7)
SQL ๊ฐœ๋ฐœ์ž (SQLD) ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ Part.3 ์„น์…˜ 1. SQL ์ตœ์ ํ™”์˜ ์›๋ฆฌ SQLD์—์„œ๋Š” 2~3๋ฌธ์ œ ์ถœ์ œ๋˜๋Š” ๋น„๊ต์  ๋น„์ค‘์ด ๋‚ฎ์€ ๋ฌธ์ œ(SQLP์—์„œ ๋” ์ค‘์š”ํ•˜๊ฒŒ ๋ณธ๋‹ค) 1. ์˜ตํ‹ฐ๋งˆ์ด์ € - SQL ๊ฐœ๋ฐœ์ž๊ฐ€ SQL์„ ์ž‘์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•  ๋•Œ, ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” SQL์„ ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•  ๊ฒƒ์ธ์ง€ ๊ณ„ํšํ•˜๊ฒŒ ๋œ๋‹ค. ~ SQL ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•˜๊ณ  SQL์„ ์‹คํ–‰ํ•œ๋‹ค - ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” SQL์˜ ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•˜๊ณ  SQL์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ์˜ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค - ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” SQL๋„ ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์ง„๋‹ค. ๋”ฐ๋ผ์„œ ์˜ตํ‹ฐ๋งˆ์ด์ €์˜ ์‹คํ–‰ ๊ณ„ํš์€ SQL ์„ฑ๋Šฅ์— ์•„์ฃผ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. 1) ํŠน์ง• - ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ์— ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ ํ†ต๊ณ„, ์‹œ์Šคํ…œ ํ†ต๊ณ„ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•ด ์˜ˆ์ƒ๋˜๋Š” ๋น„์šฉ์„ ์‚ฐ์ • - ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‹คํ–‰ ๊ณ„ํš ์ค‘ ์ตœ์ €๋น„์šฉ์„..
SQL ๊ฐœ๋ฐœ์ž (SQLD) ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ Part.3 ์„น์…˜ 0. 1. GROUP ํ•จ์ˆ˜(ROLL UP, GROUPING, GROUPING SETS, CUBE)์— ๋Œ€ํ•œ ์„ค๋ช… 1) ROLL UP - ROLL UP์€ GROUP BY์˜ ์นผ๋Ÿผ์— ๋Œ€ํ•ด Subtotal์„ ๋งŒ๋“ค์–ด์ค€๋‹ค. GROUP BY๊ตฌ์— ์นผ๋Ÿผ์ด ๋‘ ๊ฐœ ์ด์ƒ์ด๋ฉด ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค * DECODE๋ฌธ๊ณผ ํ•จ๊ป˜ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ๊ฐ€๋Šฅ 2) GROUPING - GROUPING ํ•จ์ˆ˜๋Š” ROLL UP, CUBE, GROUPING SETS์—์„œ ์ƒ์„ฑ๋˜๋Š” ํ•ฉ๊ณ„ ๊ฐ’์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ํ•จ์ˆ˜. ์†Œ๊ณ„, ํ•ฉ๊ณ„ ๋“ฑ์ด ๊ณ„์‚ฐ๋˜๋ฉด GROUPING์€ 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ 0์„ ๋ฐ˜ํ™˜ํ•ด ํ•ฉ๊ณ„ ๊ฐ’์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค + DECODE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด, ๊ฒฐ๊ณผ๊ฐ€ 1์ผ ๊ฒฝ์šฐ ํ•ฉ๊ณ„๋ฅผ ์ถœ๋ ฅ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด NULL์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค : SELE..
SQL ๊ฐœ๋ฐœ์ž (SQLD) ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ Part.2 ์„น์…˜ 2. 1. ์กฐ์ธ 1) EQUI(๋“ฑ๊ฐ€) ์กฐ์ธ(๊ต์ง‘ํ•ฉ) (1) EQUI(๋“ฑ๊ฐ€) ์กฐ์ธ - ์กฐ์ธ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์„ ์‚ฌ์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฆด๋ ˆ์ด์…˜์„ ๋งŒ๋“œ๋Š” ๊ณผ์ • - ์กฐ์ธ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์€ ๊ต์ง‘ํ•ฉ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ - ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” ๊ฐ„ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์„ ์กฐ์ธ - EQUI ์กฐ์ธ์€ EMP ํ…Œ์ด๋ธ”๊ณผ DEPT ํ…Œ์ด๋ธ”์—์„œ DEPTNO ์นผ๋Ÿผ์„ ์‚ฌ์šฉํ•ด ๊ฐ™์€ ๊ฒƒ์„ ์กฐ์ธ, " = "๋ฅผ ํ™œ์šฉํ•ด ๋‘ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•œ๋‹ค ISO ํ‘œ์ค€์œผ๋กœ INNER JOIN์ด ์žˆ๋‹ค. INNER JOIN์€ ON๋ฌธ์„ ์‚ฌ์šฉํ•ด ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐ (2) INNER JOIN ~ ํ•ด์‹œ ์กฐ์ธ -> EQUI ์กฐ์ธ์€ ๋‘ ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ๋‹ค ์ฝ์€ ๋‹ค์Œ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋‘ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•œ๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ํ…Œ์ด๋ธ”์„ ํ•ด์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ ํ›„ ํ•ด์‹œ ํ•จ์ˆ˜๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•. ํ•ด์‹œ ์กฐ์ธ์€ EQUI ์กฐ์ธ๋งŒ ..
SQL ๊ฐœ๋ฐœ์ž (SQLD) ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ Part.2 ์„น์…˜ 1. DML ์ด์–ด์„œ 12) NULL ๊ฐ’ ์กฐํšŒ - NULL์˜ ํŠน์ง• NULL์€ ๋ชจ๋ฅด๋Š” ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค NULL์€ ๊ฐ’์˜ ๋ถ€์žฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค NULL์€ ์ˆซ์ž ํ˜น์€ ๋‚ ์งœ๋ฅผ ๋”ํ•˜๋ฉด NULL์ด ๋œ๋‹ค NULL์€ ์–ด๋–ค ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ '์•Œ ์ˆ˜ ์—†์Œ'์ด ๋ฐ˜ํ™˜๋œ๋‹ค - NULL ๊ฐ’ ์กฐํšŒ NULL์„ ์กฐํšŒํ•  ๊ฒฝ์šฐ IS NULL๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  NULL๊ฐ’์ด ์•„๋‹Œ ๊ฒƒ์„ ์กฐํšŒํ•  ๊ฒฝ์šฐ IS NOT NULL์„ ์‚ฌ์šฉ NULL ๊ด€๋ จ ํ•จ์ˆ˜ (1) NVL : NULL์ด๋ฉด ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜ ex) NVL(mgr, 0)์ด๋ฉด mgr ์นผ๋Ÿผ์ด NULL์ด๋ฉด 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค (2) NVL2 : NVL ํ•จ์ˆ˜์™€ DECODE ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ๋งŒ๋“  ๊ฒƒ ex) NVL2(mgr, 1, 0) ~ mgr์ด NULL์ด ์•„๋‹ˆ๋ฉด 1, NULL์ด๋ฉด 0์„ ๋ฐ˜ํ™˜ (3) NULLIF : ๋‘ ๊ฐœ์˜..
SQL ๊ฐœ๋ฐœ์ž (SQLD) ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ Part.2 ์„น์…˜ 0. SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ : SQL์˜ ์ข…๋ฅ˜์™€ WHERE๋ฌธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•, GROUP ์—ฐ์‚ฐ, ๋‚ด์žฅํ˜• ํ•จ์ˆ˜ ๋“ฑ์„ ํ•™์Šตํ•œ๋‹ค ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 1) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋“ฑ์žฅ - 1970๋…„๋Œ€ ์ฒซ ๋“ฑ์žฅ - ๋ฆด๋ ˆ์ด์…˜๊ณผ ๋ฆด๋ ˆ์ด์…˜์˜ ์กฐ์ธ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ ๋“ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค 2) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ์˜ ์ฐจ์ด์  - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉํ•  ์ง€์— ๋”ฐ๋ผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณ„์ธตํ˜•, ๋„คํŠธ์›Œํฌํ˜•, ๊ด€๊ณ„ํ˜• ๋“ฑ์ด ์žˆ๊ณ , ๊ณ„์ธตํ˜•์€ ํŠธ๋ฆฌ, ๋„คํŠธ์›Œํฌํ˜•์€ ์˜ค๋„ˆ์™€ ๋ฉค๋ฒ„ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค(๊ณ„์ธต, ๋„คํŠธ์›Œํฌ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค ~ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐํŒŒ์•…์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—) - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ์€ ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ํ˜•์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค, DBMS..
SQL ๊ฐœ๋ฐœ์ž (SQLD) ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ Part 1 ์„น์…˜ 2. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์„ฑ๋Šฅ - ์ •๊ทœํ™” ๊ธฐ๋ฒ• - ๋ฐ˜ ์ •๊ทœํ™” ๊ธฐ๋ฒ• ์ •๊ทœํ™” : ๊ธฐ๋ณธ ๋ชฉํ‘œ ํ…Œ์ด๋ธ” ๊ฐ„ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค. ~ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€, DB ์ €์žฅ๊ณต๊ฐ„ ์ ˆ์•ฝ - ์ •๊ทœํ™”๋Š” ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ, ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ ์ค‘๋ณต, ์ตœ๋Œ€ํ•œ์˜ ๋ฐ์ดํ„ฐ ์œ ์—ฐ์„ฑ์„ ์œ„ํ•œ ๋ฐฉ๋ฒ•, ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ•ดํ•˜๋Š” ๊ณผ์ • -> ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๋…๋ฆฝ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• - 1 ~ 5 ์ •๊ทœํ™”๊นŒ์ง€ ์žˆ์œผ๋‚˜, ์‹ค์งˆ์ ์œผ๋กœ 3 ์ •๊ทœํ™”๊นŒ์ง€๋งŒ ์ˆ˜ํ–‰ํ•œ๋‹ค.(4, 5 ์ •๊ทœํ™”๋„ ์‹œํ—˜์— ๋‚˜์˜ฌ ์ˆ˜๋Š” ์žˆ๋‹ค) ์ด์ƒํ˜„์ƒ(Anomaly) : ์ •๊ทœํ™” ์ด์ „ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํ™ฉ ์ด์ƒํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”์„ ๋ถ„ํ•ดํ•ด์•ผ ํ•œ๋‹ค. ์ œ 1 ์ •๊ทœํ™” - ์†์„ฑ์˜ ์›์ž์„ฑ ํ™•๋ณด - ๊ธฐ๋ณธ ํ‚ค ์„ค์ • ์ œ 2 ์ •๊ทœํ™” - ๊ธฐ๋ณธ ํ‚ค๊ฐ€ 2๊ฐœ ์ด์ƒ์˜ ์†์„ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ, ๋ถ€๋ถ„ ํ•จ์ˆ˜ ์ข…์†์„ฑ์„ ๋ถ„..
SQL ๊ฐœ๋ฐœ์ž (SQLD) ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ Part 1 ์„น์…˜ 1. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด๋ž€? ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ DB๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”์ƒํ™” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ํŠน์ง• : ์ถ”์ƒํ™”, ๋‹จ์ˆœํ™”, ๋ช…ํ™• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋‹จ๊ณ„ : ๊ฐœ๋… - ๋…ผ๋ฆฌ - ๋ฌผ๋ฆฌ ๋‹ค์Œ ์ค‘ ์—”ํ„ฐํ‹ฐ๋กœ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒƒ์€? - ๊ธฐ์ถœ ์—”ํ„ฐํ‹ฐ๋Š” ์—…๋ฌด์ƒ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ด€์‹ฌ์‚ฌ ์ •๊ทœํ™”์˜ ๊ธฐ๋ณธ ๋ชฉํ‘œ - ์ค‘๋ณต ๋ฐ์ดํ„ฐ ์—†์• ๊ธฐ, ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€, DB ์ €์žฅ ์šฉ๋Ÿ‰ ์ค„์ด๊ธฐ ๊ฐ ๋ชจ๋ธ๋ง ๋‹จ๊ณ„๋ณ„ ํŠน์ง• ๊ฐœ๋…์  ๋ชจ๋ธ๋ง - ์ „์‚ฌ์  ๊ด€์ ์—์„œ ๊ธฐ์—… ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ๋ง - ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๊ฐ€์žฅ ๋†’์€ ์ˆ˜์ค€์˜ ๋ชจ๋ธ๋ง - ๊ณ„์ธตํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ, ๊ด€๊ณ„ํ˜•๋ชจ๋ธ์— ๊ด€๊ณ„์—†์ด ์—…๋ฌด ์ธก๋ช…์—์„œ ๋ชจ๋ธ๋ง ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง - ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ์— ์ข…์† - ์‹๋ณ„์ž๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ด€๊ณ„, ์†์„ฑ ๋“ฑ์„ ๋ชจ๋‘ ํ‘œํ˜„ - ์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ธ๋‹ค ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋ง - ๊ตฌ์ถ•ํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ..

728x90