반응형

Oracle

    [Oracle] CREATE TABLE AS SELECT (예제 포함)

    [Oracle] CREATE TABLE AS SELECT (예제 포함)

    CREATE 테이블명 AS SELECT문 SELECT 문의 결과를 새로운 테이블로 생성합니다. [예제1 - FIRST_NAME이 'David'인 데이터를 BK_EMPLOYEES_DAVID 테이블을 생성하여 삽입하기] 아래와 같은 구조를 가진 테이블이 있습니다. 위 테이블에서 FIRST_NAME이 'David'인 데이터들을 구하는 SELECT 문입니다. SELECT * FROM EMPLOYEES WHERE FIRST_NAME = 'David' ; 위 SELECT문의 결과를 BK_EMPLOYEES_DAVID라는 테이블로 생성해보겠습니다. BK_EMPLOYEES_DAVID 테이블을 CREATE하고 INSERT하는 구문을 실행하는 방법도 존재하지만 CREATE AS SELECT 구문을 통해 빠르게 테이블을 생성..

    [Oracle] 오라클 프로시저 JOB으로 실행하기

    [프로시저를 JOB으로 실행하는 방법] 프로시저 P_TEST를 JOB으로 즉시 실행하는 방법입니다. OUTPUT을 통해 JOB의 번호를 출력할 수 있습니다. DECLARE V_JOBNO NUMBER; BEGIN BEGIN DBMS_JOB.SUBMIT(V_JOBNO, 'P_TEST();', SYSDATE, NULL); COMMIT; END; DBMS_OUTPUT.PUT_LINE(V_JOBNO); END;

    [Oracle] comment로 테이블, 컬럼 찾기

    테이블 comment 또는 컬럼 comment로 테이블을 조회하는 방법을 알아보겠습니다. 테이블을 찾을 때 정말 유용하답니다 ~ :) [테이블 comment로 테이블 찾기] - 전체 테이블 중에서 comment가 '%회원%'인 테이블을 조회합니다. SELECT TABLE_NAME , TABLE_TYPE , COMMENTS FROM USER_TAB_COMMENTS WHERE COMMENTS LIKE '%회원%'; [컬럼 comment로 테이블 찾기] - 전체 테이블의 컬럼 중에서 comment가 '%이름%'인 테이블을 조회합니다. SELECT TABLE_NAME , COLUMN_NAME , COMMENTS FROM USER_COL_COMMENTS WHERE COMMENTS LIKE '%이름%';

    [Oracle] 오라클 날짜, 한글 요일 구하기 (Feat. TO_CHAR)

    [Oracle] 오라클 날짜, 한글 요일 구하기 (Feat. TO_CHAR)

    지난 번에 TO_CHAR 함수를 사용하여 천단위 구분기호를 표시하는 방법을 알아봤습니다. [Oracle] 천단위 구분기호 출력하는 방법 오라클에서 숫자데이터를 천단위마다 ','로 구분하여 조회하는 방법을 알아보겠습니다. 방법은 크게 2가지로 나눌 수 있습니다. 방법 1. TO_CHAR 사용하기 참고. TO_CHAR 함수란? 👉 날짜, 숫자 등의 soo-vely-dev.tistory.com 이번에는 TO_CHAR를 활용하여 날짜와 한글 요일(ex) 월요일)을 구하는 방법을 알아보겠습니다 ! [ TO_CHAR ] 참고. TO_CHAR 함수란? 👉 날짜, 숫자 등의 값을 문자열로 변환하는 함수 사용법 TO_CHAR(날짜, 포맷) 요일 구하기 1. 'DAY' 월요일, 화요일, 수요일, 목요일, 금요일, 토요일,..

    [Oracle] 오라클 TRUNC 함수 사용법 (날짜, 시간, 소수점 절사하기)

    [Oracle] 오라클 TRUNC 함수 사용법 (날짜, 시간, 소수점 절사하기)

    [ TRUNC 함수 ] 오라클의 기본적인 함수인 TRUNC함수에 대해 알아보겠습니다. 단순 절사 기능 외에 시간, 날짜, 소수점 절사 등 다양한 옵션으로 활용이 가능합니다. - 사용법 TRUNC("값", "옵션"); TRUNC(날짜, 옵션) 옵션이 없는 경우 기본적으로 시간을 절사합니다. 옵션을 입력한 경우 입력한 부분 이하 부분을 "00"으로 초기화 합니다. - 시간 절사 WITH T01 AS ( SELECT SYSDATE AS TODAY FROM DUAL ) SELECT TODAY AS "현재 날짜" , TRUNC(TODAY) AS "시간 절사" , TRUNC(TODAY, 'DD') AS "시간 절사" , TRUNC(TODAY, 'HH') AS "분, 초 절사" , TRUNC(TODAY, 'MI') ..

    [Oracle] 해당 월의 말일자만 조회하기, 가장 최근 일자만 조회하기 (Feat. LAST_DAY 함수)

    [Oracle] 해당 월의 말일자만 조회하기, 가장 최근 일자만 조회하기 (Feat. LAST_DAY 함수)

    [ 상황 ] 매일 들어오는 데이터를 월별로 말일자만 집계하여 보려고 합니다. 이때, 해당월이 말일자에 도래하지 않아도 가장 최근 일자로 집계하여 보고자 합니다. ex) 오늘이 2022-06-22인 경우, 2022-06-31의 데이터가 없으니 2022-06-22 데이터로 집계 [ 해결방법 ] 1) TABLE에 들어있는 날짜 데이터 파악하기 - 아래와 같이 날짜로 GROUP BY하여 조회하면 일자별로 데이터가 존재하는 것을 확인할 수 있습니다. SELECT PROC_DATE FROM TABLE GROUP BY PROC_DATE ORDER BY 1 DESC 2) LAST_DAY 함수 사용하기 LAST_DAY 함수란? - 오라클에서 해당월의 마지막 날짜를 가져오는 함수 - 사용법 LAST_DAY(DATE 값) ..

    [Oracle] 쿼리 속도 향상 시키기 (Feat. 좌변을 가공하지 않기)

    [Oracle] 쿼리 속도 향상 시키기 (Feat. 좌변을 가공하지 않기)

    스크립트를 작성할 때, '좌변을 가공하지 말라'는 이야기를 들었는데 왜 그럴까요? 아래와 같은 경우에 DB 인덱스를 사용할 수 없다고 합니다. 인덱스 컬럼이 비교되기 전에 변형이 일어나는 경우 부정형으로 조건을 기술(not)한 경우 인덱스 컬럼이 NULL로 비교되는 경우 옵티마이저가 필요에 따라 상기 적용원칙을 준수했음에도 불구하고 특정 인덱스의 사용을 취사선택함으로써 사용되지 않는 경우 좌변을 가공하게 되면 인덱스를 사용할 수 없으므로 DB 컬럼을 가공하지 않고, 상수 부분을 가공해서 사용하도록 작성하는 것이 바람직합니다. [ 예시 ] 1) 올바르지 않은 예시 (좌변을 가공) 아래와 같이 좌변의 PROC_DATE를 가공하여 사용하게 되면 200 row(s) fetched - 507ms (+64ms) -..

반응형