IT/DataBase59 [MSQL] ROWNUM ์ญ์์ผ๋ก ๊ณ์ฐํ๋ SQL ๊ธฐ๋ฒ ๋ชฉ์ฐจ์ํ ์ฟผ๋ฆฌWITH TB1 AS ( SELECT 1 AS SEQ, 'user' AS SEARCH_TYPE, 'ํ๊ธธ๋' AS SEARCH_NM, '2025-01-01 12:00:00' AS CREATED_AT UNION ALL SELECT 2 AS SEQ, 'bussiness' AS SEARCH_TYPE, 'ABC Corp' AS SEARCH_NM, '2025-01-02 14:00:00' AS CREATED_AT UNION ALL SELECT 3 AS SEQ, 'user' AS SEARCH_TYPE, '์ด์์ ' AS SEARCH_NM, '2025-01-01 09:00:00' AS CREATED_AT),TB2 AS ( SELECT 1 AS MEMB_ID, 'ํ๊ธธ๋' AS N.. IT/DataBase 2025. 1. 19. [SQL] ๋ฐฑ๋ถ์จ ์์ ๋ชฉ์ฐจ SELECT 5 / 30 * 100 FROM dual ; 1. ๋ฐฑ๋ถ์จ ๊ณ์ฐ์ ๊ตฌํ๋ ค๋ ์ปฌ๋ผ์ ์ ์ฒด ์ปฌ๋ผ๊ฐ์๋ก ๋๋ ๋ค 100์ ๊ณฑํ๋ค. ์ค์ SQL(cubrid ์ฌ์ฉ) SELECT CASE WHEN A.HOUSE_TY_SECD = '1' THEN '๋ค๊ฐ๊ตฌ' WHEN A.HOUSE_TY_SECD = '2' THEN '๋น๋ผ' WHEN A.HOUSE_TY_SECD = '3' THEN '์ํํธ' WHEN A.HOUSE_TY_SECD = '4' THEN '์คํผ์คํ ' WHEN A.HOUSE_TY_SECD = '5' THEN '๋จ๋ ' WHEN A.HOUSE_TY_SECD = '6' THEN '๋ค์ธ๋' WHEN A.HOUSE_TY_SECD = '7' THEN '์ฐ๋ฆฝ' WHEN A.HOUSE_TY_SECD = '8.. IT/DataBase 2024. 3. 20. [cubrid] ์๋ธ ์ฟผ๋ฆฌ ๋ณ์นญ ์ฌ์ฉ ์ ์ฃผ์์ cubrid ์๋ธ์ฟผ๋ฆฌ ๋ณ์นญ ์ฌ์ฉ ์ LIST๋ ์์ฝ์ด๋๊น ์ฌ์ฉํ์ง ๋ง์์๋ ์ฟผ๋ฆฌ๋ Oracle DBMS์์๋ ์ ์ ๋์ํ์ง๋ง cubrid์์๋ syntax error๊ฐ ๋ฐ์ํ๋ค.SELECT LIST.* FROM ( SELECT EMP_SNO , EMP_ID , EMP_EMAIL , EMP_HP FROM EMP_INFO_L ) LIST;์ฝ์ง์ ๊ฝค๋ ํ๋๋ฐ ํ๋ธ๋ฆฌ๋ ๊ณต์๋ฌธ์ ์ฐพ์๋ณด๋ LIST๊ฐ ์์ฝ์ด๋ก ๋์ด์๋ค. [linux] ๋ฆฌ๋ ์ค์ cubrid ์ค์น(feat. cubrid 11.2 ver)์ง๋์ฃผ ๋ฆฌ๋ ์ค ์๋ฒ์ cubrid DBMS๋ฅผ ์ค์น ํ๊ธฐ์ ๋ฉ๋ชจํ๋ค. ์ค์นํ ๋ ์บก์ฒ๋ฅผ ํ์ง ๋ชปํ ๊ด๊ณ๋ก ๊ธฐ์ต์ ๋๋ฌ์ด ํ๋ก์ธ์ค ์์ฃผ๋ก ๊ธฐ๋กํ๋ค. 1. ๋ฆฌ๋ ์ค ์๋ฒ์ jdk๋ฅผ ์ค์น/ํ๊ฒฝ๋ณ.. IT/DataBase 2024. 1. 13. [Oracle] N๊ฐ์ํ๊น์ง ๋ ์ง ๊ตฌํ๊ธฐ (feat. Connect by level) WITH calendar AS ( SELECT TO_CHAR(TO_DATE('20231201') + LEVEL - 1, 'YYYYMMDD') AS dt FROM dual CONNECT BY LEVEL ์ค๋ผํด์ Connect by level์ ์ด์ฉํด์ ๋ ์ง๋ฅผ ๊ตฌํ ์ ์๋๋ฐ ํน์ ๋ ์ง๋ก๋ถํฐ 4๊ฐ์ ์ง๋์์ ๊น์ง์ ๋ ์์ผ์ ๊ตฌํ ์ ์๋ค.์ ์ฟผ๋ฆฌ๋ 12์1์ผ ๊ธฐ์ค์ผ๋ก 4๊ฐ์ ํ์ ๋ ์ง๋ฅผ ์ ๋ถ ๊ตฌํ๋ ์ฟผ๋ฆฌ๋ค.SELECT์ ์์์ LEVEL -1์ 1์ผ๋ถํฐ ๊ตฌํ๊ธฐ ์ํด์๋ค.์ด๋ ๊ฒ ํ์ง ์์ ๊ฒฝ์ฐ 12์2์ผ๋ถํฐ ์กฐํ๋๋ค.(์ด๊ธฐ๊ฐ์ด 1์ด๊ธฐ์)level์ 1๋ถํฐ 122๊น์ง ์์ฑ๋๋๋ฐ ๋ ์ง ํ์์ด๊ธฐ์ 01 ~ 31๊น์ง ์๋์ผ๋ก ๋งคํ๋์ด ์กฐํ๋๋ค.๊ฐ์ธ ์คํฐ๋ ๊ธฐ๋ก์ ๋ฉ๋ชจํ๋ ๊ณต๊ฐ์ด๋ผ ํ๋ฆฐ์ ์ด ์์ ์ ์์ต๋๋ค.. IT/DataBase 2023. 12. 3. [DBMS] N:M(๋ค๋๋ค) ๊ด๊ณ์ผ ๋ ๋งคํ ํ ์ด๋ธ๋ก ๊ด๊ณ ํ์ฑ ํ๋์ ๋ฉ๋ด๋ ์ฌ๋ฌ๊ฐ์ ์ ์ ๊ทธ๋ฃน๊ณผ ์ฐ๊ฒฐ๋ ์ ์๊ณ ํ๋์ ์ ์ ๊ทธ๋ฃน๋ ์ฌ๋ฌ๊ฐ์ ๋ฉ๋ด์ ๋ณด์ ์ฐ๊ฒฐ๋ ์ ์๊ธฐ์ ๋ค๋๋ค ๊ด๊ณ๋ผ๊ณ ํ ์ ์๋ค.(ํ์๊ณผ ์ ์ ๊ทธ๋ฃน๋ ๋ง์ฐฌ๊ฐ์ง๋ค) ์๋ฅผ ๋ค์ด ํ์๊ด๋ฆฌ๋ผ๋ ๋ฉ๋ด๋ฅผ A๊ทธ๋ฃน๋ ๊ฐ์ง ์ ์๊ณ B๊ทธ๋ฃน๋ ๊ฐ์ง ์ ์๋ค. A๊ทธ๋ฃน์ ํ์๊ด๋ฆฌ ๋ฟ ์๋๋ผ ์์คํ ๊ด๋ฆฌ์ ๋ฉ๋ด์๋ ์ฐ๊ฒฐ๋ ์ ์๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋ค๋๋ค ๊ด๊ณ๋ฅผ ํ์ด๋ด๊ธฐ ์ํด ์ค๊ฐ์ ๋งคํ ํ ์ด๋ธ์ ๋ฌ์ 1:N, N:1๋ก ๊ด๊ณ๋ฅผ ํ ๋งคํ ํ ์ด๋ธ์ ์ฐ๊ฒฐ์ํค๋ ํ ์ด๋ค์ PK๋ง์ ๊ฐ์ง๊ณ ์๊ณ ์ด๋ฅผ ๊ฐ์ง๊ณ ๊ฐ ํ ์ด๋ธ์์ ์๋ก ์ฐธ์กฐํ ์ ์๋ค. ์์ ๊ด๊ณ์์ ํ์์ด ์์ ๊ณผ ์ฐ๊ฒฐ๋ ๋ฉ๋ด์ ๋ณด๋ฅผ ์๊ณ ์ถ์ผ๋ฉด ์๋์ฒ๋ผ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ฉด ๋๋ค. /* ์ฌ์ฉ์์ ๋งคํ๋ ๋ฉ๋ด ์กฐํ */ WITH UserGroupCodes AS ( /* ์ ์ ๊ทธ.. IT/DataBase 2023. 9. 24. [Oracle] ORDER BY ์ ์กฐ๊ฑด ์ฒ๋ฆฌ ํ์ ํ ์ด๋ธ ์ ๋ ฌ ์ ์๋์ฒ๋ผ ์กฐ๊ฑด์ผ๋ก ์์๋ฅผ ๋ถ์ฌํ ์ ์์(๋ค์ํ๊ฒ ์์ฉ ๊ฐ๋ฅ) /* ์ฌ์ฉ์ ์์ด๋๊ฐ 'l'๋ก ์์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ ์์๋ก ํ ๋ค์ ์ด๋ฆ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ */ SELECT ROW_NUMBER() OVER( ORDER BY CASE WHEN USER_ID LIKE 'l%' THEN 1 ELSE 2 END , A.USER_NAME ) AS rn , A.USER_ID , A.USER_NAME , A.USER_EMAIL FROM USER_INFO A ; IT/DataBase 2023. 9. 24. [Oracle] ๊ฐ์ฅ ๋ง์ง๋ง row ์กฐํ(feat. partition by) 1:N์ ๊ด๊ณ์์ N์ชฝ์ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ row๊ฐ ์์ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋ง์ง๋ง row๋ง ์กฐํ SELECT EMP_ID /* ์์ด๋ */ , EMP_POSITION_CD /* ์ง๊ธ์ฝ๋ */ , EMP_ROLE_CD /* ์ง์ฑ ์ฝ๋ */ FROM ( SELECT EMP_ID , EMP_POSITION_CD , EMP_ROLE_CD , ROW_NUMBER() OVER(PARTITION BY EMP_ID ORDER BY H_SNO DESC) AS RowIdx FROM EMP_INFO_HISTORY ) WHERE RowIdx = 1 IT/DataBase 2023. 8. 7. [MongoDB] ๋ชฝ๊ณ DB 6.0.x ๋ฒ์ mongo ์ฐพ์ง ๋ชปํ๋ ๊ฒฝ์ฐ... ์ค์น ํ๊ฒฝ: MongoDB 6.0.8 ๋ชฝ๊ณ DB ์ค์น ํ ํ๊ฒฝ๋ณ์๊น์ง ์ก์ ์คฌ๋๋ฐ mongo ๋ช ๋ น์ด๋ฅผ ์ฐพ์ง ๋ชปํ๋ค. ๊ตฌ๊ธ๋ง ํด๋ณด๋ mongo.exe๊ฐ ์์ด์ ธ์ mongosh๋ฅผ ๋ค์ด๋ฐ์์ ์ฌ์ฉํ๋ผ๊ณ ํ๋ค. ์ ์ฌ์ดํธ์์ sh๋ฅผ ๋ค์ด๋ก๋ ํ mongosh.exe์ dllํ์ผ์ ๋ชฝ๊ณ DB ์ค์น ๊ฒฝ๋ก/bin์ ๋ณต๋ถ ํ ๋ค์ cmd์์ "mongosh"๋ฅผ ์ ๋ ฅํ๋ฉด ์๋๋ค.(ํ๊ฒฝ๋ณ์ ์ธํ ๋์ด ์์ด์ผ ํจ) ์ฐธ์กฐ: https://stackoverflow.com/questions/73081708/mongo-exe-not-installed-in-version-6-0-0 mongo.exe not installed in Version 6.0.0 I installed MongoDB community Server from this.. IT/DataBase 2023. 7. 17. [Oracle] ํด๋น์๋ง์ผ ~ ์ต์ ๋ง์ผ๊น์ง ์กฐํ SELECT TO_CHAR(SYSDATE,'YYYYMM') || LPAD(LEVEL, 2, '0') AS dt FROM dual CONNECT BY LEVEL IT/DataBase 2023. 5. 30. [Oracle] ์ฌ๊ท ๋ณต์ฌ ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํ ์ด๋ธ์ ์๋ ๋ฐ์ดํฐ๋งํผ ๋ณต์ฌ ex) BOARD ํ ์ด๋ธ์ 1๊ฐ์ row๋ง ์์ ๊ฒฝ์ฐ ์๋ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด 1๊ฐ๊ฐ ๋ ์๊ธฐ๊ณ ๋ค์ ์คํํ๋ฉด 4๊ฐ๊ฐ ์๊ธฐ๊ณ ๋ค์ ์คํํ๋ฉด 8๊ฐ๊ฐ ์๊ธฐ๊ณ ๊ณ์ ํ ์ด๋ธ์ ์ ์ฅ๋ ๊ฐ์๋งํผ ๋ฐฐ๋ก ๋์ด๋๋ค. INSERT INTO BOARD (BOARD_NO, TITLE, CONTENT, WRITER) (SELECT BOARD_NO_SEQ.NEXTVAL, TITLE, CONTENT, WRITER FROM BOARD); IT/DataBase 2023. 5. 7. ์ด์ 1 2 3 4 ยทยทยท 6 ๋ค์