內容簡介
本書介紹了MySQL的操作方法以及通過使用PHP和MySQL創建Web應用程式的基礎知識。作者從資料庫是什麼開始講起,由淺入深,通過豐富的圖示和大量的示例程式,讓讀者循序漸進地掌握MySQL,*終帶領讀者使用MySQL和PHP開發能夠在Web上公開的具有安全性的Web應用程式。
圖書目錄
第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
作者簡介
西澤夢路(作者) 生於埼玉縣。技術寫作人,同時也是一名大學研究員。主要研究領域為信息教育。著有《Oracle基礎教程》《PHP基礎教程》等。 盧克貴(譯者) Oracle資料庫技術支持工程師。Oracle全球客戶支持(GCS大連)資料庫性能與安全日語組組長,中文Tier1工程師。