快速念咒:MySQL入門指南與進(jìn)階實(shí)戰(zhàn)
定 價(jià):150 元
- 作者:彭宇奇
- 出版時(shí)間:2024/4/1
- ISBN:9787121476334
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.132.3
- 頁碼:404
- 紙張:
- 版次:01
- 開本:16開
在當(dāng)今社會,高效管理數(shù)據(jù)是一種思維方式,也是一種能力。越來越多的公司和崗位看重這一點(diǎn)。本書的核心理念是基于MySQL將學(xué)習(xí)數(shù)據(jù)管理的過程自然融入日常生活,使學(xué)習(xí)變得輕松,而不再是一項(xiàng)艱巨的任務(wù)。本書采用引入故事場景的方式來呈現(xiàn)SQL語句的適用情景,并以此來解釋其使用原理,幫助讀者更好地理解SQL語言的本質(zhì)。本書不僅是一本技術(shù)入門指南,也是一次走進(jìn)SQL世界的探索之旅,旨在為初學(xué)者提供全面、易于理解、實(shí)用的學(xué)習(xí)體驗(yàn)。
彭宇奇,資深數(shù)據(jù)分析師,新派技術(shù)書作者,擅長用打比方、講故事的形式來構(gòu)建技術(shù)框架,并解釋內(nèi)在原理。創(chuàng)作主旨是——盡量讓學(xué)習(xí)變得有趣和活潑,學(xué)習(xí)一項(xiàng)技術(shù)的最好方式,就是忘記我們正在學(xué)習(xí)它。技術(shù)之外,熱愛運(yùn)動(dòng)和音樂,離不開游泳、hiphop和摩托車。其實(shí)很多圖書創(chuàng)作靈感都源于看似與之毫不相干的事物和經(jīng)歷。施雯,90后插畫師,喜歡通過圖像與文字進(jìn)行表達(dá),享受沉浸其中的很安心、很有趣的感覺,希望以這種方式將更好的內(nèi)容傳遞給廣大讀者。
第1章 七嘴八舌聊SQL / 1
1.1 什么是SQL / 2
1.2 什么是數(shù)據(jù)庫 / 6
第2章 簡單檢索 / 16
2.1 基礎(chǔ)查詢:姻緣介紹所的聯(lián)絡(luò)清單 / 17
2.1.1 檢索整張表(通配符“*”) / 17
2.1.2 檢索整張表的限制 / 18
2.1.3 檢索特定列 / 19
2.1.4 理解表中的“列”與“行” / 20
2.1.5 關(guān)于SQL語句的書寫規(guī)范 / 21
2.2 對查詢結(jié)果排序:魚兒的大小和顏色 / 24
2.2.1 根據(jù)單列內(nèi)容排序 / 25
2.2.2 升序和降序 / 26
2.2.3 排序的必要性和原理 / 27
2.2.4 根據(jù)多列內(nèi)容排序 / 27
2.2.5 使用列別名排序 / 31
2.2.6 使用列編號排序 / 32
2.2.7 ORDER BY的其他使用事項(xiàng) / 33
2.3 LIMIT分頁語句:跳躍的青蛙 / 35
2.3.1 限制結(jié)果的輸出行數(shù) / 35
2.3.2 LIMIT的用法分析 / 36
2.3.3 淺談SQL語法 / 37
2.3.4 搭配LIMIT進(jìn)行數(shù)據(jù)更新 / 38
2.4 去掉重復(fù)的輸出行:唯一的組合值 / 39
2.4.1 使用DISTINCT / 39
2.4.2 對整張表去重沒有意義:初識主鍵 / 41
2.4.3 另一種去重的辦法:使用GROUP BY / 42
2.4.4 MySQL中列別名的特殊用法 / 43
2.4.5 如何在SQL語句中添加注釋 / 44
第3章 數(shù)據(jù)過濾與模糊查詢 / 46
3.1 基礎(chǔ)的數(shù)據(jù)過濾:酷似“蘇菲·瑪索”的女孩 / 47
3.1.1 初識WHERE從句 / 47
3.1.2 比較運(yùn)算符 / 49
3.1.3 理解空值 / 52
3.1.4 利用空值進(jìn)行過濾 / 53
3.1.5 使用BINARY區(qū)分過濾條件中的大小寫 / 53
3.2 使用邏輯操作符:挑選優(yōu)質(zhì)的巴爾干甜豆 / 55
3.2.1 操作符AND和OR / 55
3.2.2 AND和OR的執(zhí)行原理 / 58
3.2.3 組合查詢:UNION ALL與UNION / 59
3.2.4 再次理解AND和OR / 60
3.2.5 使用小括號改變連接對象 / 61
3.2.6 操作符IN和NOT / 65
3.2.7 課后閱讀:《膠囊時(shí)報(bào)》專欄采訪 / 66
3.3 模糊查詢:謂詞LIKE和正則表達(dá)式REGEXP / 67
3.3.1 模糊查詢的適用場景 / 67
3.3.2 得心應(yīng)手的百分號(%) / 69
3.3.3 專一的下畫線(_) / 71
3.3.4 讓特殊符號回歸符號本身(\\) / 72
3.3.5 正則表達(dá)式的一般使用場景 / 72
3.3.6 正則表達(dá)式的更多使用場景 / 73
第4章 顯示欄、CASE表達(dá)式與常用函數(shù) / 78
4.1 創(chuàng)建顯示欄:卡路奇歐的“貪婪美德” / 79
4.1.1 使用算術(shù)運(yùn)算符創(chuàng)建顯示欄 / 79
4.1.2 將MySQL當(dāng)作計(jì)算器 / 82
4.1.3 算術(shù)運(yùn)算符與空值:COALESCE函數(shù) / 83
4.1.4 創(chuàng)建拼接欄:“貓牌膠水”CONCAT函數(shù) / 84
4.2 神奇的變形咒語:CASE表達(dá)式 / 86
4.2.1 初識CASE表達(dá)式 / 87
4.2.2 CASE表達(dá)式的一般使用原理 / 89
4.2.3 不同的輸出形式和對應(yīng)效果 / 91
4.2.4 CASE表達(dá)式的規(guī)律總結(jié) / 95
4.3 千奇百怪的函數(shù):MySQL的生物多樣性 / 99
4.3.1 函數(shù)多樣性的原因 / 99
4.3.2 處理時(shí)間的函數(shù) / 100
4.3.3 處理字符串的函數(shù) / 104
4.3.4 處理數(shù)值的函數(shù) / 110
第5章 聚集函數(shù)、窗口函數(shù)與數(shù)據(jù)分組 / 115
5.1 使用聚集函數(shù):返回一組數(shù)據(jù)的各項(xiàng)指標(biāo) / 117
5.1.1 什么是聚集函數(shù) / 117
5.1.2 統(tǒng)計(jì)個(gè)數(shù)和統(tǒng)計(jì)行數(shù):COUNT函數(shù) / 117
5.1.3 COUNT(*)與COUNT(列名)的原理解釋 / 118
5.1.4 求和:SUM函數(shù) / 121
5.1.5 求均值:AVG函數(shù) / 122
5.1.6 求最大值與最小值:MAX函數(shù)和MIN函數(shù) / 123
5.2 GROUP BY數(shù)據(jù)分組:對數(shù)據(jù)進(jìn)行打包處理 / 123
5.2.1 數(shù)據(jù)分組的重要性 / 124
5.2.2 分組計(jì)算的產(chǎn)物與分組的原理 / 126
5.2.3 分組前的數(shù)據(jù)過濾:使用WHERE過濾行 / 129
5.2.4 指定多個(gè)分組依據(jù) / 130
5.2.5 配合使用WITH ROLLUP:貼心的小計(jì)與總計(jì) / 133
5.2.6 對空值分組:驗(yàn)證COUNT(列名)與COUNT(*) / 135
5.3 使用HAVING從句進(jìn)行過濾:“韋爾集團(tuán)”的大麻煩 / 137
5.3.1 分組后的數(shù)據(jù)過濾:使用HAVING過濾組 / 137
5.3.2 WHERE的不完美替代品 / 140
5.3.3 “三巨頭”的會面:同時(shí)使用WHERE、GROUP BY和HAVING / 141
5.4 窗口函數(shù):等級、累計(jì)與拆分 / 143
5.4.1 初識窗口函數(shù)語法 / 144
5.4.2 不一樣的ORDER BY / 146
5.4.3 非必要的PARTITION BY / 147
5.4.4 RANK、DENSE_RANK和ROW_NUMBER / 148
5.4.5 累計(jì)計(jì)算:將聚集函數(shù)用作窗口函數(shù) / 150
5.4.6 平移變動(dòng)的窗口:累計(jì)計(jì)算的拆分 / 154
第6章 復(fù)合查詢 / 158
6.1 利用子查詢進(jìn)行過濾:憂郁的薩茉莉公主 / 160
6.1.1 利用子查詢進(jìn)行過濾 / 160
6.1.2 利用子查詢過濾的關(guān)鍵思路及關(guān)聯(lián)的基礎(chǔ) / 162
6.1.3 普遍存在的“中間人” / 164
6.1.4 正序子查詢的書寫思路 / 166
6.1.5 完全限定列名 / 168
6.2 初識聯(lián)結(jié)的建立:拆分表的逆向操作 / 170
6.2.1 理解主鍵和外鍵 / 170
6.2.2 關(guān)聯(lián)的設(shè)定機(jī)制 / 173
6.2.3 使用WHERE建立聯(lián)結(jié) / 174
6.2.4 什么是笛卡兒積 / 175
6.2.5 等值行與不等值行 / 176
6.2.6 內(nèi)部聯(lián)結(jié)的語法 / 178
6.2.7 子查詢和聯(lián)結(jié)的區(qū)別 / 180
6.3 自聯(lián)結(jié)與自然聯(lián)結(jié):巧妙的復(fù)制 / 184
6.3.1 建立自聯(lián)結(jié):巧妙的復(fù)制 / 184
6.3.2 建立自然聯(lián)結(jié):不走尋常路的簡潔 / 192
6.4 外部聯(lián)結(jié):向左走,還是向右走 / 193
6.4.1 不同于以往的關(guān)聯(lián)大表 / 193
6.4.2 不同聯(lián)結(jié)方式的比較 / 198
6.5 關(guān)聯(lián)子查詢的建立:另一只看不見的手 / 201
6.5.1 標(biāo)量子查詢 / 202
6.5.2 利用關(guān)聯(lián)子查詢進(jìn)行過濾 / 203
6.5.3 關(guān)聯(lián)子查詢與一般子查詢的共性與區(qū)別 / 205
6.5.4 在檢索中使用子查詢 / 206
6.6 使用視圖:飄逸靈動(dòng)的膠片機(jī) / 208
6.6.1 利用子查詢進(jìn)行過濾的限制 / 208
6.6.2 從子查詢到視圖:在FROM語句中建立子查詢 / 210
6.6.3 創(chuàng)建視圖 / 211
6.6.4 更新視圖 / 213
6.6.5 靈活創(chuàng)建的數(shù)據(jù)集 / 215
6.6.6 刪除視圖 / 216
第7章 表的創(chuàng)建與數(shù)據(jù)更新 / 219
7.1 創(chuàng)建表:非凡藥劑師協(xié)會 / 220
7.1.1 考查數(shù)據(jù)源 / 220
7.1.2 進(jìn)行合理的數(shù)據(jù)拆分 / 221
7.1.3 表與列的命名規(guī)則 / 223
7.1.4 常用的數(shù)據(jù)類型 / 224
7.1.5 空值的指定 / 226
7.1.6 定義主鍵 / 227
7.1.7 選擇引擎 / 229
7.2 調(diào)整表及外鍵約束:先有雞,還是先有蛋 / 230
7.2.1 重命名表和刪除表 / 230
7.2.2 增加列、重命名列與刪除列 / 231
7.2.3 外鍵約束和定義外鍵 / 231
7.2.4 數(shù)據(jù)的完整性:合理的信息記錄 / 232
7.2.5 外鍵約束的后果 / 235
7.2.6 關(guān)聯(lián)表的層次關(guān)系:上游表和下游表 / 237
7.3 數(shù)據(jù)的插入:INSERT語句的使用 / 239
7.3.1 插入行的兩種方式 / 239
7.3.2 提供列清單的重要性 / 240
7.3.3 空值、默認(rèn)值和AUTO_INCREMENT的插入方式 / 240
7.3.4 同時(shí)插入多行數(shù)據(jù) / 242
7.3.5 在INSERT語句中使用子查詢:數(shù)據(jù)導(dǎo)入 / 243
7.4 數(shù)據(jù)的刪除:DELETE語句的使用 / 245
7.4.1 使用DELETE刪除特定行 / 245
7.4.2 刪除表中的所有行:MySQL中的安全模式 / 246
7.4.3 外鍵約束的開啟和關(guān)閉 / 247
7.4.4 在DELETE語句中使用子查詢 / 248
7.5 數(shù)據(jù)的替換:UPDATE語句的使用 / 249
7.5.1 修改數(shù)據(jù):替換已有數(shù)據(jù) / 250
7.5.2 增加數(shù)據(jù):替換空值 / 251
7.5.3 刪除數(shù)據(jù):用空值替換已有數(shù)據(jù) / 252
7.5.4 同時(shí)更新多列數(shù)據(jù) / 253
7.5.5 數(shù)據(jù)刪除方式匯總 / 254
7.6 使用事務(wù)處理:數(shù)據(jù)更新前服下的“后悔藥” / 256
7.6.1 初識事務(wù)處理:START TRANSACTION / 256
7.6.2 事務(wù)處理的本質(zhì) / 258
7.6.3 關(guān)閉事務(wù)處理的休止符:ROLLBACK和COMMIT / 258
7.6.4 使用保留點(diǎn):恰到好處的回滾方式 / 259
7.6.5 保留點(diǎn)的使用規(guī)范和釋放 / 263
第8章 觸發(fā)器與存儲過程 / 265
8.1 觸發(fā)器(上):“扣動(dòng)扳機(jī)”的正確姿勢 / 266
8.1.1 初識觸發(fā)器的安裝和使用 / 266
8.1.2 理解觸發(fā)器的觸發(fā)機(jī)制和執(zhí)行時(shí)機(jī) / 269
8.1.3 觸發(fā)器的應(yīng)用場景、類型與數(shù)量限制 / 269
8.1.4 初識觸發(fā)器中的“NEW”:目前沒有,但即將有 / 270
8.2 觸發(fā)器(下):忙碌的火車站送車員 / 274
8.2.1 初識觸發(fā)器中的“OLD”:目前有,但即將沒有 / 274
8.2.2 觸發(fā)器的功能限制 / 277
8.2.3 再談“NEW”和“OLD” / 278
8.2.4 觸發(fā)器的執(zhí)行失敗 / 281
8.3 存儲過程(上):麥克里尼的心病 / 284
8.3.1 初識存儲過程 / 284
8.3.2 初識參數(shù):關(guān)鍵詞IN / 288
8.3.3 再探參數(shù):關(guān)鍵詞OUT / 291
8.4 存儲過程(下):走出低谷 / 293
8.4.1 不一樣的調(diào)用形式 / 294
8.4.2 更加智能的存儲過程 / 297
8.4.3 什么是局部變量 / 301
第9章 不斷翻新的數(shù)據(jù)集 / 304
9.1 不等值行的妙用 / 305
9.2 關(guān)聯(lián)分析 / 312
9.3 在CASE表達(dá)式中使用聚集函數(shù) / 320
9.4 在聚集函數(shù)中使用CASE表達(dá)式 / 323
9.5 行列轉(zhuǎn)換:創(chuàng)建數(shù)據(jù)透視表 / 328
9.6 尋找中位數(shù) / 344
第10章 思考與練習(xí) / 354