1. 데이터 분석 개요 - ANSI/ISO SQL 표준은 데이터 분석을 위해서 다음 세 가지 함수를 정의한다. n AGGREGATE FUNCTION n GROUP FUNCTION n WINDOW FUNCTION - AGGREGATE FUNCTION n GROUP AGGREGATE FUNCTION이라고도 부르며, GROUP FUNCTION의 한 부분으로 분류할 수 있다. n COUNT, SUM, AVG, MAX, MIN 외 각종 집계 함수들이 포함되어 있다. - GROUP FUNCTION n ROLLUP은 GROUP BY의 확장된 형태로 사용하기가 쉬우며 병렬로 수행이 가능하기 때문에 매우 효과적일 뿐 아니라 시간 및 지역처럼 계층적 분류를 포함하고 있는 데이터의 집계에 적합하도록 되어있다. n CUBE는..
n 서브쿼리(Subquery)란 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말한다. n 서브쿼리를 사용할 때 다음 사항을 주의① 서브쿼리를 괄호로 감싸서 사용한다.② 서브쿼리는 단일 행(Single Row) 또는 복수 행(Multiple Row) 비교 연산자와 함께 사용 가능하다. 단일 행 비교연산자는 서브쿼리의 결과가 반드시 1건 이하이어야 하고 복수행 행 비교연산자는 서브쿼리의 결과 건수와 상관없다.③ 서브쿼리에서는 ORDER BY절을 사용하지 못한다. ORDER BY절은 SELECT 절에서 오직 한 개만 올 수 있기 때문에 ORDER BY절은 메인쿼리의 마지막 문장에 위치해야 한다. n 서브쿼리가 SQL문에서 사용이 가능한 곳은 다음과 같다.- SELECT절, FROM절, WHERE절,..
1. 계층형 질의- 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서 계층형 질의(Hierarchical Query)를 사용한다. - 계층형 데이터란?n 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터. ex) 사원 테이블에서는 사원들 사이에 상위 사원(관리자)과 하위 사원 관계가 존재하고 조직 테이블에서는 조직들 사이에 상위 조직과 하위 조직 관계가 존재.n 엔티티를 순환관계 데이터 모델로 설계할 경우 계층형 데이터 발생n 순환관계 데이터 모델 ex) 조직, 사원, 메뉴 등 가. Oracle 계층형 질의 가상 칼럼 설명 LEVEL 루드 데이터이면 1, 그 하위 데이터이면 2이다. 리프(Leaf) 데이터까지 1씩 증가한다. CONNECT_BY_ISLEAF 전개 과정에서 해당 데..
1. 집합연산자(SET_OPERATOR)- 연관된 데이터를 조회하는 방법 중 하나이다.- 여러 개의 질의의 결과를 연결하여 하나로 결합하는 방식 사용 (즉, 집합 연산자는 2개 이상의 질의 결과를 하나의 결과로 만들어 준다.) n 일반적으로 집합 연산자를 사용하는 상황- 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때 사용한다. - 동일 테이블에서 서로 다른 질의를 수행하여 결과를 합치고자 할 때 사용한다.- 이외에도 튜닝관점에서 실행계획을 분리하고자 하는 목적으로도 사용한다. n 집합 연산자를 사용하기 위한 제약조건 (조건을 지키지 않을 시 데이터베이스가 오류 반환)- SELECT 절의 칼럼 수가 동일- SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이..
1. STANDARD SQL 개요- 표준 SQL의 기능STANDARD JOIN 끼능 추가(CROSS, OUTER JOIN 등 새로운 FROM 절 JOIN 기능들)SCALAR SUBQUERY, TOP-N QUERY 등의 새로운 SUBQUERY 기능들ROLLUP, CUBE, GROUPING SETS 등의 새로운 리포팅 기능WINDOW FUNCTION 같은 새로운 개념의 분석 기능들가. 일반 집합 연산자UNION 연산은 UNION 기능INTERSECTION 연산은 INTERSECT 기능DIFFERENCE 연산은 EXCEPT(Oracle은 MINUS) 기능PRODUCT 연산은 CROSS JOIN 기능나. 순수 관계 연산자SELECT 연산은 WHERE 절로 구현PROJECT 연산은 SELECT 절로 구현(NATU..
1. JOIN의 개요- 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것- JOIN은 관계형 데이터베이스의 가장 큰 장점이면서 대표적인 핵심 기능이라고 할 수 있다. 일반적인 경우 행들은 PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립된다. 하지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립 가능하다.- FROM절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할 때는 단 두 개의 집합 간에만 조인이 일어나는 것이다. FROM 절에서 A, B, C 테이블이 나열되더라도 특정 2개의 테이블만 먼저 조인 처리되고, 2개의 테이블이 조인되어서 처리된 새로운 데이터 집합과 남은 한 개의 테이블이 다..
1. ORDER BY 정렬- ORDER BY 절에 칼럼(Column)명 대신 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능하다.- 기본적인 정렬순서는 오름차순(ASC), SQL 문장의 제일 마지막에 위치한다.- SELECT 칼럼명 ALIAS명 FROM 테이블명 WHERE 조건식 GROUP BY 칼럼(Column)이나 표현식 HAVING 그룹 조건식 ORDER BY 칼럼(Column)이나 표현식 [ASC 또는 DESC]- ASC(Ascending) : 조회한 데이터를 오름차순으로 정렬한다. (Default이므로 생략 가능)- DESC(Descending) : 조회한 데이터를 내림차순으로 정렬한다.- Oracle 에서는 NULL 값을 가장 큰 값으로 간주한다. SQL S..
1. 집계함수(Aggregate Function)- 특성n 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 반환하는 함수n GROUP BY 절은 행들을 소그룹화n SELECT 절, HAVING 절, ORDER BY 절에 사용- 집계함수 명 ( ALL칼럼이나 표현식)n ALL : Default 옵션이므로 생략 가능n DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션 집계 함수 사용 목적 COUNT(*) NULL 값을 포함한 행의 수를 출력한다. COUNT(표현식) 표현식의 값이 NULL 값인 것을 제외한 행의 수를 출력한다. SUM([DISTINCT | ALL] 표현식) 표현식의 NULL 값을 제외한 합계를 출력한다. AVG([DISTINCT | ALL] 표현식) 표현식의 NULL..
1. 내장 함수(BUILT-IN FUNCTION) 개요- 내장 함수는 SQL을 더욱 강력하게 해주고 데이터 값을 간편하게 조작하는데 사용된다.- 내장 함수는 벤더별로 가장 큰 차이를 보이는 부분이지만, 핵심적인 기능들은 이름이나 표현법이 다르더라도 대부분의 데이터베이스가 공통적으로 제공하고 있다.- 내장 함수는 다시 함수의 입력 값이 단일행 값이 되는 경우, 단일행 함수(Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수(Multi-Row Fuction)로 나눌 수 있다.- 함수는 입력되는 값이 아무리 많아도 출력은 하나만 된다는 M:1 관계라는 중요한 특징을 가지고 있다.- 단일행 함수의 경우 단일행 내에 있는 하나의 값 또는 여러 값이 입력 인수로 표현될 수 있다.- 다중행 ..
1. WHERE 절- 사용자들은 자신이 원하는 자료만을 검색하기 위해서 SQL문장에 WHERE 절을 이용하여 자료들에 대하여 제한한다.- WHERE절에 조건이 없는 FTS(Full Table Scan) 문장은 SQL 튜닝의 1차적인 검토 대상이 된다. (FTS가 무조건 나쁜 것은 아니며 병렬처리 등을 이용해 유용하게 사용하는 경우도 많다.) n 연산자의 종류 구분 연산자 연산자의 의미 비교 연산자 = 같다. > 보다 크다. >= 보다 크거나 같다. 문자 유형간의 비교방법 구분 비교 방법 비교 연산자의 양쪽이 모두 CHAR 유형 타입인 경우 길이가 서로 다른 CHAR형 타입이면 작은 쪾에 SPACE를 추가하여 길이를 같게 한 후에 비교한다. 서로 다른 문자가 나올 때까지 비교한다. 달라진 첫 번째 문자의 ..