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

sqld6

์˜ค๋ผํด ํ…Œ์ด๋ธ” ์ˆ˜์ • DDL (์ปฌ๋Ÿผ ์ถ”๊ฐ€/๋ณ€๊ฒฝ/์‚ญ์ œ) ์ฃผ์ œ DDL์ด๋ž€ Data Definition Language ์˜ ์•ฝ์ž๋กœ, ํ…Œ์ด๋ธ” ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์˜ ๋ช…๋ น์–ด๊ฐ€ DDL์— ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. DDL ๋ช…๋ น์–ด์—๋Š” CREATE(์ƒ์„ฑ)/ALTER(์ˆ˜์ •).TRUNCATE/DROP(์‚ญ์ œ) ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์–ด ์ˆ˜ํ–‰๊ณผ ๋™์‹œ์— ์ปค๋ฐ‹๋˜์–ด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ผํด์—์„œ๋Š” ํ…Œ์ด๋ธ” ์ˆ˜์ • ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ ์ถ”๊ฐ€ -- ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD ์ปฌ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž…(๊ธธ์ด); ALTER TABLE T_USER ADD MEM_ID VARCHAR2(24);T_USER๋ผ๋Š” ํ…Œ์ด๋ธ”์— ๋ฌธ์žํƒ€์ž…์˜ MEM_ID๋ผ๋Š” ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ ์ˆ˜์ • -- ALTER TABLE ํ…Œ์ด๋ธ”๋ช… MODIFY ์ปฌ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํƒ€์ž…(๊ธธ์ด); ALT.. 2023. 11. 8.
2023๋…„ SQLD ์‹œํ—˜ ์ •๋ณด ์•ˆ๋…•ํ•˜์„ธ์š”. 2023๋…„์— SQLD ๊ฐœ๋ฐœ์ž ์‹œํ—˜์„ ๋ณด๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์‹œํ—˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. 2023 ์‹œํ—˜์ผ์ • 8์›” ์‹œํ—˜ ์ ‘์ˆ˜๋ฅผ ๋†“์ณค๋‹ค๋ฉด ์˜ฌํ•ด๋Š” 10.16-20์ผ ์‹œํ—˜ ์ ‘์ˆ˜๊ฐ€ ๋งˆ์ง€๋ง‰ ๊ธฐํšŒ์ž…๋‹ˆ๋‹ค! ์‹œํ—˜ ๊ณผ๋ชฉ SQL ๊ฐœ๋ฐœ์ž ์ž๊ฒฉ์‹œํ—˜์˜ ๊ณผ๋ชฉ์€ ์ด 2๊ณผ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด ๊ณผ๋ชฉ์„ ๋ฐ”ํƒ•์œผ๋กœ SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ฒ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ถœ์ œ๋ฌธํ•ญ ๋ฐ ๋ฐฐ์  ์ด 50 ๋ฌธํ•ญ ์„ธ๋ถ€ ๋ฌธํ•ญ ํ•ฉ๊ฒฉ ๊ธฐ์ค€ ํ•ฉ๊ฒฉ ๊ธฐ์ค€: ์ด์  60์  ์ด์ƒ ๊ณผ๋ฝ ๊ธฐ์ค€: ๊ณผ๋ชฉ๋ณ„ 40% ๋ฏธ๋งŒ ์ทจ๋“ ์‚ฌ์ „ ์ ์ˆ˜ ๊ณต๊ฐœ ์‹œ๊ฐ„ ์‹œํ—˜ ์ค€๋น„๋ฌผ ์‹ ๋ถ„์ฆ ์ปดํ“จํ„ฐ์šฉ ์‚ฌ์ธํŽœ (๊ฐ๊ด€์‹์šฉ) ๊ฒ€์ • ๋ณผํŽœ (์ฃผ๊ด€์‹์šฉ) ์†๋ชฉ ์‹œ๊ณ„ ์‹œํ—˜ ๋ณด์‹œ๋Š” ๋ชจ๋“  ๋ถ„๋“ค ํ™”์ดํŒ…ํ•˜์„ธ์š”! ๐Ÿฅฐ 2023. 8. 14.
๋ฐ˜์ •๊ทœํ™”(DE-NORMALIZATION)๋ž€? ์˜ค๋Š˜์€ SQLD ๊ณผ๋ชฉ > ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด > ๋ฐ˜์ •๊ทœํ™”์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์ •๊ทœํ™”์˜ ๊ฐœ๋… ์ •๊ทœํ™”๋œ ์—”ํ‹ฐํ‹ฐ, ์†์„ฑ, ๊ด€๊ณ„์— ๋Œ€ํ•ด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ๊ฐœ๋ฐœ๊ณผ ์šด์˜์˜ ๋‹จ์ˆœํ™”๋ฅผ ์œ„ํ•ด ์ค‘๋ณต, ํ†ตํ•ฉ, ๋ถ„๋ฆฌ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ• ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ๋””์Šคํฌ I/O๋Ÿ‰์ด ๋งŽ์•„์„œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๊ฑฐ๋‚˜ ๊ฒฝ๋กœ๊ฐ€ ๋„ˆ๋ฌด ๋ฉ€์–ด ์กฐ์ธ์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์˜ˆ์ƒ๋˜๊ฑฐ๋‚˜ ์ปฌ๋Ÿผ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ฝ์„ ๋•Œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ๊ฒƒ์ด ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. => ๊ณผ๋„ํ•œ ์ •๊ทœํ™”๋กœ ์ธํ•ด ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ• ๋ฐ˜์ •๊ทœํ™”์˜ ๊ธฐ๋ฒ• - ํ…Œ์ด๋ธ”/์ปฌ๋Ÿผ/๊ด€๊ณ„๋ฐ˜์ •๊ทœํ™” 1. ํ…Œ์ด๋ธ” ๋ฐ˜์ •๊ทœํ™” ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ ํ…Œ์ด๋ธ” ๋ถ„ํ•  ํ…Œ์ด๋ธ” ์ถ”๊ฐ€ 1:1 ์ˆ˜์ง ๋ถ„ํ•  ์ค‘๋ณต ํ…Œ์ด๋ธ” ์ถ”๊ฐ€ 1:M ์ˆ˜ํ‰ ๋ถ„ํ•  ํ†ต๊ณ„ ํ…Œ์ด๋ธ” ์ถ”๊ฐ€ ์Šˆํผ, ์„œ๋ธŒ ํƒ€์ž… ๋ณ‘ํ•ฉ ์ด๋ ฅ .. 2023. 6. 12.
์ •๊ทœํ™”(NORMALIZATION)๋ž€? ์˜ค๋Š˜์€ SQLD ๊ณผ๋ชฉ > ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด > ์ •๊ทœํ™”์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ •๊ทœํ™”์˜ ๊ฐœ๋… ์ด์ƒํ˜„์ƒ์ด ์žˆ๋Š” ๋ฆด๋ ˆ์ด์…˜์„ ๋ถ„ํ•ดํ•ด์„œ ์ด์ƒํ˜„์ƒ์„ ์—†์• ๋Š” ๊ณผ์ • ํ•จ์ˆ˜์  ์ข…์†์„ฑ ๋“ฑ์˜ ์ด๋ก ์— ๊ทผ๊ฑฐํ•ด ์ข€ ๋” ์ž‘์€ ๋‹จ์œ„์˜ ํ…Œ์ด๋ธ”๋กœ ์„ค๊ณ„ํ•˜๋Š” ๊ณผ์ • ์ •๊ทœํ™”๋œ ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์†๋„๊ฐ€ ๋นจ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๊ณ  ๋Š๋ ค์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. โ€ป ์ด์ƒํ˜„์ƒ: ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ค‘๋ณต์œผ๋กœ ์ธํ•ด ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€์ž‘์šฉ [DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ™”์™€ ์ด์ƒ ํ˜„์ƒ (Normalization & Anomaly) ์ •๊ทœํ™”๋ž€ ์ด์ƒ ํ˜„์ƒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค๊ณ„ํ•ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์ด์ƒ ํ˜„์ƒ์ด๋ž€ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ค‘๋ณต์œผ๋กœ ์ธํ•ด ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ.. 2023. 6. 12.
์˜ค๋ผํด ๋ฐ์ดํ„ฐ ์กฐํšŒ/์‚ฝ์ž…/์‚ญ์ œ/๊ฐฑ์‹  ์ด์ „ ๊ธ€์—์„œ ํ…Œ์ด๋ธ” crud ์ฟผ๋ฆฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์› ์œผ๋‹ˆ ์ปฌ๋Ÿผ๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ” crud ๊ฐœ๋…์„ ๋ณด๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์ด ๋ถ€๋ถ„์„ ํด๋ฆญํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์กฐํšŒ, ์ˆ˜์ •, ์‚ฝ์ž…, ์‚ญ์ œ ๋ฐฉ๋ฒ•์˜ ํ˜•์‹ ๋ฐ ์˜ˆ์‹œ๋ฅผ ์ ์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์กฐํšŒ SELECT ํ˜•์‹ select ์ปฌ๋Ÿผ๋ช…1, ์ปฌ๋Ÿผ๋ช…2, ... from ์กฐํšŒํ• ํ…Œ์ด๋ธ”๋ช… ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ select * from ํ…Œ์ด๋ธ”๋ช… ์˜ˆ์‹œ -- tb_emp ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ ์กฐํšŒ SELECT * FROM tb_emp; -- tb_emp ํ…Œ์ด๋ธ”์— ์žˆ๋Š” emp_no, emp_nm ๋ฐ์ดํ„ฐ ์กฐํšŒ SELECT emp_no, emp_nm FROM tb_emp; ๊ฒฐ๊ณผ SELECT ๋ฌธ ์ž‘์„ฑ ๊ทœ์น™ ๋”๋ณด๊ธฐ - ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€.. 2023. 6. 7.
์˜ค๋ผํด DECODE ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ• DECODE๋Š” ์˜ค๋ผํด ์ฟผ๋ฆฌ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํ‘œ์ค€ SQLํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ์–ด์„œ ORACLE SQL์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. CASE WHEN ๊ตฌ๋ฌธ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๊ฐ€์ง€ ํ•จ์ˆ˜๋ฅผ ๋ชจ๋‘ ์†Œ๊ฐœํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. CASE WHEN IF๋ฌธ๊ณผ ๊ฐ™์ด ์กฐ๊ฑด์„ ์ฒดํฌํ•˜์—ฌ ํ•ด๋‹น ์กฐ๊ฑด๋งˆ๋‹ค ๋ฆฌํ„ด๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ๋Š” ์—ญํ• ์ž…๋‹ˆ๋‹ค. DECODE์˜ ์˜ค๋ผํด SQL์—์„œ๋งŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•ด์ฃผ๋Š” ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค. ํ˜•์‹ SELECT CASE WHEN '์กฐ๊ฑด THEN '๋ฆฌํ„ด๊ฐ’' ELSE 'ํ•ด๋‹น์กฐ๊ฑด์ด์—†๋Š”๊ฒฝ์šฐ๋ฆฌํ„ด๊ฐ’' END AS '๊ฒฐ๊ณผํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๊ฐ’' FROM ํ…Œ์ด๋ธ”๋ช… ์˜ˆ์ œ SELECT CASE WHEN SAL_CD = '100001' THEN '๊ธฐ๋ณธ๊ธ‰' WHEN SAL_CD = '100002' THEN '์ƒ์—ฌ๊ธˆ' WHEN.. 2023. 6. 7.
๋ฐ˜์‘ํ˜•