본문 바로가기

다독다독

[IT도서] SQL 쿡북 리뷰 (부제 : SQL문 백과사전)

개발자라면 SQL문은 필수다

DB와 SQL문에 대해서 정확히 배우지는 않았지만 개발을 하게된다면

자연스럽게 알게될 (필수로 알아야 할과 같은 말ㅎ) SELECT, UPDATE, DELETE 등등의 DML, DDL 문들...

 

회사에 들어가면서 오라클 프로시저를 사용하게 되었고 SQL문의 다양한 쓰임을 보고 놀랐더랬다

솔직히 학생때 해봤자 뭐하겠음.....?

 

복잡한 SQL문의 세상을 보고 "와 원하는 데이터를 뽑기 위해서는 머리를 엄청 써야하는구나" 라고 생각했다

하나 잘못 써도 엉뚱한 데이터가 나오고 여러 조건들이 붙게 되면 머리가 하얘진다

여기서 이제 여러 테이블을 가져오게 된다면....?

이제 머리 터지는거다(っ °Д °;)っ

땀흘리는거다ㅎ

 

쨌든 초보 개발자는 사내의 프로시저를 보고 기겁한 뒤 SQL문을 공부해야겠다 생각했고,

공부해야겠다 생각해서 SQLD를 땄고 그리고 2년이 흘렀다

 

그리고 까먹었다ㅎ

(다른거 공부하느라 그랬다고 하자ㅠ)

 

 

그리고 한빛미디어 나는 리뷰어다 활동을 통해 SQL 공부 좀 해봐야겠다 하고 책을 신청!

 

우선 O'Reilly 책,,,,을 갖게된 건 처음이다

IT업계 종사자라면 한번쯤은 봤었을 동물책

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

나에겐 처음이였던 오레일리 책인데 좋은 인상을 남겼다!

항상 무거운 주제와 영문번역서라는 괜한 오해에 건들지 않았었나 싶기도 하고?

 

우선 이 책은 목차를 보면 알겠지만

기초부터 실무적인 영역까지 다양한 SQL문 예시를 보여준다;

 

WHERE 절에서 별칭이 지정된 열 참조하기 

최댓값과 최솟값을 배제한 평균 계산하기

결과셋을 한 열로 역피벗하기

등등 다양한 주제가 있다.

 

부제로 내가 백과사전이라 한 이유임

이런 데이터 어떻게 뽑을까 싶으면 그냥 목차보고 참고하면 될 것같음

 

그리고 좋았던 건 ORACLE, SQL Server, DB2, PostgreSQL 등 나눠서 어떻게 쓰면 되는지 알려주는 점이다.

 

SQL문은 각자 쓰는 함수도 다르고 표현하는 방법도 달라서 가끔 애를 먹는데 이렇게 정리되어 있어 

한 번에 알수 있다는 점은 정말 좋다

(백과사전;;; 정말로)

 

 

이렇게 한번 SQL문 돌리고 나면 기초는 튼튼하게 잡혀있을듯 하다!

그리고 다른 SQL문을 쓰게 되더라도 백과사전처럼 바로 찾을 수 있다는 점이 정말 큰 장점!

 

 

 

참고하시라고 목차!

(책은 원래 목차 꼭 확인하고 사야함)


CHAPTER 1 레코드 검색

1.1 테이블의 모든 행과 열 검색하기

1.2 테이블에서 행의 하위 집합 검색하기 

1.3 여러 조건을 충족하는 행 찾기 

1.4 테이블에서 열의 하위 집합 검색하기 

1.5 열에 의미 있는 이름 지정하기 

1.6 WHERE 절에서 별칭이 지정된 열 참조하기 

1.7 열 값 이어 붙이기 

1.8 SELECT 문에서 조건식 사용하기 

1.9 반환되는 행 수 제한하기 

1.10 테이블에서 n개의 무작위 레코드 반환하기

1.11 null 값 찾기

1.12 null을 실젯값으로 변환하기

1.13 패턴 검색하기

1.14 마치며

 

CHAPTER 2 쿼리 결과 정렬

2.1 지정한 순서대로 쿼리 결과 반환하기

2.2 다중 필드로 정렬하기

2.3 부분 문자열로 정렬하기

2.4 혼합 영숫자 데이터 정렬하기

2.5 정렬할 때 null 처리하기

2.6 데이터 종속 키 기준으로 정렬하기

2.7 마치며

 

CHAPTER 3 REST 다중 테이블 작업

3.1 행 집합을 다른 행 위에 추가하기

