第1 部分.初識MySQL.1
第1 章 MySQL 的概要 2
1.1 數據庫的概要 2
1.1.1 數據庫是什麼 2
1.1.2 關係數據庫是什麼 3
1.1.3 數據庫的特徵 4
1.2 MySQL 是什麼樣的數據庫 . 5
1.2.1 MySQL 是開源軟件 5
1.2.2 MySQL 的曆史 5
1.2.3 MySQL 的兩種版本 6
1.2.4 MySQL 的特徵 6
1.3 SQL 的概要 . 8
1.3.1 什麼是SQL 8
1.3.2 首先熟悉SELECT 命令 8
1.4 總結 . 9
第2 章 MySQL 10
2.1 本書中使用的應 10
專欄 XAMPP . 11
2.2 學習MySQL 前的準備(安裝和配置) 11
2.2.1 關於本書使用的MAMP. 11
12
專欄 如果文件的擴展名未. 12
2.2.3 MAMP 的啓動和設置16
專欄 什麼是localhost 19
2.2.4 確認開 19
2.2.5 構成MAMP 的文件夾 20
2.3 MySQL 的路徑設置 21
2.4 關於中文的設置 23
2.4.1 MySQL 的字符編碼設置. 24
2.4.2 修改my.ini . 24
2.5 本書中使用的錶 25
2.5.1 銷售信息錶tb(按員工號統計的月銷售額) 26
2.5.2 員工信息錶tb1(各員工號代錶的員工的姓名、年齡) 26
2.6 總結 27
專欄 關於macOS 版的MAMP 27
第2 部分.MySQL 的基礎知識.29
第3 章 MySQL 監視器 30
3.1 創建數據庫前的準備事項 30
3.2 什麼是MySQL 監視器 . 30
3.3 啓動MySQL 監視器 31
3.3.1 啓動終端軟件 31
3.3.2 啓動MySQL 監視器 . 32
專欄 命令提示符的UTF-8 設置 33
3.3.3 當MySQL 監視器無法啓動時 34
專欄 全角空格和半角空格. 34
3.3.4 確認MySQL 中字符編碼的設置情況 34
3.4 MySQL 監視器的退齣操作和密碼設置 35
3.4.1 退齣MySQL 監視器 . 35
3.4.2 使用曆史命令 36
3.4.3 安全地輸入密碼 36
專欄 mysql 命令的選項 37
3.5 設置MySQL 管理員root 的密碼 37
3.5.1 修改root 用戶的密碼 . 37
3.5.2 修改MAMP 的設置 38
3.5.3 修改phpMyAdmin 的設置 38
3.6 總結. 39
專欄 PowerShell 和命. 40
第4 章 創建數據庫. 41
4.1 創建數據庫. 41
4.1.1 創建數 41
專欄 在租賃服務器上使用MySQL . 42
4.2 確認創建的數據庫. 43
4.2.1 確認數據庫 43
4.2.2 test 和mysql 數據庫 44
4.3 指定使用的數據庫. 44
4.3.1 指定數據庫 44
專欄 選擇數據庫啓動MySQL 監視器 45
4.4 創建錶tb1 45
4.4.1 列和字段. 46
4.4.2 數據類型. 46
4.4.3 創建錶 46
專欄 使用`` 把數據庫名括起來 47
4.5 顯示所有的錶 47
4.5.1 顯示所有的錶 47
專欄 訪問其他數據庫 48
4.6 確認錶的列結構 49
4.6.1 確認錶的列結構. 49
專欄 特殊的SHOW 50
4.7 嚮錶中插入數據 50
4.7.1 插入數據. 50
4.7.2 嚮錶tb1 中添加第2 條記錄 52
4.7.3 指定列名插入記錄 53
4.7.4 一次性輸入記錄. 53
4.8 顯示數據 54
4.8.1 顯示數據. 54
4.9 (準備)復製錶tb1 56
4.10 總結 57
專欄 MySQL 的文檔. 59
第5 章 數據類型和數據輸入 60
5.1 什麼是數據類型 60
5.2 數值類型 61
5.2.1 數值類型的種類. 61
5.2. 62
5.3 字符串類型. 62
5.3.1 字符串類型的種類 62
5.3.2 輸入字符串 63
5.3.3 VARCHAR 和CHAR 的位數單位 63
5.4 日期與時間類型 63
5.4.1 日期與時間類型的種類. 63
5.4.2 輸入日期與時間類型的數據 64
專欄 修改提示符的字符串. 65
5.5 總結. 66
第6 章 修改錶 68
6.1 修改錶的列結構 68
6.1.1 ALTER TABLE 命令68
6.2 修改列的數據類型. 69
專欄 修改數據類型要慎重. 70
6.3 添加列 70
6.3.1 添加員工信息記錄 72
6.4 修改列的位置 73
6.4.1 把列添加到最前麵 73
6.4.2 把列添加到任意位置 74
6.4.3 修改列的順序 74
6.5 修改列名和數據類型 75
6.5.1 修改列的數據類型或位置的同時也修改列名. 75
6.6 刪除列 77
專欄 故意輸入超過指定數量的字符 78
6.7 設置主鍵 78
6.7.1 什麼是唯一 78
6.7.2 什麼是主鍵 79
6.7.3 創建主鍵. 79
6.7.4 確認主鍵. 80
6.7.5 設置唯一鍵 81
6.8 使列具有自動連續編號功能 82
6.8.1 具有自動連續編號功能的列的定義 82
6.8.2 創建具有自動連續編號功能的列 82
專欄 其他RDBMS 中自動連續編號功能的設置 83
6.9 使用自動連續編號功能插入記錄. 84
6.9.1 確認插入的數據. 85
6.10 設置連續編號的初始值 85
6.10.1 連續編號的初始化. 85
6.11 設置列的默認值 87
6.11.1 修改列結構的定義. 87
6.11.2 輸入數據 88
專欄 數據庫的實體是什麼. 89
6.12 創建索引 91
6.12.1 什麼是索引. 91
6.12.2 創建索引 91
6.12.3 顯示索引 91
6.12.4 刪除索引 92
專欄 索引和處理速度的關係 93
6.13 總結 93
第7 章 復製、刪除錶和記錄 96
7.1 復製錶的列結構和記錄 96
7.2 將錶的列結構和記錄整個復製過來 96
7.2.1 復製錶的列結構和記錄. 97
7.3 僅復製錶的列結構. 98
7.3.1 僅復製錶的列結構 98
7.4 復製其他錶的記錄 100
7.4.1 復製其他錶的記錄. 100
7.5 選擇某一列進行復製. 101
7.6 刪除錶、數據庫和記錄 102
7.7 刪除錶. 102
7.7.1 當目標錶存在時將其刪除. 104
7.8 刪除數據庫 104
7.9 刪除所有記錄. 104
專欄 不使用MySQL 監視器操作MySQL 106
專欄 多行輸入. 107
7.10 總結 107
第3 部分.熟練使用MySQL111
第8 章 使用各種條件進行提取112
8.1 設計列的顯示內容並執行SELECT 112
8.1.1 準備錶tb 112
8.1.2 改變列的顯示順序 113
8.1.3 使用彆名 114
8.2 計算列值或處理字符串之後顯示列 116
8.2.1 使用列值進行計算並顯示 116
8.2.2 使用函數進行計算 118
8.2.3 用於顯示各種信息的函數 120
專欄 計算圓的麵積 121
8.2.4 連接字符串 121
8.2.5 字符串操作中常用的函數 122
8.2.6 日期和時間函數 124
8.3 設置條件進行顯示 125
8.3.1 確定記錄數並顯示 126
8.3.2 使用WHERE 提取記錄 . 127
8.3.3 比較運算符 128
8.3.4 使用字符串作為條件 . 130
8.3.5 使用NULL 作為條件 132
專欄 刪除多餘的記錄 133
8.4 指定多個條件進行選擇 . 134
8.4.1 使用AND 134
8.4.2 使用OR . 135
8.4.3 使用多個AND 或OR 137
8.4.4 使用CASE WHEN 138
8.5 排序 141
8.5.1 按升序排序並顯示 141
8.5.2 按降序排序並顯示 143
8.5.3 指定記錄的顯示範圍 . 144
8.6 分組顯示 . 146
8.6.1 分組顯示 146
8.6.2 計算各組的記錄數 147
8.6.3 顯示各組的總和以及平均值 . 148
8.7 設置條件分組顯示 150
8.7.1 按組處理 150
8.7.2 提取記錄後分組 152
8.7.3 分組後排序. 154
8.7.4 分組方法總結 155
8.8 總結 157
專欄 WHERE 和HAVING. 160
第9 章 編輯數據161
9.1 更新記錄 161
9.1.1 瞬間更新列中所有的記錄. 161
專欄 防止意外執行UPDATE 和DELETE 163
9.1.2 隻修改符閤條件的記錄 163
9.1.3 將銷售額最低的3 條記錄的備注修改為“加油!” 165
9.2 復製符閤條件的記錄. 167
9.2.1 僅復製指定記錄 167
9.2.2 排序後復製. 169
9.3 刪除符閤條件的記錄. 170
9.3.1 刪除所有記錄(復習) 170
9.3.2 刪除指定的記錄 171
9.3.3 排序後刪除. 172
9.4 總結 173
專欄 數據庫的運用方法 176
第10 章 使用多個錶177
10.1 顯示多個錶的記錄 177
10.1.1 確認本章示例中使用的多個錶 177
10.1.2 顯示多條提取結果 178
10.1.3 使用UNION 閤並3 個以上的錶 180
10.1.4 按條件閤並多條提取結果進行顯示. 181
10.1.5 閤並顯示多條提取結果(允許重復) 183
10.2 連接多個錶並顯示(內連接). 184
10.2.1 使用其他錶的記錄進行處理. 184
專欄 有“內連接”的話是不是也有“外連接”呢. 187
10.2.2 選擇列進行顯示 187
10.2.3 給錶添加彆名. 188
10.2.4 使用USING 使ON ~的部分更容易閱讀. 190
10.2.5 通過WHERE 設置條件從連接錶中提取記錄. 191
10.2.6 提取多個錶中的記錄. 192
10.3 顯示多個錶的所有記錄(外連接) 196
10.3.1 什麼是外連接. 196
10.3.2 外連接的種類. 197
10.3.3 使用左外連接. 198
10.3.4 使用右外連接. 201
10.3.5 避免混閤使用左外連接和右外連接. 203
專欄 加上OUTER 後的書寫方法 203
10.4 自連接 203
10.4.1 什麼是自連接. 203
10.4.2 排序的技巧其一 206
10.5 從SELECT 的記錄中SELECT(子查詢) 208
10.5.1 什麼是子查詢. 208
10.5.2 顯示最大值(返迴值的子查詢其一) 209
專欄 GROUP BY 函數 212
10.5.3 提取大於等於平均值的記錄(返迴值的子查詢其二) 212
10.5.4 使用IN(返迴列的子查詢). 213
專欄 子查詢和內連接的提取結果的差異(雖然相似但不同!) 215
10.5.5 使用“=”代替IN 會報錯嗎. 216
10.5.6 使用EXISTS,僅以存在的記錄為對象 218
10.5.7 NOT EXISTS 219
10.5.8 排序的技巧其二 221
10.6 總結 224
第11 章 熟練使用視圖.227
11.1 什麼是視圖 227
11.1.1 視圖的真麵目. 227
11.1.2 視圖的用途 227
專欄 視圖和MySQL 的版本 228
11.2 使用視圖. 229
11.2.1 創建視圖 229
11.2.2 通過視圖更新列的值. 230
11.3 設置條件創建視圖 232
11.3.1 設置條件創建視圖 232
11.3.2 當更新基錶時,視圖會發生什麼變化 234
11.3.3 確認視圖 236
11.4 限製通過視圖寫入 238
11.4.1 對視圖執行INSERT 操作會齣現什麼樣的結果. 238
11.4.2 設置瞭條件的基錶中會發生什麼變化 240
11.4.3 當與視圖的條件不匹配時報錯 242
11.5 替換、修改和刪除視圖. 243
11.5.1 替換視圖 243
11.5.2 修改視圖結構. 244
11.5.3 刪除視圖 245
專欄 什麼是復製 245
11.6 總結 247
第12 章 熟練使用存儲過程250
12.1 什麼是存儲過程. 250
12.1.1 可用的版本 250
12.1.2 什麼是存儲過程 250
12.2 使用存儲過程 251
12.2.1 創建存儲過程. 251
12.2.2 執行存儲過程 254
12.2.3 創建隻顯示大於等於指定值的記錄的存儲過程 255
專欄 在參數中加上IN 的例子 257
12.3 顯示、刪除存儲過程. 258
12.3.1 顯示存儲過程的內容. 258
12.3.2 刪除存儲過程. 258
12.4 什麼是存儲函數 259
12.4.1 可用版本. 259
12.4.2 什麼是存儲函數 259
12.5 使用存儲函數 260
12.5.1 使用存儲函數之前 260
12.5.2 使用存儲函數計算標準體重 261
12.5.3 返迴記錄平均值的存儲函數. 264
12.5.4 顯示和刪除存儲函數. 266
12.6 什麼是觸發器. 267
12.6.1 什麼是觸發器. 267
12.7 創建觸發器 268
12.7.1 觸發器被觸發的時機. 268
12.7.2 創建觸發器 269
12.7.3 觸發器的內容 272
12.8 確認和刪除觸發器. 273
12.8.1 確認設置的觸發器 273
12.8.2 刪除觸發器. 274
12.9 總結. 274
第13 章 熟練使用事務277
13.1 什麼是存儲引擎 277
13.1.1 什麼是存儲引擎. 277
13.1.2 存儲引擎的種類 278
13.2 設置存儲引擎 278
13.2.1 確認存儲引擎 278
專欄 使用“G”代替“;” 279
13.2.2 修改存儲引擎 280
13.3 什麼是事務. 281
13.4 使用事務 282
13.4.1 執行前的注意事項 282
13.4.2 開啓事務 282
13.4.3 確認錶的內容 284
13.5 自動提交功能 285
13.5.1 關閉自動提交功能. 286
13.5.2 啓動已關閉的自動提交功能 287
專欄 如何確認當前自動提交功能的模式?. 288
13.5.3 事務的使用範圍 288
13.6 總結. 288
第14 章 使用文件進行交互.291
14.1 從文本文件中讀取數據(導入). 291
14.1.1 CSV 文件. 291
14.1.2 導入和導齣的準備 292
14.1.3 導入文件. 293
專欄 導入GB 2312 的文本文件. 296
14.1.4 將數據寫入文本文件(導齣). 296
14.1.5 導齣文件 297
14.2 從文件中讀取並執行SQL 命令. 298
14.2.1 通過MySQL 監視器執行編寫在文件中的SQL 語句 298
專欄 將常用錶的內容保存到文件中 301
14.2.2 通過命令提示符執行編寫在文件中的SQL 命令 302
專欄 在批處理文件中記錄SQL 命令 . 304
14.3 將SQL 的執行結果保存到文件中 . 304
14.3.1 通過重定嚮將SQL 語句的執行結果輸齣到文本文件中 304
專欄 使用重定嚮輸入SQL 語句,並通過重定嚮將結果輸齣到文件 307
14.3.2 使用tee 命令將SQL 語句的執行結果保存到文件中 307
14.4 備份和恢復數據庫 309
14.4.1 備份和恢復的方法 309
14.4.2 使用mysqldump 導齣 310
專欄 恢復作業失敗的情況 312
14.4.3 恢復轉儲文件 . 313
14.4.4 字符編碼問題 . 315
專欄 鎖錶 315
14.5 總結 316
第4 部分.MySQL+PHP 的基礎.319
第15 章 用於控製MySQL 的PHP.320
15.1 要創建的示例 . 320
15.2 在Web 應用程序中使用MySQL 321
15.3 使用Web 時需要用到的機製 321
15.3.1 Web 服務器和客戶端 321
15.3.2 Web 服務器的作用 322
15.3.3 Apache 和Web 服務器 . 322
專欄 有狀態協議 . 323
15.4 靜態頁麵和動態頁麵 323
15.5 在Web 上運行的程序 324
15.5.1 CGI . 324
15.5.2 腳本 . 324
15.6 什麼是PHP 325
15.6.1 PHP 是什麼 325
15.6.2 本書使用的PHP 326
15.6.3 設置php.ini . 326
15.7 首先顯示“歡迎光臨!” 327
15.7.1 確認Apache 是否啓動 327
專欄 localhost 的IP 地址 328
15.7.2 首先用PHP 顯示“歡迎光臨!” 328
15.7.3 沒有正常顯示時的解決對策 330
15.8 使用PHP. 332
15.8.1 編寫PHP 腳本時需要遵循的規則 332
專欄 編寫PHP 腳本. 333
15.8.2 執行瞭什麼處理. 333
專欄 print 和echo. 335
15.8.3 注釋的寫法 336
15.8.4 phpinfo 函數 336
專欄 使用PHP 關閉操作係統. 337
15.9 總結 338
第16 章 PHP 基礎知識340
16.1 變量 340
16.1.1 什麼是PHP 的變量 340
16.1.2 變量名的規則 342
16.1.3 預定義常量 342
16.1.4 變量的數據類型. 343
16.2 字符串 344
16.2.1 連接字符串. 344
16.2.2 " 和' 的使用方法. 344
16.2.3 用" " 將變量括起來和用' ' 將變量括起來的區彆 346
16.3 函數 347
16.3.1 本書涉及的PHP 函數. 347
16.3.2 通過date 函數顯示日期和時間 347
16.3.3 環境信息. 349
16.3.4 通過gethostbyaddr 函數獲取主機名. 351
16.4 比較運算符 353
16.5 循環處理. 353
16.5.1 通過for 實現循環. 353
16.5.2 通過while 實現循環 356
16.5.3 通過do…while 實現循環 357
16.6 條件判斷. 358
16.6.1 通過if 進行條件判斷 358
16.6.2 三元運算符 359
16.6.3 設置瞭多個條件的if 的語法 360
專欄 存儲過程中的條件分支. 361
16.6.4 使用瞭switch 的條件判斷. 362
16.7 數組 365
16.7.1 什麼是數組 365
16.7.2 給數組賦值的方法 366
專欄 下標的數值設定要恰當 367
16.7.3 關聯數組 368
專欄 關聯數組的下標即使不使用 " " 或' ' 括起來也能正常工作嗎 368
16.8 總結. 369
專欄 PHP 的文檔 369
第17 章 PHP 腳本和HTML372
17.1 HTML 源代碼 372
17.2 製作Web 頁麵的兩種方法 373
17.2.1 製作靜態Web 頁麵 373
17.2.2 製作動態Web 頁麵 373
17.2.3 瀏覽器不區分靜態頁麵和動態頁麵 374
17.3 HTML 的規則 374
17.4 使用PHP 腳本輸齣HTML 文件. 377
17.5 需要記住的標簽. 379
17.6 使用CSS 指定顔色和字體大小 382
17.6.1 指定背景的顔色 382
17.6.2 指定字符的大小和顔色. 384
17.7 Here Document 和nl2br 函數. 385
17.7.1 什麼是Here Document. 385
17.7.2 什麼是nl2br 函數 386
專欄 <textarea> 標簽. 388
17.8 使用PHP 從瀏覽器發送和接收數據 388
17.8.1 瀏覽器和PHP 文件之間的數據交換 388
17.8.2 製作一個用於發送數據的Web 頁麵send.html. 389
17.8.3 創建receive.php 以接收和顯示數據. 394
專欄 超級全局變量 395
17.8.4 發送和接收數據 395
17.9 通過POST 和GET 發送數據 396
17.9.1 發送和接收數據. 396
17.9.2 使用GET 方法發送數據 396
17.9.3 GET 和POST 的區彆 397
17.9.4 試著用GET 方法將值添加在URL 上發送 398
17.9.5 在不進行任何聲明的情況下發送數據 399
專欄 Google 是否也可以把數據添加在URL 上 400
17.10 總結 401
第18 章 使用PHP 腳本操作MySQL404
18.1 使用PHP 腳本連接到MySQL 服務器 404
18.1.1 從PHP 連接到數據庫的方法 404
專欄 mysql 函數 . 405
18.1.2 什麼是PDO ?什麼是類?什麼是方法? 405
18.1.3 使用PDO 連接到MySQL 服務器 405
18.2 使用PDO 執行SQL 語句 407
18.2.1 嚮錶中插入記錄 408
18.2.2 在PHP 中接收SQL 語句的執行結果 . 410
18.3 異常處理中的錯誤處理 413
18.3.1 SQL 的錯誤處理 414
專欄 顯示數據庫中存在的錶 . 416
18.4 總結 417
第5 部分.MySQL.+.PHP 實踐419
第19 章 .使用PHP 和MySQL 製作一個簡易公告闆.420
19.1 製作一個簡易公告闆 . 420
19.1.1 簡易公告闆的結構 420
19.1.2 創建數據庫和錶 . 421
19.1.3 簡易公告闆的文件結構 422
19.2 創建首頁 . 423
19.2.1 調用消息顯示腳本的錶單 423
19.2.2 調用插入腳本的錶單 . 423
19.2.3 調用刪除腳本的錶單 424
19.2.4 調用查詢腳本的錶單 . 425
19.2.5 創建首頁 426
19.3 創建分彆具有顯示、插入、刪除和查詢功能的PHP 腳本 . 427
19.3.1 4 個腳本的共通之處 427
19.3.2 用於顯示記錄的PHP 腳本 . 427
19.3.3 用於插入記錄的PHP 腳本 428
19.3.4 用於刪除記錄的PHP 腳本 431
19.3.5 用於查詢記錄的PHP 腳本. 432
19.3.6 確認4 個文件的運行結果 433
專欄 在公告闆上輸入標簽的技巧. 434
19.4 總結 435
第20 章 發布到互聯網上時需要注意的地方438
20.1 不在發布的文件夾中放置重要信息 438
20.1.1 PHP 文件的結構. 438
20.1.2 如何讀取其他文件的腳本 439
專欄 讀取外部文件的命令. 441
20.2 避免在查詢中輸入非法數據. 441
20.2.1 什麼是SQL 注入. 441
20.3 正則錶達式 443
20.3.1 什麼是正則錶達式 443
20.3.2 正則錶達式的示例. 443
20.3.3 preg_match 函數 444
20.3.4 使用正則錶達式檢查非法輸入. 445
20.4 不執行非預期標簽 446
20.4.1 發送惡意標簽 446
20.4.2 漏洞攻擊. 448
20.4.3 移除輸入的標簽. 448
專欄 如何創建安全的腳本 450
20.5 總結 450
第21 章 創建一個實用公告闆.453
21.1 創建一個實用公告闆 453
21.1.1 準備實用公告闆中使用的圖片 456
21.2 創建實用公告闆中使用的錶 456
21.2.1 tbj0(主題錶). 457
21.2.2 tbj1(消息錶) 457
21.3 製作首頁(創建主題以及顯示列錶). 458
21.3.1 bulletin_top.php 的代碼清單 458
21.3.2 bulletin_top.php 的結構 462
21.4 製作各個主題的頁麵(輸入迴帖和顯示列錶) 464
21.4.1 bulletin.php 的代碼清單. 465
21.4.2 bulletin.php 的結構 469
21.5 製作消息的查詢頁麵 473
21.5.1 bulletin_search.php 的代碼清單 474
21.5.2 bulletin_search.php 的結構 476
21.6 製作讀取數據庫信息的原始文件 . 478
21.7 製作數據重置頁麵 479
21.7.1 bulletin_reset.php 的代碼清單 . 479
21.7.2 bulletin_reset.php 的結構 479
21.8 總結 480
第6 部分.附錄483
附錄1 使用phpMyAdmin . 484
附錄2 常見問題的檢查清單 489
附錄3 MySQL 基礎練習 493
· · · · · · (
收起)