본문 바로가기

database

[DataBase]윈도우 함수(Window Function)에 대해 알아보자! 2편 ◎ 윈도우 함수 1편 주소 : https://rh-cp.tistory.com/91 3-3. 행 순서 관련 함수 ◎ 행 순서 관련 함수는 상위 행의 값을 하위에 출력하거나 하위 행의 값을 상위 행에 출력하게 할 수 있습니다. ◎ 또는 특정 위치의 행을 갖고와 출력 할 수 있습니다. ◎ FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수가 있습니다. ◇ FIRST_VALUE -- 파티션에서 가장 처음에 나오는 값을 구합니다. -- MIN 함수를 사용해 같은 결과를 구할 수 있습니다. ▷ 가장 처음에 나오는 ename을 가져옵니다. PARTITION BY deptno로 파티션을 만들어 deptno가 같은 사원 중 급여가 가장 많은 사원을 가져옵니다. ◇ LAST_VALUE -- 파티션에서 가장..
[DataBase]윈도우 함수(Window Function)에 대해 알아보자! 1편 1. 윈도우 함수(Window Function)란? ◎ 윈도우 함수(Window Function)는 행과 행 간의 관계를 정의하기 위해 제공되는 함수입니다. ◎ 순위, 합계, 평균, 행 위치 등을 조작할 수 있습니다. ◎ 윈도우 함수 2편 주소 : https://rh-cp.tistory.com/92 2. 윈도우 함수의 구조 ◎ SELECT WINDOW_FUNCTION(ARGUMENTS) OVER (PARTITION BY 컬럼 ORDER BY WINDOWING 절) FROM 테이블명; ◇ ARGUMENTS(인수) -- 윈도우 함수에 따라 0~N개의 인수를 설정합니다. ◇ PARTITION BY -- 전체 집합을 기준에 의해 소그룹으로 나눕니다. ◇ ORDER BY -- 항목에 의해 정렬합니다. ◇ WIND..
[DataBase]그룹 함수(Group Function)에 대해 알아보자! 1. 그룹 함수(Group Function)란? ◎ 하나 이상의 행을 그룹으로 묶어 연산하여 하나의 결과를 나타내는 것입니다. 2. 그룹 함수 종류 ◎ ROLLUP - GROUP BY의 컬럼에 대해 소계(Subtotal)를 만들어 줍니다. - GROUP BY에 두 개이상의 컬럼이 오면 순서에 따라 결과가 달라집니다. ROLLUP을 사용해 부서 급여 전체합계를 구합니다. 부서별 합계와 직업별 합계, 전체 합계가 조회됩니다. ◎ GROUPING - ROLLUP, GROUPING SET, CUBE로 생성되는 합계 값을 구분하기 위해 사용합니다. - 계산이 된 곳은 1, 아닌 곳은 0으로 반환하여 표시합니다.소계가 계산된 데이터에는 1로 표시됩니다. ◎ GROUPING SETS - GROUP BY에 나오는 컬럼..
[DataBase]서브쿼리(Subquery)란 무엇일까? 1. 서브쿼리(Subquery)란 무엇인가? ◎ 서브쿼리(Subquery)란 SELECT 문 안에 또다시 SELECT문이 있는 쿼리문입니다. ◎ 서브쿼리는 위치에 따라 명칭이 다릅니다. FROM절에 사용하는 인라인 뷰(Inline view), SELECT문에 사용하는 스칼라 서브쿼리(Scala Subquery), 일반적으로 WHERE절에 사용하는 것을 서브쿼리(Subquery)라고 합니다. 1-1. 서브쿼리 형태 ◎ 서브쿼리(Subquery) - 일반적으로 where절에 사용하는 서브쿼리입니다. ◎ 인라인 뷰(Inline View)- FROM절에 사용하는 서브쿼리입니다. ◎ 스칼라 서브쿼리(Scala Subquery)- SELECT문에 사용하는 서브쿼리입니다. ◎ 연관 서브쿼리(Correlated Sub..
[DataBase]계층형 조회(Connect by)를 사용하는 법을 알아보자! 1. 계층형 조회란? ◎ Oracle Database에서 지원한다. ◎ 계층형으로 데이터를 조회하는 것이다. 즉, 초등학교 학년으로 하면 6학년에서 5학년, 5학년에서 4학년 순으로 트리 형태의 구조를 탐색하며 조회하는 것이다. ◎ 역방향도 가능하다 2. 계층형 조회 실습 ◎ 테스트 테이블 ◎ 계층 level 구하기 -- MAX(level)을 사용하여 트리구조의 최대 깊이를 구합니다. -- START WITH은 시작조건을 의미한다. 즉 mgr이 null인것부터 시작한다는 뜻입니다. -- CONNECT BY PRIOR는 조인조건을 의미한다. 즉 empno와 mgr이 같은것을 조인하는 것. ◎ 계층 구조 조회하기 -- LEVEL을 사용해 계층을 나타내었습니다. -- 계층을 조금 더 명확히 보기 위해 LPAD..
[DataBase]DB에서 조건문을 사용해 보자! 1. 조건문(條件文)이란? 명시한 조건이 비교연산을 통해 참인지 거짓인지에 따라 상황을 수행하는 것.쉽게 말해 참이면 'A'를 수행하고 거짓이면 'B'를 수행하는 것이다. 2. 조건문 구현하기 ◎ 테스트 테이블 ◎ DECODE문을 사용하여 IF문 구현 사용 방법 : DECODE(컬럼, 컬럼과의 조건, 'TRUE', FALSE') SELECT 안에서 DECODE문을 사용해 mgr이 null이면 '존재안함', mgr이 null이 아닐 경우 '존재'가 나오도록 하였음. ◎ CASE문을 사용한 조건문 구현 사용 방법 : CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 WHEN 조건n THEN 결과n ELSE 결과 ENDselect 문 안에서 CASE를 사용해 mgr이 1001이면 '10..
[DataBase]엔티티 식별자[Key](Entity Identifier)란 뭘까? 1. 엔티티 식별자란?(Entity Identifier) ◎ 엔티티를 대표할 수 있는 유일성을 만족하는 속성. ex) ID, 주민번호, 여권번호 등... 2. 주식별자(기본키, Primary key) ◎ 유일성과 최소성을 만족하는 키 ◎ 엔티티를 대표할 수 있어야 함. ◎ 엔티티의 인스턴스를 유일하게 식별 ◎ 자주 변경되지 않아야 함. 2-1. 키의 종류 키설명기본키(Primary key)후보키 중 엔티티를 대표할 수 있는 키후보키(Candidate key)유일성과 최소서을 만족하는 키슈퍼키(Super key)유일성은 만족하나 최소성은 만족하지 않는 키대체키(Alternate key)여러 후보 키 중 기본키를 제외한 나머지 3. 식별자의 종류 ◎ 식별자는 대표성, 생성 여부, 속성의 수, 대체 여부로 분..
[DataBase]관계(Relationship)이란 무엇일까? 1. 관계(Relationship)란? ◎ 관계(Relationship)는 엔티티 간의 관련성을 의미한다. ◎ 존재 관계와 행위 관계로 분류됨. ◎ 존재 관계 : 두 개의 엔티티가 존재 여부의 관계가 있는 것 ◎ 행위 관계 : 두 개의 엔티티가 어떤 행위에 의해 관련성이 있는 것. 2. 관계의 종류 ◎ 존재 관계- 엔티티 간의 상태를 의미. ex) 학생이 학교에 입학하게 되면 관리학교가 할당되고, 그 할당점으로 학교에서 학생들을 관리한다. ◎ 행위 관계- 엔티티 간에 어떠한 행위가 있는 것 ex) 증권회사의 계좌 개설, 주문 발주 등... 3. 관계 차수 ◎ 관계 차수(Relation Cardinality)는 두 개의 엔티티 간 관계에 참여하는 수를 의미 3-1. 관계 차수의 종류 ◎ 1대1 관계종류설명..