SQL
-
REPORT GROUP 함수 - ROLLUIP, CUBE, GROUPINGSQL 2020. 2. 13. 20:57
데이터 분석을 위한 세가지 함수 1. AGGREGATE FUNCTION (집계 함수) : COUNT, SUM, AVG, MAX 등의 함수 2. GROUP FUNCTION 3. WINDOW FUNCTION -> 분석함수 (Analytic Function)나 순위함수 (Rank Function)로도 알려짐 데이터 웨어하우스에서 발전된 기능 GROUPING 함수 1. ROLLUP : 집계 함수를 제외하고 소그룹 간의 소계를 계산 1) GROUP BY의 확장된 형태로 사용 2) 병렬로 수행이 가능 3) 그룹핑 컬럼 수 (N) -> 소계 (N+1) ?????????? 4) ROLLUP의 인수는 계층구조이므로 인수 순서가 바뀌면 수행결과도 바뀜 - ROLLUP 컬럼이 한개 - ROLLUP 컬럼이 두개 * SUBGR..
-
WINDOW FUNCTION (윈도우 함수)SQL 2020. 2. 13. 20:33
WINDOW FUNCTION (윈도우 함수) 개요 - 기존 관계형 DB는 칼럼과 칼럼간의 연산, 비교, 연결이나 집합에 대한 집계는 쉬운 반면, 행과 행간의 관계를 정의하거나, 행과 행간을 비교, 연산하는 것을 하나의 SQL문으로 처리하는 것은 매우 어려운 일이였지만, WINDOW FUNCTION을 사용하면 행과 행간의 관계를 쉽게 정의할 수 있게 된다. 설명 - 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수 - 윈도우 함수를 활용하면 복잡한 쿼리를 하나의 쿼리로 쉽게 해결 가능 - 다른 이름으로 분석 함수(Analytic Function)나 순위 함수(Rank Function)로도 알려진 윈도우 함수는 데이터 웨어하우스에서 발전한 기능 - Window 함수는 다른 함수와 달리 중첩해서 사용하지 못하..
-
Merge (통합)SQL 2020. 2. 13. 19:53
Merge란? - 조건에 따라서 데이터의 삽입, 삭제, 갱신 작업을 한번에 수행 가능 - 해당 행이 존재하는 경우 UPDATE / DELETE를 수행하고, 새로운 행일 경우 INSERT 수행한다. - 대상 테이블에 대한 UPDATE / INSERT 조건은 ON 절에 의해 결정된다. MERGET Syntax - INTO : data가 UPDATE 되거나 INSERT 될 테이블 또는 뷰를 지정 - USING : 비교할 테이블 또는 VIEW나 SUB-QUERY를 지정 * INTO 절의 테이블과 동일하거나 다를 수 있음 리터럴 값도 올 수 있음 - USING (VALUES (리터럴 값1), (리터럴 값 2) ) - ON : UPDATE나 INSERT를 하게 될 조건으로, 해당 조건을 만족하는 data가 있으면 ..
-
Multiple INSERTSQL 2020. 2. 13. 19:33
Multiple INSERT란? - 하나의 INSER 구문으로 여러 테이블에 데이터를 입력하는 DML 1. 동일한 값을 여러 테이블에 동시 입력하는 Multiple INSERT 2. 테이블에 입력할 컬럼을 지정하여 Multiple INSERT -> 노란색으로 칠해진 첫 번째 deptno이 가리키는건 select 절의 deptno, loc도 마찬가지 -> dept_test 테이블은 deptno, loc 컬럼만 값이 들어가고 dept_test2는 모든 컬럼에 값이 들어감 dname은 값으로 넣어주지 않기 때문에 들어가지 않음 3. 테이블에 입력할 데이터를 조건에 따라 Multiple INSERT - ALL : 디폴트 값, WHEN 조건절을 명시했을 때, 각 조건이 맞으면 INSERT를 모두 수행 - FIRS..
-
Data DictionarySQL 2020. 2. 13. 19:06
Data Dictionary란? - 사용자가 관리하지 않고, DBMS가 자체적으로 관리하는 시스템 정보를 담은 VIEW - 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공 - 오라클 DB는 쿼리문이 실행 될 때마다 데이터 사전을 Access한다. (?) -> DB작업 동안 데이터 사전을 읽어 객체의 존재 여부와 사용자에게 적합한 접근권한이 있는지 등을 확인하고 변경사항을 반영한다. Data Dictionary 종류 확인 SYS.DICTIONARY, Dictionary 접두사 Data Dictionary 종류 1. USER : 해당 사용자가 소유한 객체 2. ALL : 해당 사용자가 소유한 객체 + 다른 사용자로 부터 부여받은 객체 3. DBA : 모든 사용자..
-
Synonym (동의어)SQL 2020. 2. 13. 17:14
Synonym이란? - 쉽게 말해 ALIES 같이 이름을 줄여주는 역할 - 테이블의 이름을 설정해주는 것 - 보통 다른 유저의 객체(TABLE, VIEW, 프로시저, 함수, 패키지, 시퀀스 등)를 참조할 때 많이 사용 - 실제로 Synonym을 이용하는 이유는 다른 유저의 객체를 사용할 때 유저의 이름과 객체의 실제이름을 사용하는데 이 두개를 감춤으로써 데이터베이스의 보안을 개선하기 위해 사용 생성방법 CREATE [PUBLIC] SYNONYM 시노님 이름 FOR 객체이름 - PUBLIC은 모든 사용자가 접근이 가능하도록 설정 - PUBLIC 선언해주지 않으면 DEFULTE 값으로 PRIVATE가 선언 사용예제 1. 유저가 두명 있다고 가정 (user1 / user2) 2. user1이 가지고 있는 테이..
-
JOIN의 방식SQL 2020. 2. 12. 19:28
JOIN연산이란? - SQL 명령문에 의해서 여러 테이블에 저장된 데이터를 한번에 조회할 수 있게 하는 DBMS의 기능 - 두 집합 간의 곱으로 데이터를 연결하는 가장 대표적인 데이터 연결법 JOIN의 종류(5가지) 1. INNER JOIN 2. OUTER JOIN 3. CROSS JOIN 4. FULL OUTER JOIN 5. SELF JOIN JOIN의 방식(3가지) 1. Nested Loop JOIN - 중첩반복 2. Merge JOIN - 정렬병합 3. Hash JOIN - 해시매치 JOIN의 종류 -> 논리적 JOIN JOIN의 방식 -> 물리적 JOIN 물리적 JOIN 1. Nested Loops JOIN (중첩 반복 조인) - 바깥 테이블의 처리 범위를 하나씩 엑세스하면서 그 추출된 값으로 ..