sqld7 2025๋ SQLD ์๊ฒฉ์ฆ ์ํ์ผ์ ๐ ๋ฐ์ดํฐ์๊ฒฉ๊ฒ์ ์ฌ์ดํธ ๋ฐ์ดํฐ์๊ฒฉ๊ฒ์ ๋ฐ์ดํฐ์๊ฒฉ๊ฒ์ , ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ, DAP, DAsP, SQLP, SQLD, ADP, ADsPwww.dataq.or.kr ๐ 2025๋ ๋ SQLD ์๊ฒฉ์ฆ ์ํ์ผ์ ๐ ์ํ์์๋ฃ SQL ๊ฐ๋ฐ์ (SQLD) : 50,000์ ๐ ์ํ๊ณผ๋ชฉ๊ตฌ๋ถ์ฃผ์ํญ๋ชฉ์ธ๋ถํญ๋ชฉ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ดํด๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ดํด์ํฐํฐ์์ฑ๊ด๊ณ ์๋ณ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ SQL์ ๊ทํ๊ด๊ณ์ ์กฐ์ธ์ ์ดํด๋ชจ๋ธ์ด ํํํ๋ ํธ๋์ญ์ ์ ์ดํดNULL ์์ฑ์ ์ดํด๋ณธ์ง์๋ณ์ VS ์ธ์กฐ์๋ณ์ SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉSQL ๊ธฐ๋ณธ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธ SELECT ๋ฌธ ํจ์WHERE ์ GROUP BY ์ ์กฐ์ธํ์ค ์กฐ์ธSQL ํ์ฉ์๋ธ์ฟผ๋ฆฌ ์งํฉ ์ฐ์ฐ์ ๊ทธ๋ฃน ํจ์ ์๋์ฐ ํจ์ Top N ์ฟผ๋ฆฌ ๊ณ์ธตํ ์ง์์ ์ ํ ์กฐ์ธ P.. 2025. 4. 10. ์ค๋ผํด ํ ์ด๋ธ ์์ 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. ์ด์ 1 ๋ค์ ๋ฐ์ํ