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

๐Ÿ–‹๏ธ ๊ธฐ์ˆ ์‹ฌํ™”14

[ํ›„๊ธฐ] SQLD ์‹œํ—˜ ์ ‘์ˆ˜ ๋ฐฉ๋ฒ• *์ˆ˜ํ—˜์ž๋Š” ํ•„ํžˆ 9์‹œ 30๋ถ„๊นŒ์ง€ ๊ณ ์‚ฌ์‹ค ์ž…์‹คํ•˜์—ฌ ๋ณธ์ธ ํ™•์ธ์„ ๋งˆ์นœ ํ›„ ์•ˆ๋‚ด์‚ฌํ•ญ ๋“ฑ์„ ์ˆ™์ง€ํ•ด์•ผ ํ•˜๋ฉฐ, ์‹œ์ž‘ํ•œ ์ดํ›„์—๋Š” ์ž…์‹คํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. *์ˆ˜ํ—˜์ž๋Š” โ‘ ์ธ์ •๋ฒ”์œ„ ์‹ ๋ถ„์ฆ โ‘ก์ˆ˜ํ—˜ํ‘œ โ‘ข๊ฒ€์ •์ƒ‰ ํ•„๊ธฐ๊ตฌ(์ปดํ“จํ„ฐ์šฉ ์‹ธ์ธํŽœ ๋˜๋Š” ๋ณผํŽœ) ๋ฅผ ์ง€์ฐธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค ์‘์‹œ์ž_์ค€๋น„๋ฌผ KData ๋ฐ์ดํ„ฐ์ž๊ฒฉ๊ฒ€์ • ์‚ฌ์ดํŠธ์—์„œ ์ผ์ •์„ ํ™•์ธํ•˜๊ณ  ์ ‘์ˆ˜ ๊ฐ€๋Šฅํ•จ. ์ ‘์ˆ˜ ๊ด€๋ จ๋œ 3๊ฐœ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋จ. https://www.dataq.or.kr/www/main.do ์ ‘์ˆ˜๊ฐ€ ์‹œ์ž‘๋˜๋Š” 10:00 ์ •๊ฐ์—๋Š” ๋Œ€๊ธฐ์—ด์ด ์žˆ์„ ์ •๋„๋กœ ์‚ฌ๋žŒ์ด ๋ชฐ๋ฆฌ์ง€๋งŒ 1-2์‹œ๊ฐ„๋งŒ ์ง€๋‚˜๋„ ๋Œ€๊ธฐ์—†์ด ์ ‘์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•จ ์‹ ์ฒญ ํ™”๋ฉด์˜ ๊ณ ์‚ฌ์žฅ ์„ ํƒ๋ž€์—๋Š” ์ฃผ์†Œ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์œผ๋ฏ€๋กœ, ๊ณ ์‚ฌ์žฅ๋ช…์„ ์ž˜ ๊ธฐ์–ตํ•ด๋‘๊ณ  ์‹ ์ฒญํ•˜๊ธฐ ์ ‘์ˆ˜ ์‹œ ์ฆ๋ช…์‚ฌ์ง„์„ ์ฒจ๋ถ€ํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋‚˜์ค‘์— ๊ฒฐ์ œ ์ดํ›„์— ์ ‘์ˆ˜์กฐํšŒ[๋ชฉ๋ก]์—์„œ ์ˆ˜์ •์ด.. 2023. 11. 20.
[ํ›„๊ธฐ] sqld 51ํšŒ์ฐจ ์‹œํ—˜ ์‘์‹œ ํ›„๊ธฐ ๊ธฐ์กด ๊ธฐ์ถœ๋ณด๋‹ค ์–ด๋ ค์› ๋‹ค... ์ข€๋” ์ •ํ™•ํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ”์œผ๋ฉด ์ข‹์•˜์„ ํ…๋ฐ ํ•˜๊ณ  ํ›„ํšŒํ–ˆ๋˜ ๋ถ€๋ถ„ not exists์™€ not in rows between ๊ณผ range between ํŠนํžˆ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ํ™œ์šฉ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ์œผ๋ฉด ์ •๋ง ์ข‹์„๋“ฏ ๋ช…๋ น์–ด์ธ์ง€ ์ œ์–ด์–ด์ธ์ง€ ๋ฌธ์ œ ์ž˜์ฝ๊ณ  ์ฃผ๊ด€์‹ ๋‹ต ์“ฐ๊ธฐ ํŠนํžˆ ์ฃผ๊ด€์‹์€ floor(-2.4)์ฒ˜๋Ÿผ ์•„๋ฌด ์ƒ๊ฐ์—†์ด ์“ฐ๋ฉด ์‹ค์ˆ˜ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ์ •์•„๋‹Œ ํ•จ์ •์ด ์žˆ์œผ๋‹ˆ ์นจ์ฐฉํ•˜๊ฒŒ ํ’€ ๊ฒƒ. ๋ฌธ์ œ์ง€๊ฐ€ ์ž˜ ์ธ์‡„๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์‹œ๊ฐ„์ด ์žˆ๋Š”๋ฐ ์ด๋•Œ ์‚ฌ๋žŒ๋“ค์ด ์€๊ทผ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€์˜ ์ฃผ๊ด€์‹์„ ๋Œ€์ถฉ ๋ณด๊ณ  ๋‹ต์„ ์“ฐ๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋‘๋ฅด๋ฉด ์‹ค์ˆ˜๊ฐ€ ์ƒ๊ธฐ๋ฏ€๋กœ ์ •๋ง ๋ญ ํ•˜๋‚˜ ํ’€์–ด์•ผ๊ฒ ๋‹ค ์ƒ๊ฐ์ด ๋“ ๋‹ค๋ฉด ํ•œ ๋ฌธ์ œ๋งŒ ๊นŠ๊ฒŒ ์ฝ๊ณ  ๋‹ต ์ƒ๊ฐํ•ด๋‘๊ธฐ. ์˜์™ธ๋กœ 1์‹œ๊ฐ„ 30๋ถ„์ด๋ผ๋Š” ์‹œํ—˜์‹œ๊ฐ„์ด ์งง๊ฒŒ ๋Š๊ปด์ง„๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ด 50๋ฌธํ•ญ์ด.. 2023. 11. 18.
[SQLD๋ฒผ๋ฝ์น˜๊ธฐ] ์ถ”๊ฐ€ ์˜ค๋‹ต๋…ธํŠธ ISLEAF = 1 : ๋‚ด๊ฐ€ ์ฝ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์‹์ด ์—†์œผ๋ฉด 1, ์žˆ์œผ๋ฉด 0 SELECT A, B, AVG(SAL) OVER ( PARTITIONA BY DEPT ORDER BY SAL BETWEEN 1 PRECEDING AND 1 FLLOWING ) AS C1 FROM your_table; SELECT A, B: A์™€ B๋ผ๋Š” ๋‘ ๊ฐœ์˜ ์ปฌ๋Ÿผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. AVG(SAL) OVER (...) AS C1: SAL ์ปฌ๋Ÿผ์˜ ๊ฐ’์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ ์œˆ๋„์šฐ(๋ฐ์ดํ„ฐ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ) ๋‚ด์—์„œ ํ‰๊ท  ๊ธ‰์—ฌ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์ด ๊ฒฐ๊ณผ๋ฅผ C1์ด๋ผ๋Š” ๋ณ„์นญ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. PARTITIONA BY DEPT : ๊ฐ DEPT (๋ถ€์„œ)๋Š” ๋ณ„๋„์˜ ํŒŒํ‹ฐ์…˜์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ORDER BY SAL: ์œˆ๋„์šฐ๋ฅผ SAL ์ปฌ๋Ÿผ์˜ ๊ฐ’์— ๋”ฐ๋ผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. BETWEEN.. 2023. 11. 17.
[SQLD๋ฒผ๋ฝ์น˜๊ธฐ] SQL ์ž๊ฒฉ๊ฒ€์ • ์‹ค์ „๋ฌธ์ œ ์˜ค๋‹ต๋…ธํŠธ(2๊ณผ๋ชฉ-3) 2-3 SQL ์ตœ์ ํ™” ๊ธฐ๋ณธ์›๋ฆฌ ๋น„์šฉ๊ธฐ๋ฐ˜ ์˜ตํ‹ฐ๋งˆ์ด์ € : ํ†ต๊ณ„์ •๋ณด ํ™œ์šฉํ•œ ํšจ์œจ์  ์‹คํ–‰๊ณ„ํš ์„ ํƒ ๊ทœ์น™๊ธฐ๋ฐ˜ ์˜ตํ‹ฐ๋งˆ์ด์ € : ROWIDํ™œ์šฉํ•œ ํ…Œ์ด๋ธ” ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์‹œ์ž‘ (Single row by rowid) B-TREE ์ธ๋ฑ์Šค : ๋ธŒ๋žœ์น˜๋ธ”๋ก๊ณผ ๋ฆฌํ”„๋ธ”๋ก์œผ๋กœ ๊ตฌ์„ฑ. OLTP ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ CLUSTERED ์ธ๋ฑ์Šค : ์ธ๋ฑ์Šค ๋ฆฌํ”„ํŽ˜์ด์ง€ = ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์ธ๋ฑ์Šค ํ‚ค ์ปฌ๋Ÿผ์ˆœ์œผ๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ์Œ BITMAP ์ธ๋ฑ์Šค : ํ•˜๋‚˜์˜ ์ธ๋ฑ์Šค ํ‚ค ์—”ํŠธ๋ฆฌ๊ฐ€ ๋งŽ์€ ํ–‰์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์Œ SQL Server์˜ ํด๋Ÿฌ์Šคํ„ฐํ˜• ์ธ๋ฑ์Šค (=์œ ์‚ฌ) Oravle์˜ IOT ์ธ๋ฑ์Šค๋Š” UPDATE ์ž‘์—…์— ๋ถ€ํ•˜์—†์„ ์ˆ˜๋„ ์žˆ์Œ OLTP : OLTP(Online Transaction Processing)๋Š” ์‹ค์‹œ๊ฐ„ ํŠธ๋žœ์žญ์…˜.. 2023. 11. 17.
[SQLD๋ฒผ๋ฝ์น˜๊ธฐ] SQL ์ž๊ฒฉ๊ฒ€์ • ์‹ค์ „๋ฌธ์ œ ์˜ค๋‹ต๋…ธํŠธ(2๊ณผ๋ชฉ-2) 2-2 SQL ํ™œ์šฉ ์ˆœ์ˆ˜๊ด€๊ณ„์—ฐ์‚ฐ์ž : SELECT(where์ ˆ๋กœ), PROJECT(select์ ˆ๋กœ), JOIN, DIVIDE USING : ๋‘ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•  ๋•Œ ํŠน์ •์—ด ๊ธฐ์ค€์œผ๋กœ ์กฐ์ธ ์‹œ ์‚ฌ์šฉํ•จ. USING ์กฐ๊ฑด์ ˆ์—๋Š” JOIN ์นผ๋Ÿผ์— ๋Œ€ํ•ด AliasX ํ…Œ์ด๋ธ”์ด๋ฆ„ ์ ‘๋‘์‚ฌX CROSS JOIN : ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์กฐํ•ฉ ์ „์ œ (๋‹ด๋‹น์‚ฌ์›ํ…Œ์ด๋ธ”๊ณผ ๊ณ ๊ฐํ…Œ์ด๋ธ”์ด ์žˆ๋Š”๋ฐ ์•„์ง ์„œ๋กœ ๋งค์นญ ์•ˆ๋œ ์ผ€์ด์Šค๋„ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ) ๊ณ ๊ฐ์ด ๋ฐฐ์ •๋˜์ง€ ์•Š์€ ๋‹ด๋‹น์‚ฌ์›์— ๋Œ€ํ•ด์„œ๋Š” ๊ณ ๊ฐ ๊ด€๋ จ ์ปฌ๋Ÿผ์ด NULL๋กœ ํ‘œ์‹œ SELECT * FROM ๋‹ด๋‹น์‚ฌ์› LEFT OUTER JOIN ๊ณ ๊ฐ ON ๋‹ด๋‹น์‚ฌ์›.id = ๊ณ ๊ฐ.๋‹ด๋‹น์‚ฌ์›_id; // ํ˜„๋Œ€์ ์ธ ANSI SQL ํ‘œ์ค€ ์กฐ์ธ ๊ตฌ๋ฌธ์ด ์ง€์›๋จ^^ SELECT * FROM ๋‹ด๋‹น์‚ฌ์›, ๊ณ ๊ฐ WHERE ๋‹ด๋‹น์‚ฌ์›.์‚ฌ.. 2023. 11. 17.
[SQLD๋ฒผ๋ฝ์น˜๊ธฐ] SQL ์ž๊ฒฉ๊ฒ€์ • ์‹ค์ „๋ฌธ์ œ ์˜ค๋‹ต๋…ธํŠธ(2๊ณผ๋ชฉ-1) [ 2๊ณผ๋ชฉ SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ ] 2-1 SQL ๊ธฐ๋ณธ DCL : ์ปจํŠธ๋กค = ๊ถŒํ•œ DDL : Definition ์ •์˜์–ด. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(ํ…Œ์ด๋ธ” ์ด๋ฆ„, ๊ตฌ์กฐ ์ƒ์„ฑ, ํ…Œ์ด๋ธ” ์‚ญ์ œ) ์ •์˜ DML : Manipulation ๋ฐ์ดํ„ฐ ์กฐ์ž‘(์ƒˆ๋กœ์šดํ–‰ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ) + ์กฐํšŒ TCL : Transaction ์ปจํŠธ๋กค(DML ์กฐ์ž‘๊ฒฐ๊ณผ ์ž‘์—…๋‹จ์œ„๋ณ„๋กœ ์ œ์–ด) PL/SQL, T-SQL : ์ ˆ์ฐจ์  ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด, ์ƒ์„ธํžˆ ๋ช…์„ธํ•˜๋Š” ์–ธ์–ด ๋ฐ์ดํ„ฐ ๋ถ€์†์–ด : ํ˜ธ์ŠคํŠธ ํ”„๋กœ๊ทธ๋žจ ์†์— ์‚ฝ์ž…๋˜์–ด ์‚ฌ์šฉํ•˜๋Š” DML ๋ช…๋ น์–ด๋“ค ๋ฐ์ด๋ธ” ์ปฌ๋Ÿผ ์ •์˜ ๋ณ€๊ฒฝ : Oracle-ALTER TABLE + MODIFY ... SQL Server-ALTER TABLE + ALTER ... SQL Server : ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ ๋™์‹œ ์ˆ˜์ • ์ง€์›X. ๊ด„ํ˜ธ์‚ฌ์šฉX, NOT .. 2023. 11. 17.
[SQLD๋ฒผ๋ฝ์น˜๊ธฐ] SQL ์ž๊ฒฉ๊ฒ€์ • ์‹ค์ „๋ฌธ์ œ ์˜ค๋‹ต๋…ธํŠธ(1๊ณผ๋ชฉ) [ 1๊ณผ๋ชฉ ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์˜ ์ดํ•ด ] 1-1 ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง ์ค‘์š”์„ฑ๊ณผ ์œ ์˜์  : ์ค‘๋ณต, ๋น„์œ ์—ฐ์„ฑ(์—…๋ฌด๋ณ€ํ™”๋กœ ์˜ํ–ฅX), ๋น„์ผ๊ด€์„ฑ(a๊ฐฑ์‹ ์œผ๋กœ b์ž๋™๊ฐฑ์‹ X) '์‚ฌ์šฉ์ž์ฒ˜๋ฆฌ ํ”„๋กœ์„ธ์Šค'์™€ 'ํ…Œ์ด๋ธ”' ์—ฐ๊ณ„์„ฑ์ด ๋†’์•„์ง€๋ฉด ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง ์—…๋ฌด๋ณ€๊ฒฝ์ด ์ทจ๋žตํ•ด์ง€๋ฏ€๋กœ ์—ฐ๊ณ„์„ฑX ๋ถ„๋ฆฌO = ๋น„์œ ์—ฐ์„ฑ ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง ์ˆœ์„œ : ๊ฐœ ๋…ผ ๋ฌผ (๊ฐœ๋…-์—…๋ฌด์ค‘์‹ฌ ์ „์‚ฌ์ , ๋…ผ๋ฆฌ-์—…๋ฌด ์ •ํ™•ํžˆ ํ‘œํ˜„, ๋ฌผ๋ฆฌ-์‹ค์ œ DB) ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ ์š”์†Œ : ์™ธ ๊ฐœ ๋‚ด (์™ธ๋ถ€์Šคํ‚ค๋งˆ-์‚ฌ์šฉ์ž, ๋‚ด๋ถ€์Šคํ‚ค๋งˆ-๋ชจ๋“ ์‚ฌ์šฉ์ž๊ด€์ , ๋ฌผ๋ฆฌ์Šคํ‚ค๋งˆ-๋ฌผ๋ฆฌ์žฅ์น˜) ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ : ๋…ผ๋ฆฌ, ๋ฌผ๋ฆฌ (๋…ผ๋ฆฌ-๋ชจ๋“ ์‚ฌ์šฉ์ž๋ณ€๊ฒฝ์œผ๋กœ ๊ฐœ์ธ์‚ฌ์šฉ์ž ์˜ํ–ฅX, ๋ฌผ๋ฆฌ์žฅ์น˜ ๋ณ€๊ฒฝ๋œ๋‹ค๊ณ  ์‚ฌ์šฉ์ž์Šคํ‚ค๋งˆ ์˜ํ–ฅX) ERD ์ž‘์„ฑ์ˆœ์„œ : ์—”ํ‹ฐํ‹ฐ ๊ทธ๋ฆฐ๋‹ค -> ๋ฐฐ์น˜ -> ๊ด€๊ณ„์„ค์ • -> ๊ด€๊ณ„๋ช… ๊ธฐ์ˆ  -> ์ฐธ์—ฌ๋„ ๊ธฐ์ˆ  -> ํ•„์ˆ˜์—ฌ๋ถ€.. 2023. 11. 17.