본문 바로가기

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..
SQL 표준 함수 SQL 표준 함수 1. 집계 함수(AGGREGATE FUNCTION)GROUP AGGREGATE FUNCTION이라고도 부르며, GROUP FUNCTION의 한 부분으로 분류할 수 있음COUNT, SUM, AVG, MAX, MIN 등이 있다.2. 그룹 함수집계 함수를 제외한 나머지 함수ROLLUP, CUBE, GROUPING SETS 이 있다.ROLLUP : 소그룹 간의 소계 계산CUBE : GROUP BY된 항목들 간에 다차원적 집계를 생성GROUPING BY: 원하는 부분의 소계만 손쉽게 추출3. 윈도우 함수분석 함수(ANALYTIC FUNCTION) 또는 순위 함수(RANK FUNCTION)으로 부르기도 한다.
서브쿼리 subquery메인 쿼리 내부에 사용되는 SELECT 문을 말한다.인라인 뷰, 스칼라 서브쿼리, 서브쿼리로 나눌 수 있다.인라인 뷰 : FROM 절에서 뷰처럼 사용되는 SELECT 문이다. FROM절에 임시 테이블 공간을 생성하며, 뷰와 비슷한 형태다.스칼라 서브쿼리 : SELECT 절에서 함수처럼 사용되는 SELECT 문이다. 반환값은 한개여야 한다(함수이므로)서브쿼리 : WHERE 절에서 조건으로 사용되는 SELECT 문이다.[tip] 서브 쿼리를 이용할 때는 반드시 괄호()를 쓴다! 1. 인라인 뷰FROM 절에 테이블이 바로 오는 것이 아니라, SELECT 절이 오는 방식 SELECT 로 추출된 뷰가 FROM절에 오는 것으로 볼 수 있다.MSSQL에서는 인라인 뷰를 사용할 때 인라인 뷰에 대한 앨리..