본문 바로가기

전체 글122

SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제3장 SQL 최적화 기본 원리 / 제1절 옵티마이저와 실행계획 제1절 옵티마이저와 실행계획 1. 옵티마이저 다양한 실행방법들 중에서 최적의 실행방법을 결정하는 것이 옵티마이저의 역할 규칙기반 옵티마이저 : 규칙(우선순위)를 가지고 실행계획을 생성한다. 규칙기반 옵티마이저는 인덱스를 이용한 액세스 방식이 전체 테이블 액세스 방식보다 우선 순위가 높다. 비용기반 옵티마이저 : SQL문을 처리하는데 필요한 비용이 가장 적은 실행계획을 선택하는 방식 2. 실행계획 SQL에서 요구한 사항을 처리하기위한 절차와 방법 실행계획을 구성하는 요소에는 조인순서, 조인기법, 액세스기법, 최적화정보, 연산 등 동일한 SQL에 대해 결과를 낼 수 있는 다양한 처리 방법(실행계획)이 존재할 수 있지만 각 처리 방법마다 실행 시간(성능)은 서로 다를 수 있다. 옵티마이저는 다양한 처리 방법들.. 2021. 5. 28.
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제8절 절차형 SQL 제8절 절차형 SQL 1. 절차형 SQL 개요 일반적인 개발 언어처럼 SQL에도 절차 지향 프로그램이 가능하도록 절차형 SQL을 제공하는 DBMS 벤더들이 있다. PL/SQL, SQL/PL, T-SQL 2. PL/SQL 개요 (1) 특징 Block구조로 되어 있어 각 기능별로 모듈화가 가능하다. 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환한다. IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다. DBMS 정의 에러나 사용자 정의 에러를 사용할 수 있다. Oracle의 PL/SQL은 Block 구조로 되어있고 Block 내에는 DML 문장과 QUERY 문장, 그리고 절차형 언어(IF, LOOP) 등을 사용할 수 있으며, 절차적 프로그래밍을 가능하게 하는 트랜잭션 언어.. 2021. 5. 27.
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제7절 DCL 제7절 DCL 1. DCL 개요 유저를 생성하고 권한을 제어할 수 있는 명령어 / DATA CONTROL LANGUAGE 2. 유저와 권한 유저 생성과 시스템 권한 부여 OBJECT에 대한 권한 부여 3. Role을 이용한 권한 부여 대부분 DB에서는 유저와 권한 사이에서 중개 역할을 하는 ROLE을 제공 한다. DB 관리자는 ROLE을 생성하고 각 ROLE에 권한을 부여한 후 해당 ROLE들을 다른 ROLE이나 유저에게 부여할 수 있다. 필요한 권한들을 빠르고 정확하게 부여할 수 있다. 2021. 5. 27.
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제6절 윈도우 함수 제6절 윈도우 함수 1. WINDOW FUNCTION 개요 그룹 내 순위, 그룹 내 집계, 그룹 내 행 순서, 그룹내 비율 관련 함수로 구성 OVER 문구가 필수로 포함된다. SELECT WINDOW_FUNCTION (ARGUMENTS) OVER ( [PARTITION BY 칼럼] [ORDER BY 절] [WINDOWING 절] ) FROM ; 2. 그룹 내 순위 함수 (1) RANK 함수 ORDER BY / PARTITION을 포함한 QUERY 문에서 특정 함목에 대한 순위를 구하는 함수 동일한 값에 대해 동일한 순위를 부여한다. SELECT 칼럼명, RANK() OVER (조건) ALIAS명 FROM 테이블명 (2) DENSE_RANK 함수 RANK 함수와 흡사하나, 동일한 순위를 하나의 건수로 취급.. 2021. 5. 27.
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제5절 그룹 함수 제5절 그룹 함수 1. 데이터분석 개요 AGGEREGATE FUNCTION GROUP FUNCTION의 한 부분으로 분류 할 수 있다. COUNT, SUM, AVG 등과 같은 집계 함수들이 포함되어 있다. GROUP FUNCTION 집계 함수를 제외하고 ROLLUP, CUBE, GROUPING SET 함수가 있다. WINDOW FINCTION 분석함수, 순위 함수라고도 한다. 2. ROLLUP 함수 ROLLUP에 지정된 Grouping Columns의 List는 Subtotal을 생성하기 위해 사용되어지며, Grouping Columns의 수를 N이라고 했을 때 N+1 Level의 Subtotal이 생성된다. 계층 구조이므로 인수 순서가 바뀌면 수행 결과도 바뀜. 가능한 Subtotal만 생성 SELEC.. 2021. 5. 27.
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제4절 서브쿼리 제4절 서브쿼리 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 서브 쿼리는 메인 쿼리의 칼럼을 모두 사용할 수 있지만, 메인 쿼리는 서브 쿼리의 칼럼을 사용할 수 없다. 서브쿼리를 괄호로 감싸서 사용한다. 단일행 또는 복수행 비교연산자와 함께 사용가능하다. ORDER BY를 사용하지 못한다 SELECT절, FROM절, WHERE절, HAVING절, ORDER BY 절, INSERT의 VALUES절, UPDATE의 SET절에 사용가능 1. 단일행 서브 쿼리 서브쿼리가 단일 행 비교 연산자(=, , =, )와 함께 사용할 때는 서브쿼리의 결과의 건수가 반드시 1개 이하여야 한다. 2. 다중행 서브 쿼리 서브쿼리 결과가 2건 이상 반활 될 수 있다면 반드시 다중 행 비교 연산자와 함께 사용해야 한다. .. 2021. 5. 27.
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제3절 계층형 질의와 셀프 조인 제3절 계층형 질의와 셀프 조인 1. 계층형 질의 계층형 데이터가 존재하는 경우 데이터 조회를 위해 게층형 질의를 사용한다. 계층형 데이터 : 동일 테이블에 계층적으로 상위와 하위데이터가 포함된 데이터 Oracle 계층형 질의 SQL Server 계층형 질의 2. 셀프 조인 동일 테이블 사이의 조인, 반드시 테이블 별칭을 사용해야 한다. SELECT ALIAS명1.칼럼명, ALIAS명2.칼럼명 ... FROM 테이블1 ALIAS명1, 테이블2 ALIAS명2 WHERE ALIAS명1.칼럼명2, ALIAS명2.칼럼명1; 2021. 5. 27.
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제2절 집합 연산자 제2절 집합 연산자 두 개의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 2개 이상의 질의 결과를 하나의 결과로 만들어 준다. SELECT절의 칼럼 수가 동일하고 SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환가능 해야 사용 가능하다. SELECT 칼럼명1, 칼럼명2, ... FROM 테이블명1 [WHERE 조건식] [[GROUP BY (Column) 칼럼 이나 표현식 [HAVING 그룹조건식]] 집합 연산자 SELECT 칼럼명1, 칼럼명2, ... FROM 테이블명2 [WHERE 조건식] [[GROUP BY (Column) 칼럼 이나 표현식 [HAVING 그룹조건식]] [ORDER BY 1, 2 [ASC 또는 DESC ]; 2021. 5. 27.
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제1절 표준 조인 제1절 표준 조인 1. STANDARD SQL 개요 (1) 일반 집합 연산자 UNION (합집합) -> UNION, UNION ALL INTERSECTION (교집합) -> INTERSECT DIFFERENCE (차집합) -> EXCEPT(Oracle은 MINUS) PRODUCT (곱집합) -> CROSS JOIN (2) 순수 관계 연산자 SELECT -> WHERE (SELECT 연산과 SELECT 절은 다르다) PROJECT -> SELECT (NATURAL) JOIN -> 다양한 JOIN DIVIDE -> 사용 X 2. FROM 절 JOIN 형태 [ANSI/ISO SQL FORM 절 JOIN의 형태] INNER JOIN NATURAL JOIN USING 조건절 ON 조건절 CROSS JOIN OUT.. 2021. 5. 27.