주의: 이 내용은 제가 뒤죽박죽으로 암기를 위해 정리하는 내용이므로 개연성 상관없이 적으므로 지저분 합니다.
1) 계층형 쿼리에서 최대 계층의 수를 구하기 위한 문제, MAX(LEVEL) 을 사용하여 최대 계층 수를 구함.
2) count(*) 일때 공집합인 경우 0 을 반환하고 다른 집계함수의 경우는 NULL을 반환함.
3) COALESCE 함수는 인수의 숫자가 한정되어 있지 않으며, 임의의 개수 EXPR에서 NULL이 아닌 최초의 EXPR을 나타냄.
만약 모든 EXPR이 NULL이라면 NULL을 리턴.
NULLIF 함수는 EXPR1이 EXPR2와 같으면 NULL을, 같지 않으면 EXPR1을 리턴 한다.
특정 값을 NULL로 대체 하는 경우에 유용하게 사용할 수 있다. NULLIF(EXPR1, EXPR2)
4) 문자열이 들어갈 떄 빈 공간을 채우는 형태의 데이터 타입은? CHAR
5) SELECT ABS(-3.8), FLOOR(3.8), TRUNC(3.8), ROUND(3.8) FROM DUAL
=결과: 3.8, 3, 3, 4
6) SELECT Upper(Sqldeveloper) FROM DUAL;
=결과 SQLDEVELOPER
7) FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
1. 발췌 대상 테이블을 참조한다 (FROM)
2. 발췌 대상 데이터가 아닌 것은 제거한다 (WHERE)
3. 행들을 소그룹화 한다 (GROUP BY)
4. 그룹핑된 값의 조건에 맞는 것만을 출력 한다 (HAVING)
5. 데이터 값을 출력/계산한다 (SELECT)
6. 데이터를 정렬한다 (ORDER BY)
8) FROM 절은 가장 먼저 수행되고, FROM절에 사용되는 subquery를 보통 inline view 라고 한다.
FROM 절은 SELECT 와 항상 짝을 이룬다.
9) FULL OUTER JOIN = LEFT OUTER JOIN UNION RIGHT OUTER JOIN
INNER JOIN = 두 테이블간 조인 조건을 만족하는 ROW만 리턴.
NATURAL JOIN = 조인 대상 테이블의 모든 칼럼을 비교하여, 같은 컬럼명을 가진 컬럼으로 조인을 수행합니다. 이때 같은 이름을 가진 컬럼은 한번만 호출.
LEFT OUTER JOIN = 조인문 왼쪽에 있는 테이블의 모든 결과를 가져온 후 오른쪽 테이블의 데이터와 매칭, 매칭 되는 결과가 없으면 NULL을 반환.
RIGHT OUTER JOIN = LEFT의 반대.
CROSS JOIN = 곱집합.
10) 중복제거를 하지 않은 UNION ALL / 중복제거를 하는 UNION or UNION DISTINCT
11) 교집합은 INTERSECT
12) CONNECT_BY_ISLEAF : 전개 과정에서 해당 데이터가 리프 데이터면 1,아니면 0
13) View 는 논리적인 SELECT 를 포함하는 OBEJCT 로 실제 데이터를 저장하지 않음
14) 서브쿼리, 특히 INLINE VIEW의 컬럼을 메인 쿼리에서도 사용 가능함
15) VIEW 의 특징 :
- 복잡한 질의를 단순하게 작성할 수 있다.
- 또한 해당 형태의 SQL문을 자주 사용할 때 이용하면 편리하 게 사용할 수 있다.
- 사용자에게 정보를 감출 수 있다
- 실제 데이터를 가지고 있지 않다
16) RANGE BETWEEN start_point AND end_point
- start_point는 end_point와 같거나 작은 값이 들어감
- Default값은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
- UNBOUNDED PRECEDING : start_point만 들어갈 수 있으며, 파티션의 first row
- UNBOUNDED FOLLOWING : end_point만 들어갈 수 있으며, 파티션의 last row
- CURRENT ROW : start, end_point 둘다 가능. 윈도우는 CUREENT ROW에서 start하거나 end 함
17) Sort Merge JOIN
- 대용량 데이터를 정렬하여 조인한다.
- 동등 조인, 비동등 조인에서 다 사용 가능하다.
- JOIN을 위해 사전 정렬이 필요.
18) HASH JOIN
- 대량의 데이터를 처리할 때 사용, Equal JOIN 에서만 사용 가능, 두 개 테이블에는 인덱스가 없음.
- 일반적으로 작은 테이블을 MEMORY 에 올리는 선행 테이블로 사용한다
19) DELETE ON TRIGGER 의 경우 :OLD 는 삭제 전 데이터를, :NEW 는 삭제 후 데이터를 나타낸다.
'SQLD > SQLD 기출 정리' 카테고리의 다른 글
SQL 기출문제 1과목 정리 (21, 24, 25, 26, 30회) (0) | 2019.03.08 |
---|