일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 데이터베이스
- 알고리즘
- 프로그래머스 조건에 맞는 개발자 찾기
- sql
- 백준 1756
- 백준 2852
- 깃허브
- 정규화
- react
- 백준 크리문자열
- github
- SAA-C02
- 리스트 컴프리헨션
- join
- 백준 11059
- AWS
- 백준 24499 파이썬
- SQLD
- 파이썬
- ROWNUM
- Today
- Total
목록SQLD (31)
-
목차 1. NL Join 2. Sort Merge Join 3. Hash Join 1. NL JOIN (Nested Loop Join) NL JOIN은 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행한다. 반복문은 외부에 있는 테이블을 선행 테이블 또는 외부 테이블(Outer Table)이라고 하고, 반복문의 내부에 있는 테이블을 후행 테이블 또는 내부 테이블(Inner Table)이라고 한다. FOR 선행 테이블 읽음 -> 외부 테이블(Outer Table) FOR 후행 테이블 읽음 -> 내부 테이블(Inner Table) (선행 테이블과 후행 테이블 조인) 먼저 선행 테이블의 조건을 만족하는 행을 추출하여 후행 테이블을 읽으면서 조인을 수행한다. 이 작업은 선행 테이블의 조건을 만..
목차 1. 인덱스 특징과 종류 2. 전체 테이블 스캔과 인덱스 스캔 1. 인덱스 특징과 종류 인덱스의 기본적인 목적은 검색 성능의 최적화이다. 하지만 INSERT, UPDATE, DELETE 등과 같은 DML 작업은 테이블과 인덱스를 함께 변경해야 하기 때문에 오히려 느려질 수 있다. 1. 트리 기반 인덱스 DBMS에서 가장 일반적인 인덱스는 B 트리 인덱스이다. 위 그림과 같이 B-트리 인덱스는 브랜치 블록과 리프 블록으로 구성된다. 브랜치 블록 중에서 가장 상위에 있는 블록을 루트 블록이라고 한다. 브랜치 블록은 분기를 목적으로 하는 블록이다. 브랜치 블록은 다음 단계의 블록을 가리키는 포인터를 가지고 있다. 리프 블록은 인덱스를 구성하는 칼럼의 데이터와, 해당 데이터를 가지고 있는 행의 위치를 가리..
목차 1. 옵티마이저 2. 실행 계획 3. SQL 처리 흐름도 1. 옵티마이저 옵티마이저는 사용자가 질의한 SQL 문에 대해 최적의 실행 방법을 결정하는 역할을 수행한다. 이러한 최적의 실행 방법을 실행 계획(Execution Plan) 이라고 한다. 관계형 데이터베이스는 궁극적으로 SQL문을 통해서만 데이터를 처리할 수 있다. 따라서 사용자의 요구사항을 만족하는 결과를 추출할 수 있는 다양한 실행 방법이 존재할 수 있다. 다양한 실행방법들 중에서 최적의 실행 방법을 결정하는 것이 옵티마이저의 역할이다. 관계형 데이터베이스는 옵티마이저가 결정한 실행 방법대로 실행 엔진이 데이터를 처리하여 결과 데이터를 사용자에게 전달하는 역할만 한다. 옵티마이저는 최적의 실행 방법을 결정하는 방식에 따라 아래 그림처럼 ..
목차 1. 절차형 SQL 개요 2. PL/SQL 개요 3. T-SQL 개요 4. Procedure의 생성과 활용 5. User Defined Function의 생성과 활용 6. Trigger의 생성과 활용 7. 프로시저와 트리거의 차이점 1. 절차형 SQL 개요 일반적인 개발 언어처럼 SQL에도 절차지향적인 프로그램이 가능하도록 DBMS 벤더별로 PL(Procedural Language)/SQL(Oracle), SQL/PL(DB2), T-SQL(SQL Server)등의 절차형 SQL을 제공하고 있다. 절차형 SQL을 이용하면 SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성할 수 있다. 2. PL/SQL 개요 1. PL/SQL 특징 Oracle의 PL/S..
목차 1. DCL 개요 2. 유저와 권한 3. ROLE을 이용한 권한 부여 1. DCL 개요 지금까지 정리한 SQL 문장은 다음과 같다. DDL : 테이블 생성과 조작에 관한 명령어 DML : 데이터를 조작하기 위한 명령어 TCL : 트랜잭션을 제어하기 위한 명령어 추가로 이런 명령어들 외에도 유저를 생성하고 권한을 제어할 수 있는 DCL(DATA CONTROL LANGUAGE) 명령어가 있다. 2. 유저와 권한 대부분의 데이터베이스는 데이터 보호와 보안을 위해서 유저와 권한을 관리하고 있는데, 예를 들어 Oracle에서 제공하는 유저들은 다음과 같다. Oracle은 유저를 통해 데이터베이스에 접속을 하는 형태이다. 즉, 아이디와 비밀번호 방식으로 인스턴스에 접속을 하고 그에 해당하는 스키마에 오브젝트 ..
목차 1. WINDOW FUNCTION 개요 2. 그룹 내 순위 함수 3. 일반 집계 함수 4. 그룹 내 행 순서 함수 5. 그룹 내 비율 함수 1. WINDOW FUNCTION 개요 기존 관계형 데이터베이스는 칼럼과 칼럼간의 연산, 비교, 연결이나 집합에 대한 집계는 쉬운 반면, 행과 행간의 관계를 정의하거나, 행과 행간을 비교, 연산하는 것을 하나의 SQL 문으로 처리하는 것은 매우 어려운 문제였다. 1. WINDOW FUNCTION 종류 WINDOW FUNCTION의 종류는 크게 다섯 개의 그룹으로 분류할 수 있는데, 벤더별로 지원하는 함수에는 차이가 있다. - 그룹 내 순위 관련 함수 : RANK, DENSE_RANK, ROW_NUMBER - 그룹 내 집계 관련 함수 : SUM, MAX, MIN,..
목차 1. 데이터 분석 개요 2. ROLLUP 함수 3. CUBE 함수 4. GROUPING SETS 함수 1. 데이터 분석 개요 ANSI/ISO SQL 표준은 데이터 분석을 위해서 다음 세가지 함수를 정의하고 있다. AGGREGATE FUNCTION GROUP AGGREGATE FUNCTION 이라고도 부르며, GROUP FUNCTION의 한 부분으로 분류할 수 있다. COUNT, SUM, AVG, MAX, MIN 외 각종 집계 함수들이 포함되어있다. GROUP FUNCTION 여러 레벨의 결산 보고서를 만들 때 여러 단계의 SQL을 UNION, UNION ALL로 묶은 후 하나의 테이블을 여러번 읽어 다시 재정렬하는 복잡한 단계를 거쳐야 했다. 그러나 그룹함수를 사용하면 하나의 SQL로 테이블을 한번..
목차 0. 서브쿼리란? 1. 단일 행 서브쿼리 2. 다중 행 서브쿼리 3. 다중 칼럼 서브쿼리 4. 연관 서브쿼리 5. 그 밖의 위치에서 사용하는 서브쿼리 6. 뷰 0. 서브쿼리란? 서브쿼리(Subquery) : 하나의 SQL문 안에 포함되어있는 또 다른 SQL 문 서브쿼리는 알려지지 않은 기준을 이용한 검색을 위해 사용한다. 서브쿼리는 아래 그림과 같이 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다. 서브쿼리의 특징 JOIN은 JOIN에 참여하는 모든 테이블이 대등한 관계에 있기 때문에 조인에 참여하는 모든 테이블의 칼럼을 어느 위치에서라도 자유롭게 사용할 수 있다. 그러나 서브쿼리는 메인 쿼리의 칼럼을 모두 사용할 수 있지만 메인 쿼리는 서브쿼리의 칼럼을 사용할 수 없다. 따라서 질의 결과에 서브쿼..