MySQL數(shù)據(jù)庫基礎(chǔ)與實例教程
定 價:45 元
叢書名:工業(yè)和信息化普通高等教育“十二五”規(guī)劃教材 21世紀(jì)高等教育計算機規(guī)劃教材
- 作者:孔祥盛 編
- 出版時間:2014/6/1
- ISBN:9787115353382
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.138
- 頁碼:319
- 紙張:膠版紙
- 版次:1
- 開本:16K
作為世界上最受歡迎的開源數(shù)據(jù)庫之一,MySQL由于其性能優(yōu)越、功能強大,受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞。本書以講解MySQL基礎(chǔ)知識為目標(biāo),以案例的實現(xiàn)為載體,以不同的章節(jié)完成不同的任務(wù)為理念,深入講解關(guān)系數(shù)據(jù)庫設(shè)計、MySQL基礎(chǔ)知識以及MySQL編程知識。
本書內(nèi)容豐富、講解深入,適用于初學(xué)者快速上手,特別適合用作各類院校相關(guān)專業(yè)的教材。本書入門門檻低,非常適合用作培訓(xùn)機構(gòu)的培訓(xùn)教材,也適用于計算機二級考試MySQL 數(shù)據(jù)庫程序設(shè)計的培訓(xùn)教材,同時也是一本面向廣大MySQL愛好者的實用參考書。
1、滿足計算機等級考試二級MySQL的需求
2、網(wǎng)上選課系統(tǒng)開發(fā)貫穿全書,并包括所有知識點
3、注重軟件工程在數(shù)據(jù)庫中的應(yīng)用
目 錄
第一篇 關(guān)系數(shù)據(jù)庫設(shè)計
第1章 數(shù)據(jù)庫設(shè)計概述 2
1.1 數(shù)據(jù)庫概述 2
1.1.1 關(guān)系數(shù)據(jù)庫管理系統(tǒng) 2
1.1.2 關(guān)系數(shù)據(jù)庫 3
1.1.3 結(jié)構(gòu)化查詢語言SQL 4
1.2 數(shù)據(jù)庫設(shè)計的相關(guān)知識 5
1.2.1 商業(yè)知識和溝通技能 5
1.2.2 數(shù)據(jù)庫設(shè)計輔助工具 6
1.2.3 “選課系統(tǒng)”概述 7
1.2.4 定義問題域 8
1.2.5 編碼規(guī)范 8
1.3 E-R圖 9
1.3.1 實體和屬性 10
1.3.2 關(guān)系 10
1.3.3 E-R圖的設(shè)計原則 12
1.4 關(guān)系數(shù)據(jù)庫設(shè)計 15
1.4.1 為每個實體建立一張數(shù)據(jù)庫表 15
1.4.2 為每張表定義一個主鍵 16
1.4.3 增加外鍵表示一對多關(guān)系 17
1.4.4 建立新表表示多對多關(guān)系 19
1.4.5 為字段選擇合適的數(shù)據(jù)類型 20
1.4.6 定義約束(constraint)條件 20
1.4.7 評價數(shù)據(jù)庫表設(shè)計的質(zhì)量 22
1.4.8 使用規(guī)范化減少數(shù)據(jù)冗余 22
1.4.9 避免數(shù)據(jù)經(jīng)常發(fā)生變化 26
習(xí)題 28
第二篇 MySQL基礎(chǔ)
第2章 MySQL基礎(chǔ)知識 30
2.1 MySQL概述 30
2.1.1 MySQL的特點 30
2.1.2 MySQL服務(wù)的安裝 32
2.1.3 MySQL服務(wù)的配置 35
2.1.4 啟動與停止MySQL服務(wù) 40
2.1.5 MySQL配置文件 41
2.1.6 MySQL客戶機 42
2.1.7 連接MySQL服務(wù)器 43
2.2 字符集以及字符序設(shè)置 45
2.2.1 字符集及字符序概念 45
2.2.2 MySQL字符集與字符序 45
2.2.3 MySQL字符集的轉(zhuǎn)換過程 47
2.2.4 MySQL字符集的設(shè)置 48
2.2.5 SQL腳本文件 49
2.3 MySQL數(shù)據(jù)庫管理 50
2.3.1 創(chuàng)建數(shù)據(jù)庫 50
2.3.2 查看數(shù)據(jù)庫 51
2.3.3 顯示數(shù)據(jù)庫結(jié)構(gòu) 52
2.3.4 選擇當(dāng)前操作的數(shù)據(jù)庫 52
2.3.5 刪除數(shù)據(jù)庫 52
2.4 MySQL表管理 53
2.4.1 MyISAM和InnoDB存儲引擎 53
2.4.2 設(shè)置默認的存儲引擎 54
2.4.3 創(chuàng)建數(shù)據(jù)庫表 54
2.4.4 顯示表結(jié)構(gòu) 55
2.4.5 表記錄的管理 56
2.4.6 InnoDB表空間 59
2.4.7 刪除表 61
2.5 系統(tǒng)變量 61
2.5.1 全局系統(tǒng)變量與會話系統(tǒng)變量 61
2.5.2 查看系統(tǒng)變量的值 62
2.5.3 設(shè)置系統(tǒng)變量的值 64
2.6 MySQL數(shù)據(jù)庫備份和恢復(fù) 65
習(xí)題 67
第3章 MySQL表結(jié)構(gòu)的管理 68
3.1 MySQL數(shù)據(jù)類型 68
3.1.1 MySQL整數(shù)類型 68
3.1.2 MySQL小數(shù)類型 69
3.1.3 MySQL字符串類型 70
3.1.4 MySQL日期類型 71
3.1.5 MySQL復(fù)合類型 73
3.1.6 MySQL二進制類型 75
3.1.7 選擇合適的數(shù)據(jù)類型 75
3.2 創(chuàng)建表 76
3.2.1 設(shè)置約束 77
3.2.2 設(shè)置自增型字段 81
3.2.3 其他選項的設(shè)置 81
3.2.4 創(chuàng)建“選課系統(tǒng)”數(shù)據(jù)庫表 82
3.2.5 復(fù)制一個表結(jié)構(gòu) 83
3.3 修改表結(jié)構(gòu) 84
3.3.1 修改字段相關(guān)信息 84
3.3.2 修改約束條件 85
3.3.3 修改表的其他選項 87
3.3.4 修改表名 87
3.4 刪除表 87
3.5 索引 88
3.5.1 理解索引 88
3.5.2 索引關(guān)鍵字的選取原則 91
3.5.3 索引與約束 92
3.5.4 創(chuàng)建索引 93
3.5.5 刪除索引 94
習(xí)題 95
第4章 表記錄的更新操作 96
4.1 表記錄的插入 96
4.1.1 使用insert語句插入新記錄 96
4.1.2 更新操作與字符集 99
4.1.3 關(guān)于自增型字段 100
4.1.4 批量插入多條記錄 100
4.1.5 使用insert…select插入結(jié)果集 101
4.1.6 使用replace插入新記錄 102
4.2 表記錄的修改 103
4.3 表記錄的刪除 103
4.3.1 使用delete刪除表記錄 103
4.3.2 使用truncate清空表記錄 104
4.4 MySQL特殊字符序列 106
習(xí)題 108
第5章 表記錄的檢索 109
5.1 select語句概述 109
5.1.1 使用select子句指定字段列表 110
5.1.2 使用謂詞過濾記錄 111
5.1.3 使用from子句指定數(shù)據(jù)源 112
5.1.4 多表連接 115
5.2 使用where子句過濾結(jié)果集 116
5.2.1 使用單一的條件過濾結(jié)果集 116
5.2.2 is NULL運算符 117
5.2.3 select語句與字符集 118
5.2.4 使用邏輯運算符 119
5.2.5 使用like進行模糊查詢 121
5.3 使用order by子句對結(jié)果集排序 122
5.4 使用聚合函數(shù)匯總結(jié)果集 123
5.5 使用group by子句對記錄分組統(tǒng)計 125
5.5.1 group by子句與聚合函數(shù) 125
5.5.2 group by子句與having子句 126
5.5.3 group by子句與group_concat()函數(shù) 127
5.5.4 group by子句與with rollup選項 127
5.6 合并結(jié)果集 128
5.7 子查詢 129
5.7.1 子查詢與比較運算符 129
5.7.2 子查詢與in運算符 131
5.7.3 子查詢與exists邏輯運算符 132
5.7.4 子查詢與any運算符 133
5.7.5 子查詢與all運算符 133
5.8 選課系統(tǒng)綜合查詢 134
5.9 使用正則表達式模糊查詢 138
5.10 全文檢索 139
5.10.1 全文檢索的簡單應(yīng)用 140
5.10.2 全文檢索方式 144
5.10.3 布爾檢索模式的復(fù)雜應(yīng)用 144
5.10.4 MySQL全文檢索的注意事項 146
5.10.5 InnoDB表的全文檢索 146
習(xí)題 147
第三篇 MySQL編程
第6章 MySQL編程基礎(chǔ) 150
6.1 MySQL編程基礎(chǔ)知識 150
6.1.1 常量 150
6.1.2 用戶自定義變量 152
6.1.3 運算符與表達式 157
6.1.4 begin-end語句塊 159
6.1.5 重置命令結(jié)束標(biāo)記 160
6.2 自定義函數(shù) 160
6.2.1 創(chuàng)建自定義函數(shù)的語法格式 160
6.2.2 函數(shù)的創(chuàng)建與調(diào)用 161
6.2.3 函數(shù)的維護 163
6.2.4 條件控制語句 165
6.2.5 循環(huán)語句 167
6.3 系統(tǒng)函數(shù) 171
6.3.1 數(shù)學(xué)函數(shù) 171
6.3.2 字符串函數(shù) 173
6.3.3 數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 180
6.3.4 條件控制函數(shù) 180
6.3.5 系統(tǒng)信息函數(shù) 182
6.3.6 日期和時間函數(shù) 183
6.3.7 其他常用的MySQL函數(shù) 189
6.4 中文全文檢索的模擬實現(xiàn) 191
習(xí)題 193
第7章 視圖與觸發(fā)器 195
7.1 視圖 195
7.1.1 創(chuàng)建視圖 195
7.1.2 查看視圖的定義 196
7.1.3 視圖在“選課系統(tǒng)”中的應(yīng)用 197
7.1.4 視圖的作用 198
7.1.5 刪除視圖 199
7.1.6 檢查視圖 199
7.1.7 local與cascade檢查視圖 200
7.2 觸發(fā)器 201
7.2.1 準(zhǔn)備工作 202
7.2.2 使用觸發(fā)器實現(xiàn)檢查約束 203
7.2.3 使用觸發(fā)器維護冗余數(shù)據(jù) 204
7.2.4 使用觸發(fā)器模擬外鍵級聯(lián)選項 205
7.2.5 查看觸發(fā)器的定義 206
7.2.6 刪除觸發(fā)器 207
7.2.7 使用觸發(fā)器的注意事項 207
7.3 臨時表 208
7.3.1 臨時表概述 208
7.3.2 臨時表的創(chuàng)建、查看與刪除 208
7.3.3 “選課系統(tǒng)”中臨時表的使用 209
7.3.4 使用臨時表的注意事項 210
7.4 派生表(derived table) 211
7.5 子查詢、視圖、臨時表、派生表 211
習(xí)題 213
第8章 存儲過程與游標(biāo) 214
8.1 存儲過程 214
8.1.1 創(chuàng)建存儲過程的語法格式 214
8.1.2 存儲過程的調(diào)用 215
8.1.3 “選課系統(tǒng)”的存儲過程 216
8.1.4 查看存儲過程的定義 220
8.1.5 刪除存儲過程 221
8.1.6 存儲過程與函數(shù)的比較 222
8.2 錯誤觸發(fā)條件和錯誤處理 223
8.2.1 自定義錯誤處理程序 223
8.2.2 自定義錯誤觸發(fā)條件 225
8.2.3 自定義錯誤處理程序說明 226
8.3 游標(biāo) 226
8.3.1 使用游標(biāo) 226
8.3.2 游標(biāo)在“選課系統(tǒng)”中的使用 227
8.4 預(yù)處理SQL語句 229
8.4.1 預(yù)處理SQL語句使用步驟 229
8.4.2 “選課系統(tǒng)”中預(yù)處理SQL語句的使用 230
8.4.3 預(yù)處理SQL語句的復(fù)雜應(yīng)用 231
8.4.4 靜態(tài)SQL語句與預(yù)處理SQL語句 233
8.5 存儲程序的說明 234
習(xí)題 234
第9章 事務(wù)機制與鎖機制 235
9.1 事務(wù)機制 235
9.1.1 事務(wù)機制的必要性 235
9.1.2 關(guān)閉MySQL自動提交 237
9.1.3 回滾 237
9.1.4 提交 239
9.1.5 事務(wù) 240
9.1.6 保存點 241
9.1.7 “選課系統(tǒng)”中的事務(wù) 243
9.2 鎖機制 246
9.2.1 鎖機制的必要性 246
9.2.2 MySQL鎖機制的基礎(chǔ)知識 248
9.2.3 MyISAM表的表級鎖 250
9.2.4 InnoDB表的行級鎖 253
9.2.5 “選課系統(tǒng)”中的行級鎖 255
9.2.6 InnoDB表的意向鎖 257
9.2.7 InnoDB行級鎖與索引之間的關(guān)系 258
9.2.8 間隙鎖與死鎖 261
9.2.9 死鎖與鎖等待 262
9.3 事務(wù)的ACID特性 264
9.3.1 事務(wù)的ACID特性 264
9.3.2 事務(wù)的隔離級別與并發(fā)問題 265
9.3.3 設(shè)置事務(wù)的隔離級別 266
9.3.4 使用間隙鎖避免幻讀現(xiàn)象 271
9.4 事務(wù)與鎖機制注意事項 272
習(xí)題 273
第四篇 綜合實訓(xùn)
第10章 網(wǎng)上選課系統(tǒng)的開發(fā) 276
10.1 PHP預(yù)備知識 276
10.1.1 為何選用B/S結(jié)構(gòu)以及PHP腳本語言 276
10.1.2 PHP腳本語言概述 277
10.1.3 PHP腳本程序的工作流程 278
10.1.4 Web服務(wù)器的部署 280
10.1.5 注意事項 282
10.2 軟件開發(fā)生命周期SDLC 283
10.3 網(wǎng)上選課系統(tǒng)的系統(tǒng)規(guī)劃 283
10.3.1 網(wǎng)上選課系統(tǒng)的目標(biāo) 284
10.3.2 網(wǎng)上選課系統(tǒng)的可行性分析 284
10.3.3 網(wǎng)上選課系統(tǒng)的項目進度表 284
10.3.4 網(wǎng)上選課系統(tǒng)的人員分工 285
10.4 網(wǎng)上選課系統(tǒng)的系統(tǒng)分析 286
10.4.1 網(wǎng)上選課系統(tǒng)的功能需求分析 286
10.4.2 網(wǎng)上選課系統(tǒng)的非功能需求分析 288
10.5 網(wǎng)上選課系統(tǒng)的系統(tǒng)設(shè)計 288
10.6 網(wǎng)上選課系統(tǒng)的系統(tǒng)實施 290
10.6.1 準(zhǔn)備工作 290
10.6.2 制作PHP連接MySQL服務(wù)器函數(shù) 291
10.6.3 制作PHP權(quán)限系統(tǒng)函數(shù) 293
10.6.4 首頁index.php的開發(fā) 294
10.6.5 教師注冊模塊的開發(fā) 295
10.6.6 登錄模塊的開發(fā) 298
10.6.7 注銷模塊的開發(fā) 300
10.6.8 添加班級模塊的開發(fā) 300
10.6.9 學(xué)生注冊模塊的開發(fā) 301
10.6.10 密碼重置模塊 303
10.6.11 申報課程模塊 304
10.6.12 課程列表顯示模塊 305
10.6.13 審核申報課程 307
10.6.14 取消已審核課程 308
10.6.15 瀏覽自己申報的課程 309
10.6.16 刪除課程 310
10.6.17 學(xué)生選修或者調(diào)換已經(jīng)審核的課程 310
10.6.18 查看自己選修的課程 311
10.6.19 取消選修課程 312
10.6.20 查看課程的學(xué)生信息列表 313
10.6.21 查看選修人數(shù)少于30人的課程信息 314
10.7 界面設(shè)計與MVC模式 315
10.8 網(wǎng)上選課系統(tǒng)的測試 317
習(xí)題 318
參考文獻 319