목차
CHAPTER 1 SQL 기본 문법
1.1. SELECT
1.2. FROM
1.3. WHERE
1.4. 조건 연산자
1.4.1. AND 조건과 OR 조건
1.4.2. NOT 조건
1.4.3. = 조건
1.4.4. 범위 조건
1.4.5. NULL 조건
1.5. 인라인뷰
1.6. 정렬 및 그룹화
1.6.1. ORDER BY 절
1.6.2. GROUP BY 절
1.7. 집합 연산
1.7.1. 합집합
1.7.2. 교집합
1.7.3. 차집합
CHAPTER 2 스칼라 함수
2.1. 숫자 함수
2.1.1. ABS
2.1.2. SQRT
2.1.3. CBRT
2.1.4. POWER
2.1.5. CEIL
2.1.6. FLOOR
2.1.7. DIV
2.1.8. MOD
2.1.9. ROUND
2.1.10. TRUNC
2.1.11. SIGN
2.1.12. 무작위수(RANDOM)
2.2. 문자 함수
2.2.1. UPPER
2.2.2. LOWER
2.2.3. INITCAP
2.2.4. CONCAT
2.2.5. ||
2.2.6. CONCAT_WS(오라클 미지원)
2.2.7. SUBSTRING(오라클 미지원), SUBSTR
2.2.8. SUBSTRB(PostgreSQL 미지원)
2.2.9. LEFT(오라클 미지원), RIGHT(오라클 미지원)
2.2.10. SPLIT_PART(오라클 미지원)
2.2.11. REPLACE
2.2.12. OVERLAY(오라클 미지원)
2.2.13. TRANSLATE
2.2.14. LENGTH, CHAR_LENGTH(오라클 미지원), CHARACTER_LENGTH(오라클 미지원)
2.2.15. OCTET_LENGTH(오라클 미지원)
2.2.16. LPAD, RPAD
2.2.17. LTRIM, RTRIM
2.2.18. BTRIM(오라클 미지원)
2.2.19. ASCII
2.2.20. CHR
2.2.21. POSITION(오라클 미지원), STRPOS(오라클 미지원)
2.2.22. REPEAT(오라클 미지원)
2.2.23. GREATEST, LEAST
2.2.24. ILIKE(오라클 미지원)
2.3. 날짜 함수
2.3.1. 자주 사용하는 PostgreSQL 날짜 함수 사용 형태
2.3.2. TO_DATE
2.3.3. TO_TIMESTAMP
2.3.4. 특정일자의 시작과 끝 시각 구하기
2.3.5. 현재를 기준으로 어제, 오늘, 내일 구하기
2.3.6. 시분초 제거하기
2.3.7. 월의 마지막 날 구하기(LAST_DAY)
2.3.8. 요일 구하기(EXTRACT)
2.3.9. 한국, 미국, 영국 날짜 표현
2.3.10. 일정 기간 이후 시각 구하기
2.3.11. 시각 값 자르기
2.3.12. 시각 값에서 특정 부분 추출하기
2.3.13. 일자간 차이 구하기
2.3.14. 입력 일 이후 특정 요일인 첫번째 일자 구하기
2.3.15. 테이블에서 일자 단위 데이터 조회 예시
2.4 변환 함수
2.4.1. 형 변환 방법
2.4.2. TO_CHAR(숫자를 문자로 변경)
2.4.3. TO_CHAR(일자를 문자로 변경)
2.4.4. TO_NUMBER(문자를 숫자로 변경)
2.4.5. TO_DATE(문자를 시각으로 변경)
2.4.6. NULLIF
2.4.7. NVL과 NVL2
2.5 ARRAY 관련 함수와 조회 방법
2.5.1. ARRAY 데이터 생성과 기본 이해하기
2.5.2. ARRAY에서 특정 데이터 추출하기
2.5.3. ARRAY 차원 파악
2.5.4. ARRAY 길이 파악
2.5.5. ARRAY에 값 추가
2.5.6. ARRAY 결합
2.5.7. ARRAY에서 특정 값의 위치 찾기
2.5.8. 문자열을 ARRAY로 변환
2.5.9. ARRAY를 문자열로 변환
2.5.10. ARRAY를 row로 분리
2.5.11. row 값을 ARRAY로 변환
2.5.12. ARRAY간 비교
2.5.13. ARRAY 칼럼에 있는 값 조회(sample)
CHAPTER 3 타임존 설정 및 변환
3.1. 세션 타임존 확인 및 설정 방법
3.2. 타임존 변환 방법
3.2.1. WITH TIME ZONE 사용
3.2.2. WITHOUT TIME ZONE
3.3. sysdate 변환
3.3.1. sysdate 변환 방법 제안
3.3.2. 테스트 요약
3.3.3. 상세 테스트 결과
CHAPTER 4 조인
4.1. 이너조인(INNER JOIN)
4.2. 아우터조인(OUTER JOIN)
CHAPTER 5 분석함수
5.1. 분석함수 기본 문법
5.1.1. WINDOWING 절
5.2. 다양한 분석함수
5.2.1. ROW_NUMBER
5.2.2. RANK와 DENSE_RANK
5.2.3. LEAD와 LAG
5.2.4. LISTAGG, STRING_AGG, ARRAY_AGG
5.2.5. CUME_DIST
5.2.6. PERCENT_RANK
5.2.7. NTILE
5.2.8. FIRST_VALUE, LAST_VALUE
5.2.9. NTH_VALUE
CHAPTER 6 SQL 활용
6.1. 조인업데이트
6.1.1. 오라클의 조인업데이트
6.1.2. PostgreSQL의 조인업데이트
6.2. DML을 포함한 WITH절
6.2.1. 기본적인 WITH DML 구문
6.2.2. WITH DML을 이용한 MULTI TABLE INSERT
6.2.3. WITH DML을 이용한 UPSERT
6.2.4. ON CONFLICT를 사용한 제약 조건 처리
6.3 LATERAL
6.3.1. 오라클에서 LATERAL 사용
6.3.2. PostgreSQL에서 LATERAL 사용
6.3.3. LEFT OUTER JOIN LATERAL
6.4. 기타 SQL 사용법
6.4.1. WHERE rownum = 1 변환
6.4.2. 원하는 건수의 임시 집합 만들기
6.4.3. 시퀀스 NEXTVAL 호출
6.4.4. SELECT절에 NOT EXISTS, EXIST 사용(PostgreSQL)
6.4.5. FILTER 구문 사용(PostgreSQL)
6.4.6. IS DISTINCT FROM
6.4.7. DISTINCT ON
CHAPTER 7 계층 데이터 조회
7.1. 계층 데이터 모델
7.2. 오라클의 CONNECT BY 구문 작동 원리
7.2.1. START WITH 절
7.2.2. 계층 데이터 연결
7.2.3. 순방향 전개와 역방향 전개
7.2.4. 데이터 필터링
7.2.5. 계층 쿼리 결과 정렬하기
7.2.6. 기타 사용 가능 칼럼
7.2.7. 오류 데이터로 인한 무한 루프 처리
7.2.8. CATEGORY FULL PATH 출력
7.3. Recursive Subquery Factoring
7.3.1. Recursive Subquery Factoring 기초 문법
7.3.2. Recursive Subquery Factoring 동작 방식
7.3.3. Recursive Subquery Factoring 레벨 우선 정렬
7.3.4. Recursive Subquery Factoring 계층 우선 정렬
7.3.5. CONNECT_BY_ISLEAF, CONNECT_BY_ROOT, SYS_CONNECT_BY_PATH 값 만들기
7.3.6. Recursive Subquery Factoring 무한 루프(cycle) 데이터 처리
7.3.7. Recursive Subquery Factoring을 이용한 계층 누적합 계산
CHAPTER 8 PostgreSQL SQL 작성 가이드(참고용)