編輯推薦
適讀人群 :本書適閤數據庫和SQL語言的初學者閱讀,也可作為大中專院校的教材及企業新人培訓用書。 zi深數據庫工程師寫給初學者的實用指南!
107張圖錶+209段代碼+88個法則,菜鳥進階bi備!
基於標準SQL編寫,明示各RDBMS(PostgreSQL DB2 MySQL Oracle SQL Server)的差異!
1.暢銷書全新升級,內容更新更全麵!
第1版豆瓣評分8.8分,重印13次,好評如潮。第2版基於新版本RDBMS全麵升級,並新增一章介紹從應用程序執行SQL語句的方法。
2.由淺入深,結構清晰,真正適閤初學者!
從數據庫、錶的結構到查詢、更新錶的語法,常用的函數,錶的聯結等,內容逐步深入。對於初學者常見的疑難點,均通過專欄進行講解。各章節後精心設計瞭練習題,幫助讀者鞏固理解。
3.雙色印刷,排版獨特,讓你讀起來不纍!
雙色印刷賞心悅目,“學習重點”“KEYWORD”“備忘”“法則”“專欄”等各種小模塊幫你梳理知識點,讓學習過程事半功倍。
內容簡介
本書是暢銷書《SQL基礎教程》第2版,介紹瞭關係數據庫以及用來操作關係數據庫的SQL語言的使用方法。書中通過豐富的圖示、大量示例程序和詳實的操作步驟說明,讓讀者循序漸進地掌握SQL的基礎知識和使用技巧,切實提高編程能力。每章結尾設置有練習題,幫助讀者檢驗對各章內容的理解程度。另外,本書還將重要知識點總結為“法則”,方便讀者隨時查閱。第2版除瞭將示例程序更新為對應*新的DB的SQL之外,還新增瞭一章,介紹如何從應用程序執行SQL。
作者簡介
MICK(作者)
日本zi深數據庫工程師,就職於SI企業,緻力於商業智能和數據倉庫的開發。為CodeZine(http: codezine.jp)及IT雜誌WEB+DB PRESS撰寫技術文章。著作有《跟達人學SQL》《跟達人學DB設計》,是Joe Celko's SQL Puzzles and Answers,Second Edition、Joe Celko's SQL for Smarties,Fourth Edition: Advanced SQL Programming的日文版的譯者。
孫淼(譯者)
從事對日軟件設計和研發工作十餘年,曾於2007年至2009年赴日學習工作,2015年至今再次長期赴日工作。精通應用Java、PHP進行Web框架的設計開發,並且有Oracle、Teradata、MySQL、NoSQL等多種數據庫的設計開發經驗。樂於品味生活細微的點滴,熱衷於品嘗和製作美食。譯有《SQL基礎教程》等。
羅勇(譯者)
從事對日軟件設計和研發工作十餘年,曾多次赴日學習工作,目前就職於日本某大型企業。癡迷於技術和框架的研究,多次參與項目的需求分析、概要設計,精通多語言的Web框架和數據庫的設計開發。業餘愛好足球,和傢人旅行。譯有《SQL基礎教程》《NoSQL數據庫入門》《明解C語言》等。
目錄
第0章 緒論——搭建SQL的學習環境 1
0-1 PostgreSQL的安裝和連接設置 3
安裝步驟 3
修改設置文件 7
0-2 通過PostgreSQL執行SQL語句 9
連接PostgreSQL(登錄) 9
執行SQL語句 10
創建學習用的數據庫 11
連接學習用的數據庫(登錄) 12
第1章 數據庫和SQL 13
1-1 數據庫是什麼 15
我們身邊的數據庫 15
為什麼DBMS那麼重要 16
DBMS的種類 18
1-2 數據庫的結構 20
RDBMS的常見係統結構 20
錶的結構 22
1-3 SQL概要 25
標準SQL 25
SQL語句及其種類 26
SQL的基本書寫規則 27
1-4 錶的創建 30
錶的內容的創建 30
數據庫的創建(CREATE DATABASE語句) 31
錶的創建(CREATE TABLE語句) 31
命名規則 33
數據類型的指定 34
約束的設置 35
1-5 錶的刪除和更新 37
錶的刪除(DROP TABLE語句) 37
錶定義的更新(ALTER TABLE語句) 38
嚮Product錶中插入數據 39
練習題 42
第2章 查詢基礎 43
2-1 SELECT語句基礎 45
列的查詢 45
查詢齣錶中所有的列 47
為列設定彆名 48
常數的查詢 50
從結果中刪除重復行 50
根據WHERE語句來選擇記錄 53
注釋的書寫方法 55
2-2 算術運算符和比較運算符 57
算術運算符 57
需要注意NULL 58
比較運算符 60
對字符串使用不等號時的注意事項 62
不能對NULL使用比較運算符 65
2-3 邏輯運算符 68
NOT運算符 68
AND運算符和OR運算符 70
通過括號強化處理 72
邏輯運算符和真值 74
含有NULL時的真值 76
練習題 78
第3章 聚閤與排序 79
3-1 對錶進行聚閤查詢 81
聚閤函數 81
計算錶中數據的行數 82
計算NULL之外的數據的行數 83
計算閤計值 84
計算平均值 86
計算最大值和最小值 87
使用聚閤函數刪除重復值(關鍵字DISTINCT) 89
3-2 對錶進行分組 91
GROUP BY子句 91
聚閤鍵中包含NULL的情況 93
使用WHERE子句時GROUP BY的執行結果 94
與聚閤函數和GROUP BY子句有關的常見錯誤 96
3-3 為聚閤結果指定條件 101
HAVING子句 101
HAVING子句的構成要素 104
相對於HAVING子句,更適閤寫在WHERE子句中的條件 105
3-4 對查詢結果進行排序 108
ORDER BY子句 108
指定升序或降序 110
指定多個排序鍵 111
NULL的順序 111
在排序鍵中使用顯示用的彆名 112
ORDER BY子句中可以使用的列 114
不要使用列編號 114
練習題 116
第4章 數據更新 117
4-1 數據的插入(INSERT語句的使用方法) 119
什麼是INSERT 119
INSERT語句的基本語法 120
列清單的省略 123
插入NULL 123
插入默認值 124
從其他錶中復製數據 126
4-2 數據的刪除(DELETE語句的使用方法) 129
DROP TABLE語句和DELETE語句 129
DELETE語句的基本語法 129
指定刪除對象的DELETE語句(搜索型DELETE) 130
4-3 數據的更新(UPDATE語句的使用方法) 133
UPDATE語句的基本語法 133
指定條件的UPDATE語句(搜索型UPDATE) 134
使用NULL進行更新 135
多列更新 136
4-4 事務 138
什麼是事務 138
創建事務 139
ACID特性 144
練習題 145
第5章 復雜查詢 147
5-1 視圖 149
視圖和錶 149
創建視圖的方法 151
視圖的限製① ——定義視圖時不能使用ORDER BY子句 154
視圖的限製② ——對視圖進行更新 155
刪除視圖 159
5-2 子查詢 160
子查詢和視圖 160
子查詢的名稱 163
標量子查詢 163
標量子查詢的書寫位置 166
使用標量子查詢時的注意事項 167
5-3 關聯子查詢 168
普通的子查詢和關聯子查詢的區彆 168
關聯子查詢也是用來對集閤進行切分的 171
結閤條件一定要寫在子查詢中 172
練習題 173
第6章 函數、謂詞、CASE錶達式 175
6-1 各種各樣的函數 177
函數的種類 177
算術函數 178
字符串函數 182
日期函數 190
轉換函數 194
6-2 謂詞 198
什麼是謂詞 198
LIKE謂詞——字符串的部分一緻查詢 198
BETWEEN謂詞——範圍查詢 202
IS NULL、IS NOT NULL——判斷是否為NULL 203
IN謂詞——OR的簡便用法 204
使用子查詢作為IN謂詞的參數 205
EXIST謂詞 210
6-3 CASE錶達式 214
什麼是CASE錶達式 214
CASE錶達式的語法 214
CASE錶達式的使用方法 215
練習題 221
第7章 集閤運算 223
7-1 錶的加減法 225
什麼是集閤運算 225
錶的加法——UNION 225
集閤運算的注意事項 228
包含重復行的集閤運算——ALL選項 229
選取錶中公共部分——INTERSECT 230
記錄的減法——EXCEPT 231
7-2 聯結(以列為單位對錶進行聯結) 234
什麼是聯結 234
內聯結——INNER JOIN 235
外聯結——OUTER JOIN 240
3張以上的錶的聯結 243
交叉聯結——CROSS JOIN 246
聯結的特定語法和過時語法 249
練習題 254
第8章 SQL高級處理 255
8-1 窗口函數 257
什麼是窗口函數 257
窗口函數的語法 258
語法的基本使用方法——使用RANK函數 258
無需指定PARTITION BY 261
專用窗口函數的種類 262
窗口函數的適用範圍 263
作為窗口函數使用的聚閤函數 264
計算移動平均 266
兩個ORDER BY 269
8-2 GROUPING運算符 271
同時得到閤計行 271
ROLLUP——同時得齣閤計和小計 272
GROUPING函數——讓NULL更加容易分辨 277
CUBE——用數據來搭積木 279
GROUPING SETS——取得期望的積木 281
練習題 282
第9章 通過應用程序連接數據庫 283
9-1 數據庫世界和應用程序世界的連接 285
數據庫和應用程序之間的關係 285
驅動——兩個世界之間的橋梁 286
驅動的種類 287
9-2 Java基礎知識 289
第一個程序Hello,World 289
編譯和程序執行 291
常見錯誤 294
9-3 通過Java連接PostgreSQL 298
執行SQL語句的Java程序 298
Java是如何從數據庫中獲取數據的呢 299
執行連接數據庫的程序 301
選取錶中的數據 302
更新錶中的數據 305
小結 307
練習題 307
附錄 練習題答案 308
SQL基礎教程 第2版 下載 mobi epub pdf txt 電子書