본문 바로가기

dev/DB

DECODE, CASE WHEN DECODE, CASE WHEN 둘 다 조건에 해당하는 값을 얻고자 할 때 사용(switch case 문 같은 기능) DECODEDECODE(expr, cond1, val1, cond2, val2 ..., default_val)SELECT DEPTNO, DECODE(DEPTNO, 10, 'ACCOUNTING', 20, 'RESEARCH', 30, 'SALES', 'NO_DEPT') DEPTNAMEFROM DEPT; CASE ~ WHEN ~ ENDCASE expr WHEN cond1 THEN val1WHEN cond2 THEN val2ELSE default_valENDSELECT DEPTNO,CASE DEPTNO WHEN 10 THEN 'ACCOUNTING'WHEN 20 THEN 'RESEARCH'WHEN..
Row chaining, Row migration Row chaining- Row에 저장된 데이터의 크기가 너무 커서, 하나의 블록에 다 담지 못하고 두 개 이상의 데이터 블록에 저장되는 것 Row migration- 수정한 데이터를 원래 블록에 저장하지 못하고 다른 블록에 저장하는 것 [참조]Row Chaining & Row Migration : https://tocsg.tistory.com/51
SQL 실행 순서 정리 FROM (JOIN, ON) WHERE GROUP BY ----------- 여기서부터 집계함수 사용 가능 (WHERE 절 집계함수 사용 불가!!) HAVING SELECT ORDER BY
DB 함수 모음 LPAD, RPAD (left/right padding)- LPAD(삽입할문자, padding 길이, [패딩에 입력할 문자])ex) LPAD('A', 3) : __A (_는 공백)ex2) LPAD('A',3,'B') : BBA
엔터티, 속성, 식별자의 분류 엔터티 분류 1. 유/무형에 따른 분류- 유형 엔티티 : 업무에서 도출되며 지속적으로 사용되는 엔터티 ex) 고객- 개념 엔티티 : 물리적 형태가 없는 개념적 엔터티 ex) 보험상품- 사건 엔티티 : 비즈니스 프로세스에서 생성되는 엔티티 ex) 계약체결 2. 발생시점에 따른 분류- 기본 엔티티(키 엔티티) : 독립적으로 생성되는 엔티티 ex) 고객- 중심 엔티티 : 기본 엔티티에서 발생하며 행위 엔티티를 생성 ex) 주문- 행위 엔티티 : 두개 이상의 엔티티 사이의 상호작용에서 발생 ex) 주문 이력 속성 분류 1. 분해여부에 따른 분류- 단일속성 : 하나의 의미로 구성된 속성- 복합 속성 : 여러 개의 의미가 합쳐져 하나의 속성값을 이룬다 ex) 주소- 다중값 속성 : 여러 값을 가지는 속성을 말한다...
SQL 최적화(옵티마이저, 인덱스) SQL의 실행 절차Parsing ▶ Execution plan 수립 ▶ SQL 실행 ▶ fetch옵티마이저의 역할- SQL에 대한 실행 계획(Execution plan)을 수립- PLAN_TABLE에 실행 계획을 저장한다. 옵티마이저 분류1. 규칙 기반 옵티마이저- 설정된 규칙에 따라 실행- 옵티마이저 힌트를 /*+RULE*/ 로 주면 규칙 기반 옵티마이저를 실행한다. 2. 비용 기반 옵티마이저- 일반적으로 사용되는 옵티마이저- 통계정보를 활용해 최적의 실행계획을 수립(총 비용이 적은 쪽으로 옵티마이징) 옵티마이저 조인1. Nested loop 조인- 하나의 테이블(외부 테이블)에서 데이터를 찾고 -> 다음 테이블(내부 테이블)을 조인하는 방식- 크기가 작은 것이 외부 테이블로 사용된다. (RANDOM ..
window 함수 WINDOW FUNCTION행과 행 사이의 관계를 쉽게 정의할 수 있다.다른 함수와는 달리 중첩하여 사용할 수 없다.(단, 서브쿼리에는 사용 가능)OVER 문이 필수로 사용된다. (쓸거 없으면 OVER() 이라도 써야한다.)SELECT 윈도우함수명(매개변수)OVER ([PARTITION BY] [ORDER BY] [WINDOWING])FROM 테이블명 ex)SELECT JOB, ENAME, SAL,RANK() OVER (PARTITION BY JOB ORDER BY SAL DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) JOB_RANKFROM EMP;- PARTITION BY 절 : 전체 집합을 특정 칼럼을 기준으로 소그룹으로 나눈다.- W..
그룹 함수 ROLLUP, GROUPING SETS, CUBE 1. ROLLUPGROUP BY된 칼럼에 대해 소계를 만들어 준다. (컬럼별 집계 + 전체 집계, 즉 컬럼 N개면 N+1개 결과) 칼럼 순서에 따라 결과가 다르게 나온다(순서 중요)하나의 칼럼을 기준으로 GROUP BY 된 경우 : 해당 컬럼을 기준으로 집계 + 전체 집계두 개 이상의 칼럼을 기준으로 GROUP BY된 경우 : 각 컬럼을 기준으로 집계 + 전체 집계예시1) 하나의 칼럼을 기준으로 GROUP BY된 경우SELECT DEPTNO, JOB, SUM(SAL)FROM EMPGROUP BY ROLLUP(DEPTNO); 예시2) 두개의 칼럼을 기준으로 GROUP BY된 경우SELECT DEPTNO, JOB, SUM(SAL)FROM EMPGROUP BY..