📚CS/SQL

📚CS/SQL

SQL 기본 및 활용 - 조인 수행 원리

조인이란 두 개 이상의 테이블을 하나의 집합으로 만드는 연산이다. SQL문에서 FROM 절에 두 개 이상의 테이블이 나열될 경우 조인이 수행된다. 조인 연산은 두 테이블 사이에서 수행된다. FROM 절에 A, B, C라는 세 개의 테이블이 존재하더라도 세 개의 테이블이 동시에 조인이 수행되는 것이 아니다. 세 개의 테이블 중에서 먼저 두 개의 테이블에 대해 조인이 수행된다. 조인 기법 중에서 자주 사용되는 NL Join, Hash Join, Sort Merge Join이 있다. 1. NL Join NL Join은 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행한다. 반복문의 외부에 있는 테이블을 선행 테이블 또는 외부 테이블이라고 하고, 반복문의 내부에 있는 테이블을 후행 테이블 또는..

📚CS/SQL

SQL 기본 및 활용 - 인덱스 기본

1. 인덱스 특징과 종류 인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 개념이다. 인덱스는 테이블을 기반으로 선택적으로 생성할 수 있는 구조이다. 트리 기반 인덱스 B-트리 인덱스는 브랜치 블록과 리프 블록으로 구성된다. 브랜치 블록 중에서 가장 상위에서 있는 블록을 루트 블록이라고 한다. 브랜치 블록은 분기를 목적으로 하는 블록이다. 브랜치 블록은 다음 단계의 블록을 가리키는 포인터를 가지고 있다. 리프 블록은 트리의 가장 아래 단계에 존재한다. 리프 블록은 인덱스를 구성하는 칼럼의 데이터와 해당 데이터를 가지고 있는 행의 위치를 가리키는 레코드 식별자로 구성되어 있다. 인덱스 데이터는 인덱스를 구성하는 칼럼의 값으로 정렬된다. 리프 블록은 양방향 링크를 가지고 있어서 오름..

📚CS/SQL

SQL 기본 및 활용 - 옵티마이저와 실행계획

1. 옵티마이저 옵티마이저는 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행한다. 이러한 최적의 실행 방법을 실행계획이라고 한다. 관계형 데이터베이스는 궁극적으로 SQL문을 통해서만 데이터를 처리할 수 있다. 프로그래밍 언어와는 달리 SQL은 사용자의 요구사항만 기술할 뿐 처리과정에 대한 기술은 하지 않는다. 그러므로 사용자의 요구사항을 만족하는 결과를 추출할 수 있는 다양한 실행 방법이 존재할 수 있다. 다양한 실행 방법들 중에서 최적의 실행 방법을 결정하는 것이 옵티마이저의 역할이다. 규칙기반 옵티마이저 SELECT ENAME FROM EMP WHERER JOB = 'SALEMAN' AND SAL BETWEEN 3000 AND 6000 INDEX ----------------..

📚CS/SQL

SQL 기본 및 활용 - 절차형 SQL

1. 절차형 SQL 개요 일반적인 개발 언어처럼 SQL에도 절차 지향적인 프로그램이 가능하도록 DBMS 벤더별로 PL/SQL, SQL/PL. T-SQL 등의 절차형 SQL을 제공하고 있다. 절차형 SQL을 이용하면 SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성할 수 있다. 2. PL/SQL 개요 PL/SQL 특징 - PL/SQL은 block 구조로 되어있어 각 기능별로 모듈화가 가능하다 - 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환한다 - IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다 - DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다 - PL/SQL은 Oracle에 내장되어 있으므로 Or..

📚CS/SQL

SQL 기본 및 활용 - 윈도우 함수

1. WINDOW FUNCTION 개요 PL/SQL, SQL/PL, T-SQL, PRO*C 같은 절차형 프로그램을 작성하거나, INLINE VIEW를 이용해 복잡한 SQL 문을 작성해야 하던 것을 부분적이나마 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수가 바로 WINDOW FUNCTION이다. 윈도우 함수를 활용하면 복잡한 프로그램을 하나의 SQL 문장으로 쉽게 해결할 수 있다. *WINDOW FUNCTION 종류 1) 그룹 내 순위(RANK) 관련 함수는 RANK, DENSE_RANK, ROW_NUMBER 함수 2) 그룹 내 집계(AGGREGATE) 관련 함수는 일반적으로 많이 사용하는 SUM, MAX, MIN, AVG, COUNT 함수 3) 그룹 내 행 순서 관련 함수는 FIRST_VALUE, ..

📚CS/SQL

SQL 기본 및 활용 -DCL

1. DCL 개요 유저를 생성하고 권한을 제어할 수 있는 DCL (DATA CONTROL LANGUAGE) 명령어가 있다. 2. 유저와 권한 유저 역할 SCOTT Oracle 테스트용 샘플 유저 Default 패스워드 : TIGER SYS DBA ROLE을 부여받은 유저 SYSTEM 데이터베이스의 모든 시스템 권한을 부여받은 DBA 유저 Oracle 설치 완료 시에 패스워드 설정 유저 생성과 시스템 권한 부여 일반적으로 시스템 권한은 일일이 유저에게 부여되지 않는다. 롤 (ROLE)응 이용하여 간편하고 쉽게 권한을 부여하게 된다. 먼저 유저를 생성하고 권한을 부여한다. 새로운 유저를 생성하려면 일단 유저 생성 권한(CREATE USER)이 있어야 한다. OBJECT에 대한 권한 부여 오브젝트 권한은 특정..

📚CS/SQL

SQL 기본 및 활용 - 그룹 함수

1. 데이터 분석 개요 ANSI/ISO SQL 표준은 데이터 분석을 위해서 다음 세 가지 함수를 정의하고 있다 - AGGREGATE FUNCTION - GROUP FUNCTION - WINDOW FUNCTION AGGREGATE FUNTION GROUP AGGREGATE FUNCTION이라고도 부르며, GROUP FUNCTION의 한 부부능로 분류할 수 있다. GROUP FUNCTION 그룹 함수를 사용한다면 하나의 SQL로 테이블을 한번만 읽어서 빠르게 원하는 리포트를 작성할 수 있다. 추가로, 소계/합계를 표시하기 위해 GROUPING 함수와 CASE 함수를 이용하면 쉽게 원하는 포맷의 보고서 작성도 가능하다. 그룹 함수로는 집계 함수를 제외하고, 소그룹 간의 소계를 계산하는 ROLLUP 함수, GR..

📚CS/SQL

SQL 기본 및 활용 - 서브쿼리

서브쿼리란 하나의 SQL문안에 포함되어 있는 또 다른 SQL문을 말한다. 서브쿼리는 알려지지 않은 기분을 이용한 검색을 위해 사용한다. 서브쿼리는 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다. - 서브쿼리는 단일 행 또는 복수행 비교 연산자와 함께 사용할 수 있다 - 서브쿼리는 SELECT 절, FROM 절, HAVING 절, ORDER BY 절 등에서 사용이 가능하다 - 서브쿼리의 결과가 복수 행 결과를 반환하는 경우에는 IN, ANY, ALL 등 복수행 비교연산자와 사용하여야 한다 - 연관 서브쿼리는 서브쿼리가 메인쿼리 칼럼을 포함하고 있는 형태의 서브쿼리이다 - 다중 칼럼 서브쿼리는 서브쿼리의 결과로 여러 개의 칼럼이 반환되어 메인 쿼리의 조건과 비교되는데, SQL Server에서는 현재 지원하..

바규냐하
'📚CS/SQL' 카테고리의 글 목록