📃 DATABASE
[PL/SQL] PL/SQL 기초
PL/SQL 기초 블록PL/SQL 소스 프로그램의 기본단위. 선언부, 실행부, 예외처리부로 구성된다.- 이름없는 블록 : 익명 블록- 이름있는 블록 : 함수, 프로시저, 패키지 등 구조12345678이름부IS(AS) 선언부BEGIN 실행부EXCEPTION 예외처리부END;cs 이름부블록의 명칭이 오는데, 생략하게되면 익명 블록이 된다.선언부DECLARE로 시작되며, 실행부와 예외처리부에서 사용할 각종 변수, 상수, 커서 등을 선언한다. 중요한 점은 변수 선언이나 실행부와 예외처리부에서 사용하는 각종 문장의 끝에 반드시 세미콜론이 붙어야한다는 것이다. 사용할 변수나 상수가 없다면 생략할 수 있다.실행부실제 로직을 처리하는 부분. 각종 문장(일반 쿼리문, 조건문, 반복문 등)이 올 수 있고, 비즈니스 로직을..
[SQL] 다중 테이블 INSERT
다중 테이블 INSERT여러개의 테이블에 멀티 로우를 삽입할 때 사용한다. 구문12345678INSERT ALL | FIRSTWHEN 조건1 THEN INTO [스키마].테이블명(컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)WHEN 조건2 THEN INTO [스키마].테이블명(컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...) ...ELSE INTO [스키마].테이블명(컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)SELECT 문;Colored by Color Scriptercs ALL디폴트 값. 이후 WHEN 조건절을 명시했을 때, 각 조건이 맞으면 INSERT를 모두 수행하라는 의미FIRST이후 WHEN 절 조건식에 따른 INSERT 문을 수행할 때, 서..
[SQL] WINDOW 함수
WINDOW 함수행과 행간의 관계를 쉽게 정의하기 위해 만든 함수AVG, CORR, COUNT, FIRST_VALUE, LAST_VALUE, MAX, MIN, NTH_VALUE, STDDEV, SUM, VARIANCE 등 함수와 사용가능 FIRST_VALUE(EXPR)파티션별 윈도우에서 가장 먼저 나온 값을 구한다.123456789SELECT DEPARTMENT_ID, EMP_NAME, HIRE_DATE, SALARY , FIRST_VALUE(SALARY) OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS ALL_SALARY , FIRST_VALUE(SA..
[SQL] 분석 함수
분석 함수테이블에 있는 로우에 대해 특정 그룹별로 집계값을 산출할 때 사용한다.GROUP BY 절이 그룹별로 로우 수가 줄어들게 하는데 반해, 집계 함수는 로우 손실 없이 집계값을 산출 할 수 있다.분석 함수에서 사용하는 로우별 그룹을 WINDOW 라고 하는데, 집계값 계산을 위한 로우의 범위를 결정하는 역할을 한다. 형태123분석함수(매개변수) OVER (PARTITION BY EXPR1, EXPR2, ... ORDER BY EXPR3, EXPR4, ... WINDOW ...)cs 종류AVG / SUM / MAX / MIN / COUNT / CUME_DIST / DENSE_RANK / PERCENT_RANK / FIRST / LAST / LAG / LEAD / ROW_NUMBER 등 절 설명PARTIT..
[SQL] WITH절과 순환 서브쿼리
WITH 절별칭으로 사용한 SELECT문의 FROM절에 다른 SELECT구문의 별칭 참조가 가능하다.12345WITH 별칭1 AS (서브쿼리) ,별칭2 AS(서브쿼리)...SELECTFROM 별칭1, 별칭2...cs 123456789101112131415161718WITH B2 AS (SELECT PERIOD , REGION , SUM(LOAN_JAN_AMT) JAN_AMT FROM KOR_LOAN_STATUS GROUP BY PERIOD, REGION) , C AS (SELECT B2.PERIOD , MAX(B2.JAN_AMT) MAX_JAN_AMT FROM B2 , ( SELECT MAX(PERIOD) MAX_MONTH FROM KOR_LOAN_STATUS GROUP BY SUBSTR(PERIOD, ..
[SQL] 계층형 쿼리
계층형 쿼리 12345SELECT EXPR1, EXPR2FROM 테이블WHERE 조건START WITH [최상위 조건]CONNECT BY [NOCYCLE] [PRIOR 계층형 구조 조건];cs START WITH 조건계층형 구조에서 최상위 계층의 로우를 식별하는 조건을 명시한다.CONNECT BY 조건계층형 구조가 어떤 식으로 연결되는지를 기술. PRIOR는 계층형 쿼리에서만 사용할 수 있는 연산 계층형 쿼리의 내부적 처리절차1. 조인2. START WITH절의 최상위 계층 로우를 선택3. CONNECT BY절의 구문에 따라 계층형 관계를 파악, 자식 로우 선택.4. 조인을 제외한 WHERE 조건에 해당하지 않는 로우를 걸러냄. 예제123456SELECT DEPARTMENT_ID , LPAD(' ', 3..