內容簡介
本書主要介紹了MySQL資料庫的套用、設計與管理。本書分為11個模組,分別是啟動與登錄MySQL、創建與操作MySQL資料庫、創建與最佳化MySQL數據表結構、設定與維護資料庫中數據完整性、添加與更新MySQL數據表數據、用SQL語句查詢MySQL數據表、用視圖方式操作MySQL數據表、用程式方式獲取與處理MySQL表數據、安全管理與備份MySQL資料庫、設計與最佳化MySQL資料庫、Python程式連線與訪問MySQL資料庫。全書以真實的工作任務為載體組織教學內容,實施教學過程,強化技能訓練,提升動手能力,提升讀者資料庫設計、套用與管理的能力。
本書可以作為普通高等院校、職業院校MySQL相關課程的教材,也可以作為MySQL的培訓教材及MySQL愛好者的自學參考書。
圖書目錄
模組1
啟動與登錄MySQL..........1
1.1 認知MySQL 與Navicat ..............1
1.2 啟動與終止MySQL 服務..............3
【任務1-1】啟動與停止MySQL服務................................4
1.3 登錄與退出MySQL 資料庫伺服器.......................................7
【任務1-2】登錄與退出MySQL 資料庫伺服器.............................8
1.4 試用MySQL 的管理工具.............9
【任務1-3】試用MySQL 的管理工具..............................10
【任務1-4】試用MySQL 的圖形管理工具Navicat for MySQL......12
課後練習............................................ 15
模組2
創建與操作MySQL資料庫.........................17
2.1 創建資料庫................................ 17
2.1.1 認知資料庫技術中的基本概念......................................17
2.1.2 認知創建MySQL 資料庫的命令......................................20
【任務2-1】使用Navicat for MySQL 工具創建資料庫MallDB .....20
【任務2-2】在【命令提示符】視窗中使用Create Database 語句創建資料庫.......24
2.2 選擇與查看資料庫...................... 25
【任務2-3】在【命令提示符】視窗中使用語句方式選擇與查看資料庫相關信息.....25
2.3 修改資料庫.................................27
【任務2-4】使用Alter Database 語句修改資料庫....................27
2.4 刪除資料庫.................................29
【任務2-5】使用Drop Database 語句刪除資料庫................... 29
2.5 MySQL 資料庫存儲引擎.............29
2.5.1 MySQL 存儲引擎的類型....... 29
2.5.2 MySQL 存儲引擎的選擇....... 30
【任務2-6】在【命令提示符】視窗中查看並選擇MySQL 資料庫支持的存儲引擎.....30
課後練習............................................31
模組3
創建與最佳化MySQL 數據表結構............................. 33
3.1 體驗網上商城資料庫套用.............34
【任務3-1】通過網上商城實例體驗資料庫的套用.......................... 34
3.2 MySQL 的數據類型及選用..........40
3.2.1 MySQL 數據類型與特點....... 40
3.2.2 MySQL 數據類型的選擇....... 43
3.2.3 MySQL 數據類型的屬性....... 45
【任務3-2】合理選擇char 類型和varchar 類型................ 45
3.3 分析並確定數據表的結構.............46
【任務3-3】分析並確定多張數據表的結構............................. 46
3.4 創建數據表.................................50
【任務3-4】使用Create Table 語句創建“用戶表” .............50
【任務3-5】使用Navicat 圖形管理工具創建多張數據表.............52
【任務3-6】通過複製現有數據表的方式創建新的數據表.............56
3.5 查看MySQL 資料庫中的數據表及其結構數據................... 58
【任務3-7】選擇當前資料庫並查看當前資料庫中的所有數據表....58
【任務3-8】查看數據表的結構..........58
3.6 修改MySQL 數據表的結構........ 60
【任務3-9】使用Navicat 圖形管理工具修改數據表的結構....60
【任務3-10】使用Alter Table 語句修改數據表的結構...............63
3.7 刪除沒有被關聯的數據表............ 66
【任務3-11】刪除沒有被關聯的數據表.........................66
課後練習............................................ 67
模組4
設定與維護資料庫中數據完整性.......................... 69
4.1 創建數據表的同時定義約束......... 70
【任務4-1】使用Create Table 語句創建包含約束的單張數據表....73
【任務4-2】使用Create Table 語句創建包含外鍵約束的主從數據表.........75
【任務4-3】查看定義了約束的數據表結構..............................76
4.2 修改數據表時設定其約束............ 78
【任務4-4】使用Navicat 圖形管理工具設定數據表的約束..........78
【任務4-5】使用命令提示符語句的方式修改數據表與設定其約束....80
4.3 創建與使用索引......................... 85
【任務4-6】創建數據表的同時創建索引............................. 87
【任務4-7】在已經存在的數據表中創建索引............................. 89
【任務4-8】使用Alter Table 語句創建索引............................. 89
4.4 刪除數據表的約束和索引.............90
【任務4-9】使用命令行語句的方式刪除數據表中的約束............. 91
【任務4-10】刪除數據表中的索引.... 93
4.5 刪除存在外鍵約束的數據表..........93
【任務4-11】刪除存在外鍵約束的數據表......................... 93
課後練習............................................95
模組5
添加與更新MySQL 數據表數據............................. 97
5.1 向MySQL 數據表中添加數據......98
5.1.1 使用Navicat 圖形管理工具向MySQL 數據表中輸入數據.... 98
【任務5-1】使用Navicat 圖形管理工具向數據表中輸入數據....... 98
5.1.2 向MySQL 數據表中導入數據................................... 100
【任務5-2】使用Navicat 圖形管理工具導入Excel 檔案中的數............... 100
【任務5-3】使用Mysqlimport 命令導入文本檔案.................... 104
5.1.3 向存在外鍵約束的MySQL 數據表中導入數據..................... 106
【任務5-4】使用Navicat 圖形管理工具向存在外鍵約束的MySQL數據表中導入數據....... 106
5.1.4 使用Insert 語句向數據表中添加數據............................... 107
【任務5-5】使用Insert 語句向數據表中插入記錄.....................109
5.2 修改數據表中的數據................. 110
5.2.1 使用Navicat 圖形管理工具查看與修改MySQL 數據表的記錄數據...........110
【任務5-6】使用Navicat 圖形管理工具查看與修改數據表中的記錄............110
5.2.2 使用Update 語句更新數據表中的數據............................111
【任務5-7】使用Update 語句更新數據表中的數據..................111
5.3 刪除數據表中的記錄數據.......... 112
5.3.1 使用Navicat 圖形管理工具刪除數據表中的記錄數據............112
【任務5-8】使用Navicat 圖形管理工具刪除數據表中的記錄數據................112
5.3.2 使用Delete 語句刪除數據表中的記錄數據.........................113
【任務5-9】使用Delete 語句刪除數據表中的記錄數據...........113
5.4 從MySQL 數據表中導出數據... 114
【任務5-10】使用Navicat 圖形管理工具將數據表中的數據導出到Excel 工作表中..........114
【任務5-11】使用Mysql 命令將數據表導出到文本檔案..........116
【任務5-12】使用Mysqldump 命令將數據表導出到文本檔案.................117
課後練習.......................................... 119
模組6
用SQL 語句查詢MySQL數據表........................ 120
6.1 創建單表基本查詢.................... 121
【任務6-1】使用Navicat 圖形管理工具實現查詢操作...............122
【任務6-2】查詢時選擇與設定欄位...125
【任務6-3】查詢時選擇行...............127
【任務6-4】對查詢結果進行排序.... 134
【任務6-5】分組進行數據查詢........ 135
6.2 創建多表連線查詢.....................137
【任務6-6】創建基本連線查詢........ 137
【任務6-7】創建內連線查詢........... 139
【任務6-8】創建外連線查詢........... 139
【任務6-9】使用Union 語句創建多表聯合查詢.................... 140
6.3 創建嵌套查詢和子查詢..............141
【任務6-10】創建單值嵌套查詢..... 141
【任務6-11】使用In 關鍵字創建子查詢......................... 143
【任務6-12】使用Exists 關鍵字創建子查詢......................... 143
【任務6-13】使用Any 關鍵字創建子查詢......................... 144
【任務6-14】使用All 關鍵字創建子查詢......................... 144
課後練習..........................................145
模組7
用視圖方式操作MySQL數據表........................ 147
7.1 認知視圖..................................148
7.1.1 視圖的定義........................ 148
7.1.2 視圖的優點......................... 148
7.2 創建視圖..................................148
7.2.1 創建視圖的語法格式........... 148
7.2.2 創建視圖的注意事項........... 150
7.3 查看視圖相關信息.....................150
【任務7-1】使用Create View 語句創建單源表視圖........... 150
【任務7-2】使用Navicat 圖形管理工具創建多源表視圖............152
【任務7-3】修改視圖.....................156
【任務7-4】利用視圖查詢與更新數據表中的數據..................157
【任務7-5】刪除視圖.....................158
課後練習.......................................... 159
模組8
用程式方式獲取與處理MySQL 表數據............ 160
8.1 執行多條語句獲取MySQL表數據..................................... 161
8.1.1 MySQL 的常量...................161
8.1.2 MySQL 的變數...................161
8.1.3 MySQL 的運算符與表達式...165
8.1.4 MySQL 的控制語句............166
8.1.5 MySQL 的注釋符................168
【任務8-1】在【命令提示符】視窗中編輯與執行多條SQL語句................169
8.2 使用存儲過程和游標獲取與處理MySQL 表數據........................ 169
8.2.1 MySQL 的存儲過程............169
8.2.2 MySQL 的游標...................172
【任務8-2】在【命令提示符】視窗中創建存儲過程查看指定出版社出版的圖書種類...........173
【任務8-3】在【命令提示符】視窗中創建有輸入參數的存儲過程.............174
【任務8-4】使用Navicat 圖形管理工具創建有輸入參數的存儲過程...........175
【任務8-5】使用Navicat 圖形管理工具創建有輸入參數和輸出參數的存儲過程...........178
【任務8-6】使用Navicat 圖形管理工具創建有InOut 參數的存儲過程.........180
【任務8-7】在【命令提示符】視窗中創建套用游標的存儲過程.... 182
8.3 使用函式獲取與處理MySQL 表數據...............................183
8.3.1 MySQL 系統定義的內置函式.................................. 183
8.3.2 MySQL 的自定義函式........ 184
8.3.3 調用MySQL 的函式........... 185
【任務8-8】在【命令提示符】視窗中創建自定義函式getTypeName().......... 185
【任務8-9】使用Navicat 圖形管理工具創建帶參數的函式getBookNumber() ..... 186
8.4 使用觸發器獲取與處理MySQL表數據...............................189
【任務8-10】創建Insert 觸發器..... 190
【任務8-11】創建Delete 觸發器... 191
【任務8-12】套用觸發器同步更新多張數據表中的數據......... 192
8.5 使用事務獲取與處理MySQL表數據.....................................195
【任務8-13】創建與使用事務......... 196
課後練習..........................................197
模組9
安全管理與備份MySQL資料庫........................ 200
9.1 登錄與退出MySQL 資料庫伺服器.....................................201
9.1.1 登錄與退出MySQL 資料庫伺服器............................... 201
9.1.2 MySQL 的Show 命令........ 201
【任務9-1】嘗試多種方式登錄MySQL資料庫伺服器...............202
9.2 MySQL 的用戶管理..................203
9.2.1 使用Create User 語句添加MySQL 用戶...............203
【任務9-2】在【命令提示符】視窗中使用Create User 語句添加MySQL 用戶......204
【任務9-3】使用Navicat 圖形管理工具添加與管理MySQL用戶..................205
9.2.2 修改MySQL 用戶的名稱.....208
9.2.3 修改MySQL 用戶的密碼.....208
【任務9-4】在【命令提示符】視窗中使用多種方式修改root 用戶的密碼.........209
【任務9-5】在【命令提示符】視窗中使用多種方式修改普通用戶的密碼.......209
【任務9-6】使用Navicat 圖形管理工具修改用戶的密碼............210
9.2.4 刪除普通用戶......................211
【任務9-7】在【命令提示符】視窗中修改與刪除普通用戶...........211
【任務9-8】使用Navicat 圖形管理工具修改和刪除用戶...........212
9.3 MySQL 的許可權管理................. 213
9.3.1 MySQL 的許可權表................213
9.3.2 MySQL 的各種許可權.............217
9.3.3 授予許可權.............................218
9.3.4 查看用戶的許可權信息............220
9.3.5 用戶許可權的轉換和限制.........220
9.3.6 撤銷許可權.............................220
【任務9-9】剖析MySQL 許可權表的驗證過程.....................221
【任務9-10】在【命令提示符】視窗中查看指定用戶的許可權信息............222
【任務9-11】在【命令提示符】視窗中授予用戶全局許可權.......224
【任務9-12】在【命令提示符】視窗中授予用戶資料庫許可權...225
【任務9-13】在【命令提示符】視窗中授予用戶數據表許可權和欄位許可權.........226
【任務9-14】在【命令提示符】視窗中授予用戶對存儲過程和函式的操作許可權.....227
【任務9-15】使用Navicat 圖形管理工具查看與管理許可權...228
【任務9-16】在【命令提示符】視窗中對用戶的許可權進行轉換和撤銷..........231
9.4 MySQL 的角色管理..................232
9.4.1 創建角色並授予用戶角色許可權...................................233
9.4.2 查看分配給用戶的許可權以及角色所擁有的許可權................233
9.4.3 為用戶設定默認角色............234
9.4.4 撤銷角色或角色許可權............235
9.4.5 刪除角色.............................235
【任務9-17】在【命令提示符】視窗中使用Create Role 語句創建MySQL 的角色..........235
9.5 備份與還原MySQL 資料庫.......237
9.5.1 資料庫的備份......................237
9.5.2 資料庫的還原..................... 238
【任務9-18】使用Mysqldump 命令備份與還原MySQL 的數據.................239
【任務9-19】使用Navicat 圖形管理工具備份與還原MySQL 的資料庫..........239
課後練習..........................................243
模組10
設計與最佳化MySQL資料庫........................ 245
10.1 MySQL 資料庫設計的需求分析......................................246
【任務10-1】網上商城資料庫設計的需求分析....................250
10.2 MySQL 資料庫的概念結構設計...................................... 253
【任務10-2】網上商城資料庫的概念結構設計....................253
10.3 MySQL 資料庫的邏輯結構設計...................................... 254
【任務10-3】網上商城資料庫的邏輯結構設計....................254
10.4 MySQL 資料庫的物理結構設計...................................... 255
【任務10-4】網上商城資料庫的物理結構設計....................255
10.5 MySQL 資料庫的設計最佳化..... 257
【任務10-5】網上商城資料庫的設計最佳化..........................257
10.6 MySQL 資料庫的性能最佳化..... 257
10.6.1 查看MySQL 資料庫的性能參數.................................257
【任務10-6】查詢MySQL 資料庫常用的性能參數................258
10.6.2 數據表查詢速度的最佳化.......259
【任務10-7】了解查詢語句的執行情況與解讀分析結果..........260
【任務10-8】對比查詢語句中不使用索引和使用索引的查詢情況............262
【任務10-9】分析Select 查詢語句使用Like 關鍵字的查詢情況............263
10.6.3 數據表結構的最佳化..............263
【任務10-10】通過分解數據表提高數據的查詢效率..............264
【任務10-11】通過建立中間數據表提高聯合查詢的查詢效率...266
10.6.4 最佳化插入記錄的速度..........267
10.6.5 MySQL 分析表、檢查表和最佳化表..............................269
【任務10-12】分析與檢查MySQL數據表.....................269
10.6.6 SQL 語句的最佳化...............270
課後練習..........................................272
模組11
Python 程式連線與訪問MySQL 資料庫............ 275
11.1 連線MySQL 資料庫...............276
【任務11-1】使用PyMySQL 庫的Connect()方法連線MySQL 資料庫.......... 278
11.2 創建MySQL 數據表...............281
【任務11-2】創建MySQL 數據表“員工信息” .............. 281
11.3 向MySQL 數據表中插入記錄......................................282
【任務11-3】使用Insert 語句向數據表“員工信息”中插入記錄..............282
11.4 從MySQL 數據表中查詢符合條件的記錄.............................283
【任務11-4】從“員工信息”數據表中查詢符合指定條件的所有記錄.......... 283
11.5 更新MySQL 數據表...............284
【任務11-5】更新數據表“員工信息”中的數據................... 284
11.6 刪除MySQL 數據表中的記錄......................................285
【任務11-6】刪除數據表“員工信息”中的記錄................... 285
課後練習..........................................286
附錄A~F ................... 288
參考文獻...................... 290
作者簡介
陳承歡,三級教授,高級工程師,軟體設計師,湖南省省級專業帶頭人,湖南省青年骨幹教師,武漢大學軟體工程專業,湖南鐵道職業技術學院教務處處長。2008年,曾赴澳大利亞坎培門理工學院培訓交流,2015年,曾赴加拿大聖力嘉學院培訓交流,2019年,曾赴英國、德國學習交流。主持開發職業教育特色教材50多本。國家精品課程與國家精品共享課程配套教材1本,國家職業教育資源庫配套教材3本。主持《網頁設計與製作》國家精品課程,主持《網頁設計與製作》國家精品共享課程,主持《計算機維護與維修》、《實用工具軟體套用》、《網頁樣式設計》3門國家資源庫課程