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

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

[SQLD] sqld ์‹œํ—˜ ์•ˆ์ •๊ถŒ์œผ๋กœ ํ•ฉ๊ฒฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ดˆ์‹œ๋กœ ํ•ฉ๊ฒฉํ•œ sqld ์ž๊ฒฉ์ฆ ์‹œํ—˜๊ณต๋ถ€ ์‹œ์ž‘ ์ „(10์›”) sql ๋ฐฐ๊ฒฝ์ง€์‹ - ํ•™์›์—์„œ ์˜ค๋ผํด ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ํ•™์Šตํ•จ - โŒœ๋„์„œ - ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋งโŒŸ ํ•™์› ์ˆ˜์—… ๋ฐ ๊ฐœ์ธ ํ•™์Šต - ์Šคํ”„๋ง + MyBatis + MySQL ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์œผ๋กœ ๊ธฐ๋ณธ์ ์ธ SQL๋ฌธ ๊ฒฝํ—˜ ์žˆ์Œ - ํ•™์› ์‹ฌํ™”๊ฐ•์˜๋กœ โŒœ๋„์„œ - ์นœ์ ˆํ•œ SQL ํŠœ๋‹โŒŸ ์ˆ˜๊ฐ• ํ›„ ๊ฐœ์ธ ํ•™์Šต ์˜ค๋ผํด ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๊ด€๋ จ ๊ธ€์€ ํ‹ฐ์Šคํ† ๋ฆฌ์— ๊ณต๊ฐœ๋˜์–ด ์žˆ์–ด์š” 2023.11.11 - [๐Ÿ–ฅ๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/SQL] - [Oracle] SQL์ด๋ž€ ์‹ค์ œ ๊ณต๋ถ€ ๊ธฐ๊ฐ„ sqld ์ž๊ฒฉ๊ฒ€์  ๊ธฐ์ถœ๋ฌธ์ œ์ง‘ : 10/15-10/21 sqld ์š”์•ฝ์ •๋ฆฌ ๋ฐ ๊ธฐ์ถœ๋ฌธ์ œ : 11/6-11/10 sqld ๊ธฐ์ถœ ๋ฌธํ’€ ์œ ํŠœ๋ธŒ ๋ฐ ์˜ค๋‹ต์ •๋ฆฌ 11/11-11/17 ์‹œํ—˜์„ ์œ„ํ•œ ๊ณต๋ถ€ ๋ฐฉ๋ฒ• SQL ์ž๊ฒฉ๊ฒ€์ • ์‹ค์ „๋ฌธ์ œ(๋…ธ๋žญ์ด ๋ฌธ.. 2023. 12. 27.
[ํ›„๊ธฐ] SQLD 51ํšŒ ์‚ฌ์ „ ๊ฒฐ๊ณผ๋ฐœํ‘œ ํ™•์ธ ๋ฐฉ๋ฒ• ๋ฐ ๊ฒฐ๊ณผ ๐Ÿ˜† SQLD ์‚ฌ์ „ ๊ฒฐ๊ณผ๋ฐœํ‘œ ํ™•์ธ ๋ฐฉ๋ฒ• ์‚ฌ์ „ ๊ฒฐ๊ณผ๋ฐœํ‘œ๋Š” ์‹ค์ œ ์„ฑ์  ๊ณต๊ณ ์ผ๋กœ๋ถ€ํ„ฐ 1์ฃผ์ผ ์ „, 16์‹œ์— ํ™ˆํŽ˜์ด์ง€์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค https://www.dataq.or.kr/www/mypage/accept/result.do ๋ฐ์ดํ„ฐ์ž๊ฒฉ์‹œํ—˜ www.dataq.or.kr ๋กœ๊ทธ์ธ > ์‹œํ—˜๊ฒฐ๊ณผ > ๊ฒฐ๊ณผํ™•์ธ ๋‚˜์˜ ๊ฒฐ๊ณผ๋ฐœํ‘œ ๋‚˜์˜ ์‚ฌ์ „ ๊ฒฐ๊ณผ๋ฐœํ‘œ๋Š” ํ•ฉ๊ฒฉ์˜ˆ์ • ๐Ÿ˜Ž ํ—คํ—ค '์‹œํ—˜๊ฒฐ๊ณผ ํ™•์ธ' ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋ด๋„ ๊ตฌ์ฒด์ ์ธ ์ ์ˆ˜๋Š” ๋‚˜์˜ค์ง€ ์•Š์Œ. ์‹ค์ œ ์„ฑ์  ๊ณต๊ณ ์ผ์ธ 1์ฃผ์ผ ๋’ค๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผํ•จ ์•„๋‹ˆ๋„ค?? '์‹œํ—˜๊ฒฐ๊ณผ ํ™•์ธ' ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ๊ณผ๋ชฉ๋‹น ๊ตฌ์ฒด์ ์ธ ์ ์ˆ˜ ๋‚˜์˜จ๋‹ค!! ์ฒ˜์Œ์— 20์ ๋งŒ ๋ณด๊ณ  ์•„, ๊ธฐ๋ณธ ๋ฐฐ์ ๋งŒ ๋‚˜์˜ค๋Š”๊ตฌ๋‚˜ ํ–ˆ๋Š”๋ฐ... 1๊ณผ๋ชฉ ๋‹ค ๋งž์€๊ฑฐ์˜€์Œ! ๋‚ด ์ ์ˆ˜๋Š”? 84์ ! ๐Ÿ˜† ๐Ÿ˜† ๐Ÿ˜† ์ทจ์ง์ด ์–ด๋ ค์šด ์‹œ๊ธฐ์— ์ž๊ฒฉ์ฆ ์‹œํ—˜์„ ํ•ฉ๊ฒฉํ•˜๊ฒŒ ๋˜์–ด์„œ ์ •๋ง ๊ธฐ์˜๋‹ค! 2023. 12. 8.
[ํ›„๊ธฐ] 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.