도서 소개

이제 막 데이터베이스에 입문한 당신을 위한 새로운 교과서!

Oracle, PostgreSQL, SQL Server, MySQL, DB2에서의 SQL을 한 권으로 배운다!


이 책은 철저히 초보자의 관점에서 데이터베이스란 무엇인지부터 시작해서 SQL 활용 방법까지 점진적으로 설명하고 있다. 이 책의 또 다른 장점은 이 책 한 권으로 모든 주요 데이터베이스에 적용 가능한 SQL을 익힐 수 있다는 것이다. 이 책은 표준 SQL을 중심으로 오픈 소스인 MySQL, PostgreSQL뿐만 아니라 상용 제품인 DB2, SQL Server, Oracle용 SQL 작성법까지 다루고 있다.


이 책은 초보자라도 무리 없이 프로그래밍 능력을 배양할 수 있도록 기획되었다. 자습서로는 물론 대학교, 전문대학, 직업학교의 교재 및 기업에서의 신입 연수 교재로도 사용할 수 있도록 작성되어 있다. 다양한 샘플 코드와 자세한 실행 순서를 기재하고 있어서 학습자 각자가 직접 구체적인 문제를 풀어나감으로써 프로그래밍 능력을 착실히 향상시킬 수 있을 것이다.


이 책의 대상 독자는 다음과 같다.

  • 데이터베이스나 SQL 관련 지식이 전혀 없는 사람
  • 혼자 힘으로 SQL을 익혔지만 체계적이고 제대로 된 S QL을 공부하고 싶은 사람
  • 데이터베이스를 사용해야 하지만 어디부터 손을 대야 할지 막막한 사람
  • 대학, 전문대학, 기업 등에서 QSL을 가르쳐야 하는 사람
  • 정보처리 시험을 준비하면서 SQL을 공부해야 하는 사람

부록 CD: Windows용 PostgreSQL 인스톨러, 연습문제 해답, 본문 샘플 예제 수록


지은이 소개

미크(ミック)

