SQL 3

[Database] TOP N QUERY, 계층형 질의

TOP N QUERY페이징 처리를 효과적으로 수행하기 위해 사용한다.전체 결과에서 특정 N개를 추출함ex 성적 상위자 3명TOP-N 행 추출 방법ROWNUMRANKFETCHTOP N(SQL SERVER)ROWNUM출력된 데이터 기준으로 행 번호를 부여하는 함수다.절대적인 행 번호가 아닌 가상의 번호이므로 특정 행을 지정할 수 없다. (= 연산이 불가능하다.)첫 번째 행이 증가한 이후 할당 되므로 > 연산은 사용 불가능하다.1이 먼저 할당 되고 나서 다음 숫자들이 할당 되기 때문에 무조건 rownum에 1이 할당이 먼저 돼야한다. 따라서 row num > 1 의 연산인 경우엔 1이 할당이 안 되기 때문에 오류가 나고  다음과 같이 where 절에 조건을 걸면 상위 5명의 급여를 추출할 수 없다. 이유는 s..

[Database] 집합 연산자, 그룹함수 (UNION, UNION ALL, INTERSECT, MINUS, GROUPING SETS, ROLLUP, CUBE)

집합 연산자select 문 결과를 하나의 집합으로 간주, 그 집합에 대한 합집합, 교집합, 차집합 연산select 문과 select 문 사이에 집합 연산자 정의두 집합의 컬럼이 동일하게 구성되어야 한다. (각 컬럼의 데이터 타입과 순서가 일치해야함)전체 집합의 데이터 타입과 컬럼명은 첫번째 집합에 의해 결정됨합집합두 집합의 총 합 출력UNION과 UNION ALL 사용 가능1. UNION중복된 데이터는 한 번만 출력중복된 데이터를 제거하기 위해 내부적으로 정렬 수행중복된 데이터가 없을 경우는 UNION 대신 UNION ALL 사용(불필요한 정렬 발생할 수 있으므로)2. UNION ALL중복된 데이터도 전체 출력 UNION의 경우 중복되는 20번 부서에 대한 중복 제거 결과가 나타난다.  UNION ALL..

[Database] SQL 함수 정리 (ORACLE), where 절 분석

그룹함수그룹함수란?다중행 함수여러 값이 input 값으로 들어가서 하나의 요약된 값으로 리턴된다.group by와 함께 자주 사용된다.ORACLE과 SQL-SERVER의 함수가 거의 동일하다.위는 ORACLE의 기준이며SQL -SERVER에서는 다음과 같이 함수가 달라진다.VARIANCE -> VARSTDDEV -> STDEV 일반 함수그룹 함수를 제외한 나머지 함수를 일반 함수라고 한다. (널 치환 함수 등등,,)DECODE: 예시를 봐보자 (DEPTNO,10,A,B) 가 있는데 DEPTNO는 특정 컬럼의 이름이다.해달 컬럼의 값이 10과 같다면 A를 반환하고 같지 않다면 B를 반환해라 라는 의미다.NVL은 COMM이란 컬럼에 NULL이 있다면 0으로 바꿔주겠다 라는 의미이다.NULL이 아니라면 해당 ..