3.2 연관된 여러 행 결합하기

3.3 두 테이블의 공통 행 찾기

3.4 한 테이블에서 다른 테이블에 존재하지 않는 값 검색하기

3.5 다른 테이블 행과 일치하지 않는 행 검색하기

3.6 다른 조인을 방해하지 않고 쿼리에 조인 추가하기

3.7 두 테이블에 같은 데이터가 있는지 확인하기

3.8 데카르트 곱 식별 및 방지하기

3.9 집계를 사용할 때 조인 수행하기

3.10 집계 시 외부 조인 수행하기

3.11 여러 테이블에서 누락된 데이터 반환하기 

3.12 연산 및 비교에서 null 사용하기

3.13 마치며

 

CHAPTER 4 삽입, 갱신 및 삭제하기

4.1 새로운 레코드 삽입하기

4.2 기본값 삽입하기

4.3 null로 기본값 오버라이딩하기

4.4 한 테이블에서 다른 테이블로 행 복사하기

4.5 테이블 정의 복사하기

4.6 한 번에 여러 테이블에 삽입하기

4.7 특정 열에 대한 삽입 차단하기

4.8 테이블에서 레코드 수정하기

4.9 일치하는 행이 있을 때 업데이트하기

4.10 다른 테이블 값으로 업데이트하기

4.11 레코드 병합하기

4.12 테이블에서 모든 레코드 삭제하기

4.13 특정 레코드 삭제하기

4.14 단일 레코드 삭제하기

4.15 참조 무결성 위반 삭제하기

4.16 중복 레코드 삭제하기

4.17 다른 테이블에서 참조된 레코드 삭제하기

4.18 마치며

 

CHAPTER 5 메타 데이터 쿼리

5.1 스키마의 테이블 목록 보기

5.2 테이블의 열 나열하기

5.3 테이블의 인덱싱된 열 나열하기

5.4 테이블의 제약조건 나열하기

5.5 관련 인덱스가 없는 외래 키 나열하기

5.6 SQL로 SQL 생성하기

5.7 Oracle에서 데이터 딕셔너리 뷰 확인하기

5.8 마치며

 

CHAPTER 6 문자열 작업

6.1 문자열 짚어보기

6.2 문자열에 따옴표 포함하기

6.3 문자열에서 특정 문자의 발생 횟수 계산하기

6.4 문자열에서 원하지 않는 문자 제거하기

6.5 숫자 및 문자 데이터 분리하기

6.6 문자열의 영숫자 여부 확인하기

6.7 이름에서 이니셜 추출하기

6.8 문자열 일부를 정렬하기

6.9 문자열의 숫자로 정렬하기

6.10 테이블 행으로 구분된 목록 만들기

6.11 구분된 데이터를 다중값 IN 목록으로 변환하기

6.12 문자열을 알파벳 순서로 정렬하기

6.13 숫자로 취급할 수 있는 문자열 식별하기

6.14 n번째로 구분된 부분 문자열 추출하기

6.15 IP 주소 파싱하기

6.16 소리로 문자열 비교하기

6.17 패턴과 일치하지 않는 텍스트 찾기

6.18 마치며

 

CHAPTER 7 숫자 작업

7.1 평균 계산하기

7.2 열에서 최댓값, 최솟값 찾기

7.3 열의 값 집계하기

7.4 테이블의 행 수 계산하기

7.5 열의 값 세어보기

7.6 누계 생성하기

7.7 누적곱 생성하기

7.8 일련의 값 평활화하기

7.9 최빈값 계산하기

7.10 중앙값 계산하기

7.11 총계에서의 백분율 알아내기

7.12 null 허용 열 집계하기

7.13 최댓값과 최솟값을 배제한 평균 계산하기

7.14 영숫자 문자열을 숫자로 변환하기

7.15 누계에서 값 변경하기

7.16 중위절대편차로 특잇값 찾기

7.17 벤포드의 법칙으로 이상 징후 찾기

7.18 마치며

 

CHAPTER 8 날짜 산술

8.1 일, 월, 연도 가감하기

8.2 두 날짜 사이의 일수 알아내기

8.3 두 날짜 사이의 영업일수 알아내기

8.4 두 날짜 사이의 월 또는 년 수 알아내기

8.5 두 날짜 사이의 시, 분, 초 알아내기

8.6 1년 중 평일 발생 횟수 계산하기

8.7 현재 레코드와 다음 레코드 간의 날짜 차이 알아내기

8.8 마치며

 

CHAPTER 9 날짜 조작기법

