MySQL數據庫技術及應用項目教程
內容描述
本書結合MySQL 8數據庫管理系統,基於“與企業應用、崗位技能相符”的原則,按照項目教學的基本規律編寫。全書以項目為導向、以工作任務為主線,以MySQL數據庫的管理與應用開發任務為載體,重點介紹以下知識與技能:MySQL數據庫環境的建立及其連接;數據庫及各種數據庫對象的創建與管理;數據的增刪改及查詢;索引與視圖;MySQL程序設計;數據的備份與恢復、導入與導出等操作;MySQL數據庫的安全管理;數據庫的設計方法;利用Python和PHP語言開發基於C/S和B/S結構的數據庫應用系統的方法。本書註重理實一體,語言淺顯易懂,具有較強的實用性和操作性。本書結構合理,便於教學取捨;選材實用,示例豐富,便於理解和操作。本書可作為高等職業院校電腦相關專業及電子商務、物流管理、機電一體化等專業的教材,也可作為普通高校或成人院校本科非電腦專業的教材,也是MySQL及其應用編程初學者的理想入門讀物,對電腦工作者及愛好者也有很好的參考價值。
目錄大綱
目 錄
項目1 MySQL數據庫環境的建立 1
任務1.1 為應用系統選擇合適的數據管理技術 2
任務1.2 MySQL版本的選擇 3
(一)MySQL的發展歷史 3
(二)MySQL的特點 3
(三)MySQL的版本分類 3
任務1.3 安裝與配置MySQL社區版 4
(一)MySQL在Windows平臺上的安裝方式 5
(二)MySQL 8.0的安裝環境 5
任務1.4 驗證安裝與配置結果 20
任務1.5 啟動與停止MySQL服務器 22
任務1.6 連接與斷開MySQL服務器 24
任務1.7 查看與修改MySQL的配置 28
習題一 29
項目2 MySQL數據庫和表的創建與管理 31
任務2.1 創建學生成績數據庫前的準備工作 31
(一)MySQL數據庫文件的存儲方式 32
(二)MySQL的系統數據庫 32
(三)MySQL中的字符集和排序規則 32
任務2.2 創建與查看學生成績數據庫 33
(一)SQL簡介 34
(二)創建數據庫的SQL語句 34
(三)查看數據庫的SQL語句 35
任務2.3 修改與刪除學生成績數據庫 37
(一)修改數據庫的SQL語句 37
(二)刪除數據庫的SQL語句 37
任務2.4 創建學生成績數據庫表前的準備工作 38
(一)MySQL存儲引擎及其選擇 39
(二)表的邏輯結構 39
(三)MySQL的數據類型 40
(四)MySQL數據類型的選擇 44
任務2.5 創建與查看學生成績數據庫中的表 46
(一)打開數據庫的SQL語句 46
(二)創建數據表的SQL語句 46
(三)查看數據表的SQL語句 47
任務2.6 修改和刪除學生成績數據庫中的表 50
(一)修改表 50
(二)刪除表 51
任務2.7 為學生成績數據庫表建立約束 54
任務2.7.1 建立主鍵(PRIMARY KEY)約束 54
任務2.7.2 建立外鍵(FOREIGN KEY)約束 56
任務2.7.3 建立唯一性(UNIQUE)約束 57
任務2.7.4 建立非空(NOT NULL)約束 59
任務2.7.5 建立檢查(CHECK)約束 60
任務2.7.6 建立默認(DEFAULT)約束 60
習題二 62
項目3 查詢與維護學生成績數據庫中的表 66
任務3.1 在學生成績數據庫表中插入數據 67
任務3.1.1 直接賦值插入數據 67
任務3.1.2 插入其他表中的查詢結果 68
任務3.2 在學生成績數據庫表中修改數據 69
任務3.2.1 直接賦值修改數據 70
任務3.2.2 通過查詢結果修改數據 71
任務3.3 在學生成績數據庫表中刪除數據 72
任務3.3.1 直接刪除數據 72
任務3.3.2 通過查詢結果刪除數據 73
任務3.4 在學生成績數據庫中實現無條件查詢 74
任務3.4.1 查詢部分列 74
任務3.4.2 查詢全部列 75
任務3.4.3 查詢經過計算的列 76
任務3.4.4 顯示結果集中的部分行 77
任務3.5 在學生成績數據庫中實現條件查詢 77
任務3.5.1 使用比較運算符的條件查詢 78
任務3.5.2 使用範圍運算符的條件查詢 79
任務3.5.3 使用集合運算符的條件查詢 79
任務3.5.4 使用模式匹配運算符的條件查詢 80
任務3.5.5 涉及空值的條件查詢 82
任務3.5.6 復合條件查詢 82
任務3.6 對查詢結果的排序、匯總和分組 83
任務3.7 在學生成績數據庫中實現連接查詢 87
任務3.7.1 內連接查詢 87
任務3.7.2 外連接查詢 89
任務3.7.3 自身連接查詢 91
任務3.8 在學生成績數據庫中實現嵌套查詢 92
任務3.8.1 嵌套子查詢——使用比較運算符的嵌套子查詢 92
任務3.8.2 嵌套子查詢——使用ANY、SOME和ALL謂詞的嵌套子查詢 93
任務3.8.3 嵌套子查詢——使用IN謂詞的嵌套子查詢 94
任務3.8.4 相關子查詢 95
任務3.9 在學生成績數據庫中實現合並(聯合)查詢 96
任務3.9.1 利用UNION合並兩個查詢結果集 97
任務3.9.2 將UNION合並結果保存到一個新表中 98
習題三 98
項目4 優化查詢學生成績數據庫中的表 102
任務4.1 認識索引對優化查詢性能的作用 102
(一)索引的基本概念 103
(二)索引的優缺點 103
(三)適合和不適合使用索引的場合 104
任務4.2 為學生成績數據庫表創建索引 105
(一)索引的類型 106
(二)索引的創建 107
任務4.3 管理學生成績數據庫表索引 109
(一)查看索引 110
(二)使用索引分析查詢性能 110
(三)隱藏索引 110
(四)刪除索引 111
任務4.4 為學生成績數據庫系統創建視圖 114
(一)視圖的基本概念 114
(二)視圖的創建 115
任務4.5 管理學生成績數據庫系統中的視圖 118
任務4.5.1 查看視圖 118
任務4.5.2 修改視圖 120
任務4.5.3 刪除視圖 121
任務4.6 在學生成績數據庫系統中使用視圖 122
任務4.6.1 通過視圖檢索表數據 122
任務4.6.2 通過視圖更新表數據 123
習題四 125
項目5 程序設計在學生成績系統中的使用 128
任務5.1 在學生成績數據庫中創建和使用用戶變量 129
(一)常量 129
(二)變量 130
任務5.2 為學生成績數據庫創建存儲過程 134
(一)存儲過程的基本概念 135
(二)存儲過程的創建 135
(三)存儲過程的調用 137
任務5.3 管理學生成績數據庫中的存儲過程 139
(一)查看存儲過程 140
(二)刪除存儲過程 140
(三)修改存儲過程 140
任務5.4 在存儲過程中使用流程控制語句 142
任務5.4.1 在存儲過程中使用流程控制語句—IF語句 142
任務5.4.2 在學生成績數據庫中使用流程控制語句—CASE語句 144
任務5.4.3 在學生成績數據庫中使用流程控制語句—循環語句 147
(一)WHILE循環語句 147
(二)REPEAT循環語句 147
(三)LOOP循環語句 148
任務5.5 在存儲過程中使用游標 149
(一)游標的基本概念 149
(二)游標的基本操作 149
(三)錯誤處理程序的定義 151
任務5.6 為學生成績數據庫創建存儲函數 153
(一)存儲函數與存儲過程的區別 153
(二)存儲函數的創建與調用 153
任務5.7 管理學生成績數據庫中的存儲函數 155
(一)查看存儲函數 156
(二)刪除存儲函數 156
(三)修改存儲函數 156
任務5.8 為學生成績數據庫創建觸發器 157
(一)觸發器的基本概念 157
(二)觸發器的創建與執行 158
任務5.9 管理學生成績數據庫中的觸發器 162
(一)查看觸發器 163
(二)刪除觸發器 163
任務5.10 為學生成績數據庫設計事務 164
(一)事務的基本概念 165
(二)MySQL事務的管理 166
習題五 170
項目6 學生成績數據庫的備份與恢復 173
任務6.1 初識數據庫備份與恢復 173
(一)數據庫備份與恢復的概念 174
(二)數據丟失的原因 174
(三)數據庫備份的分類 174
(四)數據恢復的手段 175
任務6.2 備份數據庫 176
(一)mysqldump工具簡介 176
(二)利用mysqldump工具備份數據庫 177
任務6.3 恢復數據庫 178
任務6.4 數據的導出 180
任務6.4.1 使用SELECT…INTO OUTFILE語句導出文件 180
任務6.4.2 使用mysqldump命令導出文件 182
任務6.4.3 使用mysql命令導出文本文件 183
任務6.5 數據的導入 184
任務6.5.1 使用LOAD DATA INFILE語句導入文件 184
任務6.5.2 使用mysqlimport命令導入文本文件 186
任務6.6 使用MySQL日誌恢復數據 188
(一)修改二進制日誌文件的存儲路徑 188
(二)查看二進制日誌文件 189
(三)利用二進制日誌恢復數據庫 190
(四)刪除二進制日誌文件 190
習題六 192
項目7 學生成績數據庫的安全管理 194
任務7.1 學生成績數據庫安全策略的選擇 194
任務7.2 認識MySQL的權限系統 196
(一)權限表 197
(二)MySQL權限系統的工作原理 199
任務7.3 創建和查看用戶 201
(一)創建用戶 202
(二)查看用戶 203
任務7.4 修改和刪除用戶 204
(一)修改用戶 204
(二)刪除用戶 205
任務7.5 管理用戶權限 207
(一)MySQL的權限類型 207
(二)用戶權限的授予 208
(三)用戶權限的查看 208
(四)用戶權限的撤銷(回收) 209
任務7.6 管理角色及其權限 211
(一)創建角色並授予角色權限 211
(二)查看角色或角色權限 212
(三)啟用角色 212
(四)撤銷角色或角色權限 213
(五)刪除角色 213
習題七 215
項目8 學生成績數據庫的設計 218
任務8.1 項目設計背景描述 218
任務8.2 確定數據庫設計的內容和方法 219
(一)數據庫系統及其體系結構 219
(二)數據庫設計的內容和方法 221
任務8.3 系統的需求分析 222
(一)需求分析的任務與目標 222
(二)需求分析的內容與方法 222
任務8.4 系統的概念設計 226
(一)概念設計中數據及數據聯系的描述 226
(二)概念設計的方法 227
任務8.5 系統的邏輯設計 229
(一)邏輯設計中的數據模型 229
(二)關系模型的基本概念 229
(三)邏輯設計的方法 232
任務8.6 系統的物理設計 234
(一)數據庫管理系統的功能與組成 234
(二)物理設計的方法 235
習題八 236
項目9 學生成績管理系統的開發 239
任務9.1 確定系統的體系結構及其前臺開發工具 239
任務9.2 使用Python開發C/S結構的學生成績管理系統 241
(一)Python編程知識簡介 241
(二)在PyCharm Community 2019中訪問MySQL數據庫 249
任務9.2.1 學生成績管理系統中的“用戶登錄”功能模塊的設計 255
任務9.2.2 學生成績管理系統中的“專業信息管理”功能模塊的設計 257
任務9.2.3 學生成績管理系統中的“學生基本信息管理”功能模塊的設計 264
任務9.3 使用PHP開發B/S結構的學生成績管理系統 268
(一)PHP編程知識簡介 268
(二)在PHP中訪問MySQL數據庫 270
任務9.3.1 學生成績管理系統中“學生基本信息管理”功能的設計 273
任務9.3.2 學生成績管理系統中的“課程信息管理”功能的設計 282
任務9.3.3 學生成績管理系統中的“學生成績管理”功能的設計 289
習題九 303
附錄 305