# SQLD/P
[SQLD/P] TCL (Oracle / SQL Server) 및 이외
SAVEPOINT SV1SAVE TRAN(TRANSACTION) SV1Oracle, SQL Server 모두 INSERT INTO EMP(...) VALUES(...) 형태는 동일하고, 이때 SQL Server에서 INTO 생략이 가능하다.TCL(SQL Server)
[SQLD/P] 45회 기출 - 참고사항
여러 장소에 같은 정보를 보관하지 않도록 한다.데이터 모델링을 할때 반정규화는 고려 대상이 아니다. 성능을 위한 반정규화는 모델링 이후의 단계이고, 모델링 단계에서 반정규화는 성능을 해칠 수 있으므로 주의한다.자식 엔티티에서 받은 속성이 반드시 필수가 아니어도 무방한
[SQLD/P] 39회 기출 - 참고사항
컬럼단위 분할 : 수직분할튜플단위, 튜플의 속성, 테이블 분할 : 수평분할항상 같이 조회, 하나의 테이블로 통합, ALL IN ONE해서 만드는 SINGLE TYPE 방법개별 테이블 유지, 개별 테이블로 접근이 많은 경우 One to One TYPE슈퍼+서브타입으로 데
[SQLD/P] 기타 참고사항
. 참고자료 Oracle, SQL Server의 공백처리 - https://ponyozzang.tistory.com/209 natural join 관련 예제 - https://ju-hy.tistory.com/102 partition by 후 특정 기준에 대한 누적값
[SQLD/P] 34회 기출 - 참고사항
1. 식별자 특징 엔터티 내 인스턴스들을 구분할 수 있는 구분 인자 유일성 : 인스턴스들을 유일하게 구별할 수 있어야 함 최소성 : 유일성을 만족하면서 최소의 개수여야 함 불변성 : 식별자로 선정된 데이터는 변하면 안됨 존재성 : NOT NULL, 데이터 반드시 존재
[SQLD/P] 30회 기출 - 참고사항
도메인은 속성, attribute에 대한 개념이고, 기본적으로 속성값이 나타날 수 있는 범위라 할 수 있다.나아가 속성에 대한 데이터 타입이나 크기, 제약사항 등에 대한 의미로도 명시될 수 있다.조인시 디스크 I/O가 너무 많고, 경로가 너무 멀어 조인으로 인한 성능저
[SQLD/P] 비연관 쿼리/연관 쿼리
서브쿼리는 동작형식, 변환 데이터 형태, 구문 위치 등에 따라 분류할 수 있다.이 중 동작형식으로 구분한다면 비연관 쿼리, 연관 쿼리로 나눌 수 있다.Un-Corrleated Sub Query, 서브쿼리에서 사용하는 컬럼이 메인쿼리에서 사용하지 않을 경우이다.메인 쿼리
[SQLD/P] 트랜잭션의 성질
트랜잭션의 성질은 data의 무결성(결함이 없는 성질)을 확보하기 위해 필요한 특징이다.Atomicity, 트랜잭션의 각 연산들은 모두 성공한다는 것을 전제하에 처리한다는 의미이다. 연산 중 하나라도 실패한다면 트랜잭션을 처리할 수 없다.Consistency, DBMS
[SQLD/P] SQL 힌트
Optimizer는 SQL을 실행할때 일종의 기준대로 실행을 하며, 이전의 데이터나 기록 등을 이용하면서 최적의 실행방안을 찾기 위해 노력한다.보통은 Optimizer가 최적의 실행 경로를 자동으로 탐색하지만, 사용자가 직접 최적의 실행 방안을 지정해주는 경우가 있다.
[SQLD/P] 절차형SQL 기초 개념
1. 개요 SQL을 하다보면 많이 들어봤을 프로시저(Procedure), 트리거(trigger), 사용자 정의 함수(User Defined Function)는 모두 절차형SQL에 속하는 방법론적인 개념들이다. 절차형SQL은 말 그대로 SQL을 절차적으로, SQL의
[SQLD/P] 윈도우 함수(window function)의 특징
1. 개요 윈도우 함수는 행과 행간의 비교 및 연산을 할 수 있는 함수이며, 보통은 정렬목적으로 사용한다. ROWNUMBER, RANK, DENSERANK 등 보통 행의 순위와 해당 순위를 통해 출력할 행의 갯수를 제한할때 많이 활용한다. 2. 특징 이 윈도우
[SQLD/P] PARTITION BY
윈도우 함수(RANK, DENSER_RANK, ROW_NUM) 등과 함께 쓰이며, 순위를 나열할때 그룹내 순위로 나열할 수 있도록 한다.GROUP BY와 의미적으로 유사하다.PARTITION BY에 의해 정해진 그룹내에서만 순위를 나열하고, 그룹이 달라지면 새로운 순위
[SQLD/P] SQL 집계함수
집계함수라 하면 GROUP BY를 많이 떠올릴 것이다.하지만 SQL에는 GROUP BY 집계함수와 함께, 해당 그룹을 다시 소그룹으로 나누어 세부항목별 집계연산을 지원하는 별도의 집계함수가 존재한다.기본적으로 PRODUCT_ID와 MONTH를 그룹화하여 집계한다.이 집
[SQLD/P] HAVING 조건절 단독 사용
HAVING절은 보통 GROUP BY에서 해당 집계함수에 대한 조건을 추가할때 사용한다.그러나 GROUP BY없이도 단독으로 HAVING절을 사용할 수 있는 경우가 있다.해당 table column 구성에서, 각 column별 소그룹으로 묶지 않고 테이블 전체를 동일한
[SQLD/P] SELECT 'X' / SELECT 1
SELECT 'X'나 SELECT 1은 조건절을 만족하는 table의 행의 갯수만큼 해당 문자열을 출력하겠다는 의미이다.이 SQL구문은 TABLE의 행개수만큼 'X'가 나온다.이 SQL구문은 TABLE의 행개수만큼 1이 나온다.이 table에 추가하는 조건절에 따라 결
[SQLD/P] CASE가 들어간 HAVING COUNT
특정 혹은 여러 개의 COLUMN을 기준으로 집계를 내고자 할때 GROUP BY함수와 집계함수 혹은 count(\*) 등을 활용한다.이 집계함수 대신에 다른 구문을 통해서도 집계를 할 수 있는데, 이때 사용할 수 있는 것이 HAVING 조건절로 COUNT와 CASE 키
[SQLD/P] 계층형 쿼리 세부구조
위와 같은 TABLE과 SQL이 있을때, 결과를 정렬하는 과정을 세부적으로 확인해본다.C2가 NULL인 지점을 최상위 노드로 지정한다.PRIOR C1 = C2, 즉 이전 계층에서의 C1값이 현재 계층의 C2인 값을 지정한다.이때 계층구조가 나뉘고, C1은 현재 자식에게
[SQLD/P] 계층형 쿼리
SQL을 통해 계층형 구조를 생성한다는 것은 두가지 의미를 가지고 있다.첫번째는 상위(부모)항목에서 하위(자식)항목으로 이어지는 tree 구조의 자료를 만드는 과정이다.두번째는 계층구조보다는 반복문을 만드는데 초점을 두어 관련 쿼리를 생성하는 과정이다(※이 경우도 이론
[SQLD/P] ORDER BY 1,2
ORDER BY는 SQL문장 맨 끝부분에 위치하여 결과를 최종적으로 정렬하여 나타내어주는 정렬연산자이다.이 ORDER BY의 사용방법은 크게 두가지로 나눌 수 있다.ORDER BY COLUMN(COLUMN을 명시하는 경우)ORDER BY 1, 2(숫자만 명시하는 경우)
[SQLD/P] VIEW
별도의 데이터베이스 객체로, 원천 데이터는 TABLE 안에 있지만 해당 컬럼과 데이터만 저장하여 사용하는 일종의 사용자 정의 오브젝트, 객체이다.독립성테이블 구조를 변경 하더라도, view를 사용하는 application 자체는 변경하지 않아도 된다.편리성join, g