9.1 연도의 윤년 여부 결정하기

9.2 연도의 날짜 수 알아내기

9.3 날짜에서 시간 단위 추출하기

9.4 월의 첫 번째 요일과 마지막 요일 알아내기

9.5 연도의 특정 요일의 모든 날짜 알아내기

9.6 월의 특정 요일의 첫 번째 및 마지막 발생일 알아내기

9.7 달력 만들기

9.8 해당 연도의 분기 시작일 및 종료일 나열하기

9.9 지정 분기의 시작일 및 종료일 알아내기

9.10 누락된 날짜 채우기

9.11 특정 시간 단위 검색하기

9.12 날짜의 특정 부분으로 레코드 비교하기

9.13 중복 날짜 범위 식별하기

9.14 마치며

 

CHAPTER 10 범위 관련 작업하기

10.1 연속 값의 범위 찾기

10.2 같은 그룹 또는 파티션의 행 간 차이 찾기

10.3 연속 값 범위의 시작과 끝 찾기

10.4 값 범위에서 누락된 값 채우기

10.5 연속된 숫자값 생성하기

10.6 마치며

 

CHAPTER 11 고급 검색

11.1 결과셋을 페이지로 매기기

11.2 테이블에서 n개 행 건너뛰기

11.3 외부 조인을 사용할 때 OR 로직 통합하기

11.4 역수 행 확인하기

11.5 상위 n개 레코드 선택하기

11.6 최댓값과 최솟값을 가진 레코드 찾기

11.7 이후 행 조사하기

11.8 행 값 이동하기

11.9 순위 결과

11.10 중복 방지하기

11.11 기사값 찾기

11.12 간단한 예측 생성하기

11.13 마치며

 

CHAPTER 12 보고서 작성과 재구성하기

12.1 결과셋을 하나의 행으로 피벗하기

12.2 결과셋을 여러 행으로 피벗하기

12.3 결과셋 역피벗하기

12.4 결과셋을 한 열로 역피벗하기

12.5 결과셋에서 반복값 숨기기

12.6 행 간 계산하는 결과셋 피벗하기

12.7 고정 크기의 데이터 버킷 생성하기

12.8 사전 정의된 수의 버킷 생성하기

12.9 수평 히스토그램 생성하기

12.10 수직 히스토그램 생성하기

12.11 비 GROUP BY 열 반환하기

12.12 단순 소계 계산하기

12.13 가능한 모든 식 조합의 소계 계산하기

12.14 소계가 아닌 행 식별하기

12.15 Case 표현식으로 행 플래그 지정하기

12.16 희소행렬 만들기

12.17 시간 단위로 행 그룹화하기

12.18 여러 그룹/파티션 집계를 동시 수행하기

12.19 값의 이동 범위에 대한 집계 수행하기

12.20 소계를 사용한 결과셋 피벗하기

12.21 마치며

 

CHAPTER 13 계층적 쿼리

13.1 상위-하위 관계 표현하기

13.2 자식-부모-조부모 관계 표현하기

13.3 테이블의 계층 뷰 생성하기

13.4 지정한 상위 행에 대한 모든 하위 행 찾기

13.5 리프, 분기, 루트 노드 행 확인하기

13.6 마치며

 

CHAPTER 14 기타 다양한 기법들

14.1 SQL Server의 PIVOT 연산자로 교차 분석 보고서 생성하기

14.2 SQL Server의 UNPIVOT 연산자로 교차 분석 보고서의 피벗 해제하기

14.3 Oracle의 MODEL 절로 결과셋 전송하기

14.4 고정되지 않은 위치에서 문자열 요소 추출하기

14.5 연간 일수 찾기(Oracle용 대체 해법)

14.6 영숫자 혼합 문자열 검색하기

14.7 Oracle에서 정수를 이진수로 변환하기

14.8 순위 결과셋 피벗하기

14.9 이중 피벗 결과셋에 열 머리글 추가하기

14.10 Oracle에서 스칼라 서브쿼리를 복합 서브쿼리로 변환하기

14.11 직렬화된 데이터를 행으로 구문 분석하기

14.12 합계에 대한 백분율 계산하기

14.13 그룹 내 값의 존재 여부 테스트하기

14.14 마치며

 

부록 A 윈도 함수 리프레셔  631

부록 B 공통 테이블 식  663

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

'다독다독 ' 카테고리의 다른 글

[IT도서] 이경오의 SQL+SQLD 비밀노트  (0) 2022.03.31
독서모임 다독다독  (0) 2020.02.25