SI 회사에 근무하는 데이터베이스 엔지니어이며, 주로 DWH/BI 업무를 담당하고 있다. 직접 운영하고 있는 사이트인 ‘데이터베이스 세계’에서 데이터베이스와 SQL 관련 기술 정보를 공개하고 있다. Code Zine(http://codezine.jp)에 SQL 관련 기사를 다수 작성하였으며, 《WEB+DB PRESS》에서는 연재 기사 ‘SQL 아카데미’, ‘DB 아카데미’를 기고했다. 저서로는 《프로에게 배우는 SQL 철저 지침서(達人に学ぶSQL 徹底指南書)》(쇼에이 출판사, 2008)가 있다.


옮긴이 소개

김완섭 

네덜란드 ITC에서 GIS(지리정보시스템) 연계 재난재해 관리학(석사)을 전공했다. 약 9년간 한국 및 일본 대기업에서 다양한 IT 분야 업무를 담당했다. 일본에서는 시스템 엔지니어로 5년간 근무했으며, 일본 대기업 세콤(SECOM) 계열사인 파스코에서 외무성, 국토지리정보원 등 일본 정부 기관을 대상으로 한 시스템 통합S(I) 업무를 담당했다. 이후 야후재팬으로 직장을 옮겨 야후맵 개발 담당 시니어 엔지니어로 근무하다 2010년 귀국하여 SK에서 내비게이션 데이터 담당 매니저로 근무했다. 저서로는 《나는 도쿄 롯폰기로 출근한다》가 있으며, 역서로는 《빅 데이터 시대의 하둡 완벽 입문》, 《웹 서비스 개발 철저 공략》, 《코딩을 지탱하는 기술》, 《따라하며 배우는 서버 부하분산 입문》이 있다.


차례

1장 데이터베이스와 SQL 1

1-1 데이터베이스란 무엇인가? 3

    우리들 주변에 있는 데이터베이스 3

    왜 DBMS가 필요한 걸까? 5

    왜 다양한 종류의 DBMS가 존재하는 걸까? 6

1-2 데이터베이스 구성 9

    RDBMS의 일반적인 시스템 구성 9

    테이블 구조 11

1-3 SQL 개요 14

    표준 SQL 14

    SQL 문과 그 종류 15

    SQL의 기본적인 작성 규칙 16

1-4 테이블 작성 20

    작성할 테이블 내용 20

    데이터베이스 작성(CREATE DATABASE 문) 21

    테이블 작성(CREATE TABLE 문) 21

    명명 규칙 23

    데이터형 지정 24

    제약 설정 26

1-5 테이블 삭제와 변경 28

    테이블 삭제(DROP TABLE 문) 28

    테이블 정의 변경(ALTER TABLE 문) 29

    Goods 테이블에 데이터 등록 31

연습문제 34

접기

2장 검색의 기본 35

2-1 SELECT 문의 기본 37

    열을 출력한다 37

    모든 열을 출력한다 39

    열에 별명을 부여하자 41

    상수 출력 42

    결과에서 중복 행을 제거 43

    WHERE 구를 사용한 행 선택 45

    주석 작성법 48

2-2 산술 연산자와 비교 연산자 50

    산술 연산자 50

    NULL에는 주의가 필요하다 52

    비교 연산자 53

    문자열에 부등호를 사용할 때 주의사항 56

    NULL에 비교 연산자를 사용할 수 없다 59

2-3 논리 연산자 62

    NOT 연산자 62

    AND 연산자와 OR 연산자 64

    괄호를 사용하면 강해진다 67

    논리 연산자와 진릿값 69

    NULL을 포함하는 진릿값 71

연습문제 73


3장 집약과 정렬 75

3-1 테이블을 집약해서 검색한다 77

    집약 함수 77

    테이블 행 수를 계산한다 78

    NULL을 제외하고 행 수를 계산한다 79

    합계를 구한다 81

    평균값을 구한다 83

    최솟값, 최댓값을 구한다 84

    집약 함수 사용 시 중복값 제외(DISTINCT 키워드) 86

3-2 테이블을 그룹으로 나눈다 88

    GROUP BY 구 88

    집약 키에 NULL이 포함된 경우 90

    WHERE 구를 사용한 경우 GROUP BY 동작 92

    집약 함수와 GROUP BY 구를 사용할 때 자주하는 실수 93

3-3 집약한 결과에 조건을 지정한다 99

    HAVING 구 99

    HAVING 구에 쓸 수 있는 요소 102

    HAVING 구보다 WHERE 구에 쓰는 것이 좋은 조건 103

3-4 검색 결과를 재정렬한다 106

    ORDER BY 구 106

    오름차순과 내림차순 지정 108

    복수의 소트 키를 지정한다 109

    NULL 순서 110

    소트 키에 표시용 별명을 사용한다 111

    ORDER BY 구에 사용할 수 있는 열 112

    열 번호를 사용해선 안 된다 114

연습문제 116


4장 데이터 갱신 117

4-1 데이터 등록(INSERT 문 사용법) 119

    INSERT란? 119

    INSERT 문 기본 구문 120

    열 리스트 생략 123

    NULL을 삽입한다 124

    기본값을 삽입한다 124

    다른 테이블에서 데이터를 복사한다 127

4-2 데이터 삭제(DELETE 문 사용법) 130

    DROP TABLE 문과 DELETE 문 130

    DELETE 문 기본 구문 131

    삭제 대상을 제한하는 DELETE 문 132

4-3 데이터 갱신(UPDATE 문 사용법) 135

    UPDATE 문 기본 구문 135

    조건을 지정한 UPDATE 문(탐색형 UPDATE) 137

    NULL로 갱신하려면 138

    복수 열 갱신 139

4-4 트랜잭션 141

    트랜잭션이란 무엇인가? 141

    트랜잭션을 만들려면 142

    ACID 특성 148

연습문제 151


5장 복잡한 질의 153

5-1 뷰 155

    뷰와 테이블 155

    뷰 작성 방법 157

    뷰 제약사항 ① ―― 뷰 정의에 ORDER BY 구는 사용할 수 없다 161

    뷰 제약사항 ② ―― 뷰 갱신 162

    뷰 삭제 166

5-2 서브쿼리 168

    서브쿼리와 뷰 168

    서브쿼리 이름 171

    스칼라 서브쿼리 172

    스칼라 서브쿼리를 쓸 수 있는 곳 175

    스칼라 서브쿼리 사용 시 주의점 176

5-3 상관 서브쿼리 178

    일반 서브쿼리와 상관 서브쿼리의 차이점 178

    상관 서브쿼리도 결국 집합을 나누고 있다 181

    결합 조건은 반드시 서브쿼리 안에 기술 183

연습문제 185


6장 함수, 술어, CASE 식 187

6-1 다양한 함수 189

    함수 종류 189

    산술 함수 190

    문자열 함수 195

    날짜 함수 203

    변환 함수 208

6-2 술어 212

    술어란? 212

    LIKE 술어 ―― 문자열 부분 일치 검색 213

    BETWEEN 술어 ―― 범위 검색 217

    IS NULL, IS NOT NULL ―― NULL 또는 비NULL 판정 218

    IN 술어 ―― OR의 간략 버전 219

    IN 술어의 인수로 서브쿼리를 지정한다 220

    EXISTS 술어 226

6-3 CASE 식 231

    CASE 식이란? 231

    CASE 식 구문 231

    CASE 식 사용법 233

연습문제 239


7장 집합 연산 241

7-1 테이블 덧셈과 뺄셈 243

    집합 연산이란? 243

    테이블 덧셈 ―― UNION 243

    집합 연산의 주의사항 246

    중복 행을 포함하는 집합 연산 ―― ALL 옵션 247

    테이블 간 공통 부분 선택 ―― INTERSECT 248

    레코드 뺄셈 ―― EXCEPT 249

7-2 결합(테이블을 열 지향으로 연결한다) 253

    결합이란? 253

    내부 결합 ―― INNER JOIN 254

    외부 결합 ―― OUTER JOIN 260

    세 개 이상의 테이블을 사용한 결합 263

    크로스 결합 ―― CROSS JOIN 266

    결합 개별 구문과 옛날 구문 270

연습문제 275


8장 SQL 고급 처리 277

8-1 윈도우 함수 279

    윈도우 함수란? 279

    윈도우 함수 구문 280

    구문의 기본적인 사용법 ―― RANK 함수 이용 281

    PARTITION BY를 지정하지도 않아도 된다 283

    윈도우 전용 함수 종류 284

    윈도우 함수는 어디에 사용할 수 있나? 286

    집약 함수를 윈도우 함수로 사용 287

    이동 평균을 산출한다 288

    두 가지 ORDER BY 292

8-2 GROUPING 연산자 294

    합계 행도 함께 구하고 싶다 294

    ROLLUP ―― 합계와 소계를 한 번에 구한다 296

    GROUPING 함수 ―― 가짜 NULL을 알아내라 300

    CUBE 데이터로 블록을 만든다 303

    GROUPING SETS ―― 원하는 블록만 취득한다 305

연습문제 307


부록 A PostgreSQL 설치 309

부록 B PostgreSQL에서 SQL을 실행하는 방법 318

부록 C 연습문제 해답 325

찾아보기 335 

접기

 


0개의 상품이 있습니다.



전체선택 장바구니에 담기

전체선택 장바구니에 담기

0개의 상품이 있습니다.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기