SQL 6

[SQL] 인덱스 스캔 방식 - Index Range, Index Full, Index Unique, Index Skip

인덱스 탐색은 수평적 탐색과 수직적 탐색으로 나눠진다. 수평적 탐색은 인덱스 리프 블록에 저장된 레코드끼리 연결된 순서에 따라 좌->우 또는 우->좌로 탐색하는 과정이다. 수직적 탐색은 수평적 탐색을 위한 시작 지점을 찾는 과정으로, 루트에서 리프 블록까지 아래쪽으로 진행된다. 1. Index Range Scan Index Range Scan은 인덱스 루트 블록에서 리프 블록까지 수직적으로 탐색한 후에 리프 블록을 필요한 범위만 스캔하는 방식이다. B*Tree 인덱스의 가장 일반적이고 정상적 형태의 액세스 방식이다. set autotrace traceonly exp select * from emp where deptno = 20; 인덱스가 EMP_X01(deptno)인 emp 테이블의 실행계획은 다음과 ..

[SQL] 그룹 함수 - ROLLUP, GROUPING, CUBE, GROUPING SETS

그룹 함수란 소계, 중계, 합계, 총합계 등 여러 레벨의 통계를 구할 수 있는 함수이다. 1. ROLLUP 지정된 그룹 컬럼의 Subtotal을 생성하기 위해 사용되며, 일반적으로 GROUP BY절에 사용된다. GROUP BY ROLLUP(칼럼1, 칼럼2) 부서이름과 업무명을 기준으로 집계 SELECT B.DNAME, A.JOB, COUNT(*) AS EMP_COUNT FROM EMP A, DEPT B WHERE B.DEPTNO = A.DEPTNO GROUP BY ROLLUP (B.DNAME, A.JOB); DNAME JOB EMP_COUNT SALES CLERK 2 SALES MANAGER 1 SALES 3 RESEARCH CLERK 2 RESEARCH MANAGER 1 RESEARCH 3 ACCOUN..

[SQL] SELECT 문의 실행 순서

SELECT문에는 사용자가 원하는 데이터를 출력하기 위해 다양한 방법으로 조건 설정이 가능하다. SELECT 칼럼명 FROM 테이블명 WHERE 조건식 GROUP BY 칼럼 | 표현식 HAVING 그룹 조건식 ORDER BY 칼럼 | 표현식 [ASC | DESC] 이렇게 SELECT 문장은 개의 절로 구성되며, 실행 순서는 다음과 같다. FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY FROM : 테이블을 참조한다. WHERE : 조건 부여를 통해 발췌 대상 데이터가 아닌 것은 제거한다. GROUP BY : 행들을 그룹화한다. HAVING : 그룹핑된 값의 조건에 맞는 것만 출력한다. SELECT : 데이터를 출력한다. ORDER BY : 데이터를 정렬한다...

[SQL] ORDER BY 절

ORDER BY 절은 SQL 문장으로 조회한 데이터들을 특정 칼럼을 기준으로 정렬하는데 사용된다. 칼럼명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용이 가능하다. SELECT 칼럼명 FROM 테이블명 WHERE 조건식 GROUP BY 칼럼 | 표현식 HAVING 그룹 조건식 ORDER BY 칼럼 | 표현식 [ASC | DESC] ASC(DEFAULT) : 오름차순으로 정렬한다. DESC : 내림차순으로 정렬한다. 평균 연봉이 3000만원 이상인 부서의 부서이름, 사원이름, 연봉을 출력하고 부서번호를 내림차순으로 출력한다. SELECT DEPTNO AS 부서번호, EMPNM AS 사원이름, SAL AS 연봉 FROM EMP GROUP BY DEPNO HAVING A..

[SQL] 집계함수, GROUP BY , HAVING 절

1. 집계함수 I) 여러 행들의 그룹이 모여 그룹 당 단 하나의 결과를 함수 II) GROUP BY 절은 행들을 소그룹 III) SELECT 절, HAVING 절, ORDER BY 절에 사용 가능 집계함수도 SELECT절에서 사용하는 것 처럼 DISTINCT, ALL이 사용 가능하다. 집계함수는 NULL 값을 가진 행을 제외하고 수행한다. 2. 집계함수의 종류 집계함수 설명 COUNT(*) NULL 값을 포함한 행의 수 출력 COUNT(표현식) 표현식의 값이 NULL 값인 것을 제외한 행 수 출력 SUM(표현식) 표현식의 값이 NULL 값인 것을 제외한 합계 출력 AVG(표현식) 표현식의 값이 NULL 값인 것을 제외한 평균 출력 MAX(표현식) 표현식의 값이 NULL 값인 것을 제외한 최대값 출력 MI..

카테고리 없음 2023.06.28

[SQL] 관계형 대수 - 일반 집합 연산자와 순수 관계 연산자

[일반 집합 연산자] 1. UNION 연산 - 수학적 합집합 UNION 연산은 공통 교집합의 중복을 없애기 위한 사전 작입으로, 정렬 작업이 발생한다. SQL 기능 - UNION 2. UNION ALL - UNION+중복허용 UNION 연산에서 교집합의 중복을 허용한다. UNION과 UNION ALL의 출력 결과가 같다면, 응답 속도 향상이나 자원 효율 측면에서 데이터 정렬 작업이 발생하지 않는 UNION ALL 사용을 권장한다. 3. INTERSECTION 연산 - 수학의 교집합 SQL 기능 - INTERSECT 4. DIRRERENCE 연산 - 수학의 차집합 SQL 기능 - EXCEPT(오라클은 MINUS) 5. PRODUCT(CARTESIAN PRODUCT) 연산 - 수학의 곱집합 JOIN 조건이 ..