SQL 종류
- DML(Data Manipulation Language)
- SELECT
- INSERT
- UPDATE
- DELETE
- DDL(Data Definition Language)
- DCL(Data Control Language)
- TCL(Transaction Control Language)
LTRIM
- SQL SERVER에서 왼쪽 공백 제거
- 오라클에서는 LTRIM(문자열,제거할 문자열) 사용된다.
GROUP BY 절과 HAVING 특징
- GROUP BY 절을 통해 소그룹별 기준을 정한 후 SELECT 절에 집계 함수를 사용
- 집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행
- GROUP BY 절에서는 SELECT 절과는 달리 ALIAS 사용 불가
- 집계 함수는 WHERE 절에는 올 수 없다.
- WHERE 절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거한다.
- HAVING 절은 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.
- GROUP BY 절에 의한 소그룹별로 만들어진 집계 데이터 중 HAVING 절에서 제한 조건을 두어 조건을 만족하는 내용만 출력
- HAVING 절은 일반적으로 GROUP BY 절 뒤에 위치한다.
Join
- LEFT OUTER JOIN : 왼쪽 테이블은 무조건 포함, 오른쪽은 일치하는 것만 포함
- RIGHT OUTER JOIN : 오른쪽 테이블은 무조건 포함, 왼쪽은 일치하는 것만 포함
- FULL OUTER JOIN : 양쪽 테이블 모두 포함, 일치하지 않아도 포함
- CROSS JOIN : 모든 행 조합을 출력
- NATURAL JOIN : 같은 이름을 가진 컬럼이 있으면 자동으로 조인
- USING : 두 테이블에 이름이 같은 컬럼이 있을 때만 사용, 중복은 제거한다. 5
집합 연산자
| UNION |
전체 합집합 (중복 제거) |
| UNION ALL |
전체 합집합 (중복 허용) |
| INTERSECT |
공통된 행만 반환 (교집합) |
| EXCEPT |
첫 쿼리 - 두 번째 쿼리 (차집합) |
서브쿼리 종류
- 서브쿼리는 단일 행(Single Row) 또는 복수 행(Multi Row) 비교 연산자와 함께 사용할 수 있다.
- 서브쿼리는 SELECT, FROM, HAVING, ORDER BY 등에서 사용 가능하다.
- 연관 서브쿼리는 서브쿼리가 메인쿼리 칼럼을 포함하고 있는 형태의 서브쿼리이다.
- ORDER BY 절에는 서브쿼리를 사용할 수 없다. 메인쿼리의 마지막 문장에 위치해야 한다.
- 다중 행 서브쿼리 비교 연산자는 단일 행 서브쿼리의 비교 연산자로도 사용할 수 있다.
- Single Row (단일 행 서브쿼리)
- 서브쿼리의 실행 결과가 항상 1건 이하인 서브쿼리를 의미
- 단일 행 비교 연산자와 함께 사용단일 행 비교 연산자에는 =, <, > 등이 있다.
- Multi Row (다중 행 서브쿼리)
- 서브쿼리의 실행 결과가 여러 건인 서브쿼리를 의미
- 다중 행 비교 연산자와 함께 사용하고 비교 연산자는 IN, ALL, ANY, SOME, EXISTS 있다.
- Single Column
- Multi Column
- 서브쿼리와 메인쿼리에서 비교하고자 하는 칼럼 개수와 칼럼의 위치가 동일해야 한다.
그룹화
- GROUPING SETS
-
- GROUP BY는 하나의 기준만 그룹화 가능하지만 GOUPING SETS는 다양한 그룸 조합을 한번에 보고 싶을 때 사용
- ROLLUP
- CUBE
START WITH
- 부모-자식 관계를 가진 데이터를 위에서 아래로 따라가며 조회할 때 사용
CONNECT BY PRIOR
ORDER SIBLINGS BY