MySQL 8從入門到精通(視頻教學版)

《MySQL 8從入門到精通(視頻教學版)》是2019年8月1日清華大學出版社出版的圖書,作者是王英英。

基本介紹

  • 書名:MySQL 8從入門到精通(視頻教學版)
  • 作者:王英英
  • ISBN:9787302531272
  • 定價:128元
  • 出版社:清華大學出版社 
  • 出版時間:2019.08.01
圖書簡介,圖書目錄,

圖書簡介

本書主要內容包括MySQL的安裝與配置、資料庫的創建、數據表的創建、數據類型和運算符、MySQL函式、查詢數據、數據表的操作(插入、更新與刪除數據)、索引、存儲過程和函式、視圖、觸發器、用戶管理、數據備份與還原、MySQL日誌、性能最佳化、MySQLReplication、MySQLWorkbench、MySQLUtilities、MySQLProxy、PHP操作MySQL資料庫和PDO資料庫抽象類庫等。最後通過3個綜合案例的資料庫設計,進一步講述MySQL在實際工作中的套用。

圖書目錄

第1章 初識MySQL 1
1.1 資料庫基礎 1
1.1.1 什麼是資料庫 2
1.1.2 表 2
1.1.3 數據類型 2
1.1.4 主鍵 3
1.2 資料庫技術構成 3
1.2.1 資料庫系統 3
1.2.2 SQL語言 4
1.2.3 資料庫訪問接口 5
1.3 什麼是MySQL 5
1.3.1 客戶端/伺服器軟體 5
1.3.2 MySQL版本 6
1.3.3 MySQL的優勢 7
1.4 MySQL工具 7
1.4.1 MySQL命令行實用程式 7
1.4.2 MySQL Workbench 8
1.5 MySQL 8.0的新特性簡述 9
1.6 如何學習MySQL 11
第2章 MySQL的安裝與配置 13
2.1 Windows平台下安裝與配置MySQL 8.0 13
2.1.1 安裝MySQL 8.0 14
2.1.2 配置MySQL 8.0 17
2.2 啟動服務並登錄MySQL資料庫 22
2.2.1 啟動MySQL服務 22
2.2.2 登錄MySQL資料庫 24
2.2.3 配置Path變數 25
2.3 MySQL常用圖形管理工具 27
2.4 Linux平台下安裝與配置MySQL 8.0 28
2.4.1 Linux作業系統下的MySQL版本介紹 28
2.4.2 安裝和配置MySQL的RPM包 29
2.4.3 安裝和配置MySQL的源碼包 32
2.5 專家解惑 32
2.6 經典習題 33
第...
第3章資料庫的基本操作34
3.1創建資料庫34
3.2刪除資料庫36
3.3MySQL8.0的新特性——系統表全部為InnoDB表36
3.4綜合案例——資料庫的創建和刪除37
3.5專家解惑39
3.6經典習題39
第4章數據表的基本操作40
4.1創建數據表40
4.1.1創建表的語法形式41
4.1.2使用主鍵約束42
4.1.3使用外鍵約束43
4.1.4使用非空約束44
4.1.5使用唯一性約束45
4.1.6使用默認約束46
4.1.7設定表的屬性值自動增加46
4.2查看數據表結構47
4.2.1查看錶基本結構語句DESCRIBE47
4.2.2查看錶詳細結構語句SHOWCREATETABLE48
4.3修改數據表49
4.3.1修改表名49
4.3.2修改欄位的數據類型50
4.3.3修改欄位名51
4.3.4添加欄位52
4.3.5刪除欄位54
4.3.6修改欄位的排列位置55
4.3.7更改表的存儲引擎56
4.3.8刪除表的外鍵約束57
4.4刪除數據表58
4.4.1刪除沒有被關聯的表59
4.4.2刪除被其他表關聯的主表59
4.5MySQL8.0的新特性1——默認字元集改為utf8mb461
4.6MySQL8.0的新特性2——自增變數的持久化62
4.7綜合案例——數據表的基本操作64
4.8專家解惑72
4.9經典習題72
第5章數據類型和運算符74
5.1MySQL數據類型介紹74
5.1.1整數類型75
5.1.2浮點數類型和定點數類型76
5.1.3日期與時間類型78
5.1.4文本字元串類型89
5.1.5二進制字元串類型94
5.2如何選擇數據類型96
5.3常見運算符介紹98
5.3.1運算符概述98
5.3.2算術運算符98
5.3.3比較運算符100
5.3.4邏輯運算符107
5.3.5位運算符110
5.3.6運算符的優先權112
5.4綜合案例——運算符的使用113
5.5專家解惑115
5.6經典習題116
第6章MySQL函式117
6.1MySQL函式簡介117
6.2數學函式118
6.2.1絕對值函式ABS(x)和返回圓周率的函式PI()118
6.2.2平方根函式SQRT(x)和求余函式MOD(x,y)118
6.2.3獲取整數的函式CEIL(x)、CEILING(x)和FLOOR(x)119
6.2.4獲取隨機數的函式RAND()和RAND(x)120
6.2.5函式ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)120
6.2.6符號函式SIGN(x)121
6.2.7冪運算函式POW(x,y)、POWER(x,y)和EXP(x)122
6.2.8對數運算函式LOG(x)和LOG10(x)122
6.2.9角度與弧度相互轉換的函式RADIANS(x)和DEGREES(x)123
6.2.10正弦函式SIN(x)和反正弦函式ASIN(x)123
6.2.11餘弦函式COS(x)和反餘弦函式ACOS(x)124
6.2.12正切函式、反正切函式和餘切函式124
6.3字元串函式125
6.3.1計算字元串字元數的函式和字元串長度的函式125
6.3.2合併字元串函式CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…)126
6.3.3替換字元串的函式INSERT(s1,x,len,s2)126
6.3.4字母大小寫轉換函式127
6.3.5獲取指定長度的字元串的函式LEFT(s,n)和RIGHT(s,n)128
6.3.6填充字元串的函式LPAD(s1,len,s2)和RPAD(s1,len,s2)128
6.3.7刪除空格的函式LTRIM(s)、RTRIM(s)和TRIM(s)129
6.3.8刪除指定字元串的函式TRIM(s1FROMs)130
6.3.9重複生成字元串的函式REPEAT(s,n)130
6.3.10空格函式SPACE(n)和替換函式REPLACE(s,s1,s2)130
6.3.11比較字元串大小的函式STRCMP(s1,s2)131
6.3.12獲取子串的函式SUBSTRING(s,n,len)和MID(s,n,len)131
6.3.13匹配子串開始位置的函式132
6.3.14字元串逆序的函式REVERSE(s)133
6.3.15返回指定位置的字元串的函式133
6.3.16返回指定字元串位置的函式FIELD(s,s1,s2,…,sn)133
6.3.17返回子串位置的函式FIND_IN_SET(s1,s2)134
6.3.18選取字元串的函式MAKE_SET(x,s1,s2,…,sn)134
6.4日期和時間函式135
6.4.1獲取當前日期的函式和獲取當前時間的函式135
6.4.2獲取當前日期和時間的函式135
6.4.3UNIX時間戳函式136
6.4.4返回UTC日期的函式和返回UTC時間的函式137
6.4.5獲取月份的函式MONTH(date)和MONTHNAME(date)137
6.4.6獲取星期的函式DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)138
6.4.7獲取星期數的函式WEEK(d)和WEEKOFYEAR(d)138
6.4.8獲取天數的函式DAYOFYEAR(d)和DAYOFMONTH(d)139
6.4.9獲取年份、季度、小時、分鐘和秒鐘的函式140
6.4.10獲取日期的指定值的函式EXTRACT(typeFROMdate)141
6.4.11時間和秒鐘轉換的函式141
6.4.12計算日期和時間的函式142
6.4.13將日期和時間格式化的函式145
6.5條件判斷函式147
6.5.1IF(expr,v1,v2)函式147
6.5.2IFNULL(v1,v2)函式148
6.5.3CASE函式148
6.6系統信息函式149
6.6.1獲取MySQL版本號、連線數和資料庫名的函式149
6.6.2獲取用戶名的函式151
6.6.3獲取字元串的字元集和排序方式的函式151
6.6.4獲取最後一個自動生成的ID值的函式152
6.7MySQL8.0的新特性1——加密函式154
6.7.1加密函式MD5(str)154
6.7.2加密函式SHA(str)154
6.7.3加密函式SHA2(str,hash_length)154
6.8其他函式155
6.8.1格式化函式FORMAT(x,n)155
6.8.2不同進制的數字進行轉換的函式155
6.8.3IP位址與數字相互轉換的函式156
6.8.4加鎖函式和解鎖函式156
6.8.5重複執行指定操作的函式157
6.8.6改變字元集的函式158
6.8.7改變數據類型的函式158
6.9MySQL8.0的新特性2——視窗函式159
6.10綜合案例——MySQL函式的使用160
6.11專家解惑163
6.12經典習題164
第7章查詢數據165
7.1基本查詢語句165
7.2單表查詢168
7.2.1查詢所有欄位168
7.2.2查詢指定欄位169
7.2.3查詢指定記錄171
7.2.4帶IN關鍵字的查詢172
7.2.5帶BETWEENAND的範圍查詢174
7.2.6帶LIKE的字元匹配查詢175
7.2.7查詢空值176
7.2.8帶AND的多條件查詢178
7.2.9帶OR的多條件查詢179
7.2.10查詢結果不重複180
7.2.11對查詢結果排序181
7.2.12分組查詢184
7.2.13使用LIMIT限制查詢結果的數量189
7.3使用集合函式查詢190
7.3.1COUNT()函式191
7.3.2SUM()函式192
7.3.3AVG()函式193
7.3.4MAX()函式194
7.3.5MIN()函式195
7.4連線查詢196
7.4.1內連線查詢196
7.4.2外連線查詢199
7.4.3複合條件連線查詢201
7.5子查詢202
7.5.1帶ANY、SOME關鍵字的子查詢202
7.5.2帶ALL關鍵字的子查詢203
7.5.3帶EXISTS關鍵字的子查詢203
7.5.4帶IN關鍵字的子查詢204
7.5.5帶比較運算符的子查詢206
7.6合併查詢結果208
7.7為表和欄位取別名210
7.7.1為表取別名210
7.7.2為欄位取別名212
7.8使用正則表達式查詢213
7.8.1查詢以特定字元或字元串開頭的記錄214
7.8.2查詢以特定字元或字元串結尾的記錄215
7.8.3用符號"."來替代字元串中的任意一個字元215
7.8.4使用"*"和"+"來匹配多個字元216
7.8.5匹配指定字元串216
7.8.6匹配指定字元中的任意一個217
7.8.7匹配指定字元以外的字元218
7.8.8使用{n,}或者{n,m}來指定字元串連續出現的次數219
7.9MySQL8.0的新特性1——GROUPBY不再隱式排序220
7.10MySQL8.0的新特性2——通用表表達式222
7.11綜合案例——數據表查詢操作225
7.12專家解惑232
7.13經典習題233
第8章插入、更新與刪除數據234
8.1插入數據234
8.1.1為表的所有欄位插入數據235
8.1.2為表的指定欄位插入數據236
8.1.3同時插入多條記錄238
8.1.4將查詢結果插入到表中239
8.2更新數據241
8.3刪除數據243
8.4為表增加計算列245
8.5MySQL8.0的新特性——DDL的原子化246
8.6綜合案例——記錄的插入、更新和刪除247
8.7專家解惑251
8.8經典習題252
第9章索引253
9.1索引簡介253
9.1.1索引的含義和特點254
9.1.2索引的分類254
9.1.3索引的設計原則255
9.2創建索引255
9.2.1創建表的時候創建索引256
9.2.2在已經存在的表上創建索引261
9.3刪除索引267
9.4MySQL8.0的新特性1——支持降序索引269
9.5MySQL8.0的新特性2——統計直方圖272
9.5.1直方圖的優點272
9.5.2直方圖的基本操作273
9.6綜合案例——創建索引274
9.7專家解惑277
9.8經典習題277
第10章存儲過程和函式278
10.1創建存儲過程和函式279
10.1.1創建存儲過程279
10.1.2創建存儲函式281
10.1.3變數的使用282
10.1.4定義條件和處理程式283
10.1.5游標的使用286
10.1.6流程控制的使用287
10.2調用存儲過程和函式291
10.2.1調用存儲過程291
10.2.2調用存儲函式292
10.3查看存儲過程和函式293
10.3.1使用SHOWSTATUS語句查看存儲過程和函式的狀態293
10.3.2使用SHOWCREATE語句查看存儲過程和函式的定義294
10.3.3從information_schema.Routines表中查看存儲過程和函式的信息295
10.4修改存儲過程和函式296
10.5刪除存儲過程和函式298
10.6MySQL8.0的新特性——全局變數的持久化298
10.7綜合案例——創建存儲過程和函式299
10.8專家解惑302
10.9經典習題303
第11章視圖304
11.1視圖概述304
11.1.1視圖的含義305
11.1.2視圖的作用305
11.2創建視圖306
11.2.1創建視圖的語法形式306
11.2.2在單表上創建視圖307
11.2.3在多表上創建視圖307
11.3查看視圖308
11.3.1使用DESCRIBE語句查看視圖基本信息308
11.3.2使用SHOWTABLESTATUS語句查看視圖基本信息309
11.3.3使用SHOWCREATEVIEW語句查看視圖詳細信息310
11.3.4在views表中查看視圖詳細信息311
11.4修改視圖312
11.4.1使用CREATEORREPLACEVIEW語句修改視圖312
11.4.2使用ALTER語句修改視圖313
11.5更新視圖314
11.6刪除視圖316
11.7綜合案例——視圖套用317
11.8專家解惑325
11.9經典習題326
第12章MySQL觸發器327
12.1創建觸發器327
12.1.1創建只有一個執行語句的觸發器328
12.1.2創建有多個執行語句的觸發器329
12.2查看觸發器331
12.2.1利用SHOWTRIGGERS語句查看觸發器信息331
12.2.2在triggers表中查看觸發器信息333
12.3觸發器的使用334
12.4刪除觸發器335
12.5綜合案例——觸發器的使用336
12.6專家解惑338
12.7經典習題338
第13章MySQL許可權與安全管理339
13.1許可權表339
13.1.1user表340
13.1.2db表342
13.1.3tables_priv表和columns_priv表343
13.1.4procs_priv表344
13.2賬戶管理344
13.2.1登錄和退出MySQL伺服器345
13.2.2新建普通用戶346
13.2.3刪除普通用戶348
13.2.4root用戶修改自己的密碼349
13.2.5root用戶修改普通用戶密碼350
13.3許可權管理351
13.3.1MySQL的各種許可權351
13.3.2授權353
13.3.3收回許可權355
13.3.4查看許可權356
13.4訪問控制357
13.4.1連線核實階段357
13.4.2請求核實階段357
13.5提升安全性358
13.5.1AES256加密358
13.5.2密碼到期更換策略360
13.5.3安全模式安裝361
13.6MySQL8.0的新特性——管理角色362
13.7綜合案例——綜合管理用戶許可權363
13.8專家解惑366
13.9經典習題366
第14章數據備份與恢復368
14.1數據備份368
14.1.1使用MySQLdump命令備份369
14.1.2直接複製整個資料庫目錄374
14.1.3使用MySQLhotcopy工具快速備份375
14.2數據恢復375
14.2.1使用MySQL命令恢復375
14.2.2直接複製到資料庫目錄376
14.2.3MySQLhotcopy快速恢復377
14.3資料庫遷移377
14.3.1相同版本的MySQL資料庫之間的遷移377
14.3.2不同版本的MySQL資料庫之間的遷移378
14.3.3不同資料庫之間的遷移378
14.4表的導出和導入378
14.4.1使用SELECT…INTOOUTFILE導出文本檔案379
14.4.2使用MySQLdump命令導出文本檔案383
14.4.3使用MySQL命令導出文本檔案385
14.4.4使用LOADDATAINFILE方式導入文本檔案389
14.4.5使用MySQLimport命令導入文本檔案391
14.5綜合案例——數據的備份與恢復392
14.6專家解惑396
14.7經典習題397
第15章MySQL日誌398
15.1日誌簡介398
15.2二進制日誌399
15.2.1啟動和設定二進制日誌399
15.2.2查看二進制日誌401
15.2.3刪除二進制日誌402
15.2.4使用二進制日誌恢複數據庫404
15.2.5暫時停止二進制日誌功能404
15.3錯誤日誌405
15.3.1啟動和設定錯誤日誌405
15.3.2查看錯誤日誌405
15.3.3刪除錯誤日誌406
15.4通用查詢日誌407
15.4.1啟動通用查詢日誌407
15.4.2查看通用查詢日誌407
15.4.3刪除通用查詢日誌408
15.5慢查詢日誌408
15.5.1啟動和設定慢查詢日誌409
15.5.2查看慢查詢日誌409
15.5.3刪除慢查詢日誌410
15.6MySQL8.0的新特性——日誌分類更詳細410
15.7綜合案例——MySQL日誌的綜合管理410
15.8專家解惑416
15.9經典習題416
第16章性能最佳化418
16.1最佳化簡介418
16.2最佳化查詢419
16.2.1分析查詢語句419
16.2.2索引對查詢速度的影響423
16.2.3使用索引查詢424
16.2.4最佳化子查詢426
16.3最佳化資料庫結構427
16.3.1將欄位很多的表分解成多個表427
16.3.2增加中間表428
16.3.3增加冗餘欄位430
16.3.4最佳化插入記錄的速度430
16.3.5分析表、檢查表和最佳化表432
16.4最佳化MySQL伺服器434
16.4.1最佳化伺服器硬體434
16.4.2最佳化MySQL的參數434
16.5臨時表性能最佳化435
16.6伺服器語句逾時處理437
16.7創建全局通用表空間438
16.8MySQL8.0的新特性1——支持不可見索引438
16.9MySQL8.0的新特性2——增加資源組440
16.10綜合案例——全面最佳化MySQL伺服器442
16.11專家解惑444
16.12經典習題445
第17章MySQLReplication446
17.1MySQLReplication概述446
17.2Windows環境下的MySQL主從複製447
17.2.1複製前的準備工作447
17.2.2Windows環境下實現主從複製448
17.2.3Windows環境下主從複製測試455
17.3Linux環境下的MySQL複製456
17.3.1下載並安裝MySQL8.0456
17.3.2單機主從複製前的準備工作458
17.3.3MySQLd_multi實現單機主從複製461
17.3.4不同伺服器之間實現主從複製468
17.3.5MySQL主要複製啟動選項470
17.3.6指定複製的資料庫或者表471
17.4查看Slave的複製進度478
17.5日常管理和維護479
17.5.1了解伺服器的狀態480
17.5.2伺服器複製出錯的原因481
17.6切換主從伺服器483
17.7多源複製的改進487
17.8專家解惑489
17.9經典習題490
第18章MySQLWorkbench的使用492
18.1MySQLWorkbench簡介492
18.1.1MySQLWorkbench的概述493
18.1.2MySQLWorkbench的優勢493
18.1.3MySQLWorkbench的安裝493
18.2SQLDevelopment的基本操作495
18.2.1創建資料庫連線495
18.2.2創建新的資料庫496
18.2.3創建和刪除新的數據表498
18.2.4添加、修改表記錄501
18.2.5查詢表記錄502
18.2.6修改表結構503
18.3DataModeling的基本操作504
18.3.1建立ER模型504
18.3.2導入ER模型509
18.4ServerAdministration的基本操作511
18.4.1管理MySQL用戶511
18.4.2備份MySQL資料庫514
18.4.3恢復MySQL資料庫517
18.5專家解惑518
18.6經典習題518
第19章MySQL管理利器——MySQLUtilities519
19.1MySQLUtilities概述519
19.2安裝與配置520
19.2.1下載與安裝MySQLUtilities520
19.2.2MySQLUtilities連線資料庫522
19.3管理與維護522
19.3.1使用mysqldbcompare比較數據523
19.3.2使用mysqldbcopy複製數據523
19.3.3使用mysqldbexport導出數據524
19.3.4使用mysqldbimport導入數據524
19.3.5使用mysqldiff比較對象的定義525
19.4專家解惑525
19.5經典習題526
第20章讀寫分離的利器——MySQLProxy527
20.1概述527
20.2安裝與配置528
20.2.1下載與安裝MySQLProxy529
20.2.2配置MySQLProxy參數529
20.2.3配置Path變數532
20.3使用MySQLProxy實現讀寫分離533
20.4專家解惑534
20.5經典習題535
第21章精通MySQL存儲引擎536
21.1MySQL架構536
21.1.1MySQL物理檔案的組成537
21.1.2MySQL各邏輯塊簡介539
21.1.3MySQL各邏輯塊協調工作541
21.2資料庫存儲引擎543
21.2.1MySQL存儲引擎簡介543
21.2.2InnoDB存儲引擎545
21.2.3MyISAM存儲引擎545
21.2.4MEMORY存儲引擎546
21.2.5MERGE存儲引擎546
21.2.6BerkeleyDB存儲引擎548
21.3認識MySQL的鎖定機制549
21.4MyISAM的鎖定機制554
21.4.1MyISAM表級鎖的鎖模式554
21.4.2獲取MyISAM表級鎖的爭用情況556
21.4.3MyISAM表級鎖加鎖方法557
21.4.4MyISAMConcurrentInsert的特性559
21.4.5MyISAM表級鎖最佳化建議561
21.5InnoDB的鎖定機制562
21.5.1InnoDB行級鎖模式562
21.5.2獲取InnoDB行級鎖的爭用情況567
21.5.3InnoDB行級鎖的實現方法569
21.5.4間隙鎖(Net-Key鎖)575
21.5.5InnoDB在不同隔離級別下加鎖的差異576
21.5.6InnoDB存儲引擎中的死鎖576
21.5.7InnoDB行級鎖最佳化建議579
21.6InnoDB存儲引擎的線上操作580
21.6.1線上添加主鍵580
21.6.2線上增大VARCHAR列長581
21.6.3線上重命名索引582
21.7MySQL8.0的新特性1——支持JSON類型582
21.8MySQL8.0的新特性2——全文索引的加強584
21.9MySQL8.0的新特性3——動態修改InnoDB緩衝池的大小586
21.10MySQL8.0的新特性4——表空間數據加密587
21.11MySQL8.0的新特性5——跳過鎖等待588
21.12專家解惑589
21.13經典習題590
第22章PHP操作MySQL資料庫591
22.1PHP訪問MySQL資料庫的一般步驟591
22.2連線資料庫前的準備工作592
22.3訪問資料庫593
22.3.1使用mysqli_connect()函式連線MySQL伺服器593
22.3.2使用mysqli_select_db()函式更改默認的資料庫594
22.3.3使用mysqli_close()函式關閉MySQL連線595
22.3.4使用mysqli_query()函式執行SQL語句595
22.3.5獲取查詢結果集中的記錄數596
22.3.6獲取結果集中的一條記錄作為枚舉數組597
22.3.7獲取結果集中的記錄作為關聯數組598
22.3.8獲取結果集中的記錄作為對象599
22.3.9使用mysqli_fetch_array()函式獲取結果集記錄599
22.3.10使用mysqli_free_result()函式釋放資源600
22.4綜合實例1——PHP操作MySQL資料庫600
22.5綜合實例2——使用insert語句動態添加用戶信息602
22.6綜合實例3——使用select語句查詢數據信息604
22.7專家解惑605
第23章PDO資料庫抽象類庫607
23.1PDO概述607
23.2PDO的安裝608
23.3使用PDO操作MySQL608
23.3.1連線MySQL資料庫的方法609
23.3.2使用PDO時的trycatch錯誤處理結構610
23.3.3使用PDO執行SQL的選擇語句612
23.3.4使用PDO獲取返回數據的類方法613
23.3.5使用PDO執行SQL的添加、修改語句615
23.3.6使用PDO執行SQL的刪除語句616
23.4綜合實例——PDO的prepare表述616
23.5專家解惑618
第24章綜合項目1——開發網上商城619
24.1系統功能描述619
24.2系統功能分析620
24.2.1系統功能分析620
24.2.2數據流程和資料庫621
24.3代碼的具體實現623
24.4程式運行633
第25章綜合項目2——論壇管理系統資料庫設計635
25.1系統概述635
25.2系統功能636
25.3資料庫設計和實現637
25.3.1設計方案圖表637
25.3.2設計表639
25.3.3設計索引642
25.3.4設計視圖643
25.3.5設計觸發器644
第26章綜合項目3——新聞發布系統資料庫設計646
26.1系統概述646
26.2系統功能647
26.3資料庫設計和實現648
26.3.1設計表648
26.3.2設計索引652
26.3.3設計視圖653
26.3.4設計觸發器654

相關詞條

熱門詞條

聯絡我們