본문 바로가기

공부방/DataBase17

[Oracle] 콤마로 분리된 문자열을 여러 행으로 변환(REGEXP_SUBSTR) 일하며 쿼리를 만드는데 컬럼값의 데이터를 콤마(,)를 기준으로 짤라서 각각 행으로 조회하도록 하는 쿼리가 필요하게 됨. 어떻게 해야하나 뒤적뒤적거려보니 답이 나오긴 하더라 나는 콤마(,)를 기준으로 짜르지만 다른사람은 다른 특수문자를 기준으로 짜를수도 있으니까 정규식을 이용해서 콤마(,)를 기준으로 짤라서 조회를 하게 됨. 예제 SELECT REGEXP_SUBSTR(VALUE, '[^,]+', 1, LEVEL) AS GOOD FROM ( SELECT '1,2,3,4' AS VALUE FROM DUAL ) CONNECT BY LEVEL 2024. 3. 29.
[Oracle] 가로(행) 데이터를 세로(열)로 출력 1. 함수 UNPIVOT() 2. 문법 SELECT * FROM [테이블] UNPIVOT ([임의컬럼명1] FOR [임의컬럼명2] IN [세로로 출력할 컬럼 ] ); 임의컬럼명1 세로로 조할 데이터의 컬럼명을 지정 임의컬럼명2 세로로 조회하기로 한 컬럼들의 컬럼명 세로로 출력할 컬럼 가로(행)로 조회되던 데이터 중에 세로(열)로 출력하려고 하는 컬럼들 3. 예시 임의로 데이터를 생성하여 기본적인 조회결과( 각각의 컬럼이 가로로 출력됨) SELECT 'A' AS NAME, 11 AS "1", 12 AS "2", 13 AS "3", 14 AS "4", 15 AS "5", 16 AS "6" FROM DUAL UNION SELECT 'B' AS NAME, 11 AS "1", 21 AS "2", 31 AS "3".. 2023. 12. 14.
[Oracle] MERGE기능 1. MERGE란? Oracle 데이터베이스에서 사용되는 SQL 문의 한 종류이며, 두 테이블 간의 조합, 삽입, 업데이트, 삭제 등을 단일 문으로 처리할 수 있도록 해준다. 이는 보통 "병합" 또는 "업서트(UPSERT)"라고도 불리며 MERGE 문은 대상 테이블(또는 뷰)과 소스 테이블 간의 조인 조건을 기반으로 대상 테이블을 조작한다. 기본적인 MERGE 문의 구조 MERGE INTO target_table USING source_table ON (condition) WHEN MATCHED THEN UPDATE SET column1 = value1, column2 = value2, ... WHEN NOT MATCHED THEN INSERT (column1, column2, ...) VALUES (v.. 2023. 11. 19.
[Oracle] 월별 마지막 날짜 조회 LAST_DAY Oracle에서 월별 마지막 일자를 구하기 위한 함수. 월별 마지막일자가 다르기 때문에 매번 마지막 일자를 계산하다가 찾게 된 함수 사용법 SELECT LAST_DAY(TO_DATE(SYSDATE, 'YYYY/MM/DD')) FROM DUAL; SYSDATE에서 일자(DD)에 관계없이 무조건 해당월의 마지막일자로 변경된다 (2023/08/06 → 2023/08/31) 한해의 월별(1~12월) 시작일자 및 종료일자 구하기 SELECT D.START_DAY, LAST_DAY(D.START_DAY) AS END_DAY FROM (SELECT ADD_MONTHS(TO_DATE('2023/01/01', 'YYYY/MM/DD'), LEVEL - 1) AS START_DAY FROM DUAL CONN.. 2023. 8. 6.
[Oracle] 프로시저 내용 조회 프로젝트에 투입되어 일을 하다보면 혼자 일하는게 아니라서 내가 만들지 않은 부분에 대해 조회를 해봐야하는 경우가 있는데 정리되어 있는 문서가 없을 경우 찾아보기가 난해할때가 있다. 그럴때 유용한 기능 중 하나 ▶ 프로시저, 함수 등의 내용 검색 SELECT A.OBJECT_ID , A.OBJECT_NAME , A.OBJECT_TYPE , A.TEXT FROM USER_OBJECTS A INNER JOIN USER_SOURCE B ON A.OBJECT_NAME = B.NAME WHERE A.OBJECT_TYPE IN ("찾고자하는 프로시저 등") /* PROCEDURE, FUNCTION, PACKAGE BODY, PACKAGE 등 */ AND A.TEXT LIKE '%찾으려하는 문구(단어)%' /* 찾으려.. 2023. 2. 24.
[mariaDB] mariaDB 란? Maria DB란? 오픈소스(무료) RDBMS(관계형 데이터베이스) MySQL과의 관계 MySQL은 오라클에 인수된 이후 최근에 유료화가 되었고 MySQL의 창업자중 한명인 몬티 와이드니어스와 일부 개발자는 오라클의 정책이 추구하는바와 맞지 않는 등의 이유를 통해 오라클을 나와 MariaDB사를 설립하여 MariaDB를 개발. 즉 MySQL을 개발했던 핵심개발자들이 오라클사를 나와 만든것이 MariaDB "Maria"라는 이름 또한 MySQL의 책임 개발자의 두번째 공주님(딸)의 이름에서 가져온 것이라고 함 Miria DB는 MySQL의 소스코드를 그대로 가져와 개발한 것이므로 거의 모든 기능이 동일. 즉 서로간의 호환성이 보장 되는 것입니다. 따로 설정을 변경하지 않는 경우 서비스 포트마저 3306으로.. 2022. 12. 3.