前言
第1 篇 MariaDB 資料庫基礎
Chapter 01?? 資料庫概述
1.1 MariaDB 基礎
1.1.1 常見的資料庫系統
1.1.2 為什麼要使用MariaDB
1.1.3 MariaDB 版本和取得
1.2 如何學習資料庫
1.2.1 多上機實作
1.2.2 多撰寫SQL 敘述
1.3 常見問題及解答
1.4 小結
1.5 本章習題
Chapter 02? 在Windows 平台下安裝與設定MariaDB
2.1 安裝與設定MariaDB
2.1.1 安裝MariaDB
2.1.2 啟動MariaDB 服務
2.1.3 登入MariaDB 資料庫
2.1.4 設定Path 變數
2.2 更改MariaDB 的設定
2.3 MariaDB 常用圖形管理工具
2.4 使用免安裝的MariaDB
2.5 上機實踐
2.6 常見問題及解答2.1.1 MVC 模式概述
2.7 小結
Chapter 03? 在Linux 平台下安裝與設定MariaDB?? ?
3.1 Linux 作業系統下的MariaDB 版本介紹
3.2 安裝和設定MariaDB 的RPM 套件
3.3 安裝和設定MariaDB 的DEB 套件
3.4 安裝和設定MariaDB 的二進位套件
3.5 安裝和設定MariaDB 的原始程式套件
3.6 上機實踐
3.7 常見問題及解答
3.8 小結
3.9 本章習題
第2 篇 MariaDB 資料庫基礎維護
Chapter 04? MariaDB 資料類型?? ?
4.1 MariaDB 資料類型介紹
4.1.1 整數類型
4.1.2 浮點數類型和定點數類型
4.1.3 日期與時間類型
4.1.4 字串類型
4.1.5 二進位類型
4.2 如何選擇資料類型
4.3 常見問題及解答
4.4 小結
4.5 本章習題
Chapter 05? 操作資料庫???????????????????????? ?
5.1 建立資料庫
5.2 刪除資料庫
5.3 資料庫儲存引擎
5.3.1 MariaDB 儲存引擎簡介
5.3.2 InnoDB 儲存引擎
5.3.3 MyISAM 儲存引擎
5.3.4 MEMORY 儲存引擎
5.3.5 儲存引擎的選擇
5.4 本章實例
5.5 上機實踐
5.6 常見問題及解答
5.7 小結
5.8 本章習題
Chapter 06? 建立、修改和刪除表?? ?
6.1 建立表
6.1.1 建立表的語法形式
6.1.2 設定表的主鍵
6.1.3 設定表的外鍵
6.1.4 設定表的不可為空約束
6.1.5 設定表的唯一性約束
6.1.6 設定表的屬性值自動增加
6.1.7 設定表的屬性的預設值
6.2 檢視表結構
6.2.1 檢視表基本結構敘述DESCRIBE
6.2.2 檢視表詳細結構敘述SHOW CREATE TABLE
6.3 修改表
6.3.1 修改表名
6.3.2 修改欄位的資料類型
6.3.3 修改欄位名稱
6.3.4 增加欄位
6.3.5 刪除欄位
6.3.6 修改欄位的排列位置
6.3.7 更改表的儲存引擎
6.3.8 刪除表的外鍵約束
6.4 刪除表
6.4.1 刪除沒有被連結的普通表
6.4.2 刪除被其他表連結的父表
6.5 本章實例
6.6 上機實踐
6.7 常見問題及解答
6.8 小結
6.9 本章習題
Chapter 07?? 索引
7.1 索引簡介
7.1.1 索引的含義和特點
7.1.2 索引的分類
7.1.3 索引的設計原則
7.2 建立索引
7.2.1 建立表的時候建立索引
7.2.2 在已經存在的表上建立索引
7.2.3 用ALTER TABLE 敘述來建立索引
7.3 刪除索引
7.4 本章實例
7.5 上機實踐
7.6 常見問題及解答
7.7 小結
7.8 本章習題
Chapter 08?? 視圖
8.1 視圖簡介
8.1.1 視圖的含義
8.1.2 視圖的作用
8.2 創建視圖
8.2.1 建立視圖的語法形式
8.2.2 在單表上建立視圖
8.2.3 在多表上建立視圖
8.3 查看視圖
8.3.1 DESCRIBE 敘述檢視視圖基本資訊
8.3.2 SHOW TABLE STATUS 敘述檢視視圖基本資訊
8.3.3 SHOW CREATE VIEW 敘述檢視視圖詳細資訊
8.3.4 在views 表中檢視視圖詳細資訊
8.4 修改視圖
8.4.1 CREATE OR REPLACE VIEW 敘述修改視圖
8.4.2 ALTER 敘述修改視圖
8.5 更新視圖
8.6 刪除視圖
8.7 本章實例
8.8 上機實踐
8.9 常見問題及解答
8.10 小結
8.11 本章習題
Chapter 09?? 觸發器
9.1 建立觸發器
9.1.1 建立只有一個執行敘述的觸發器
9.1.2 建立有多個執行敘述的觸發器
9.2 檢視觸發器
9.2.1 SHOW TRIGGERS 敘述檢視觸發器資訊
9.2.2 在triggers 表中檢視觸發器資訊
9.3 觸發器的使用
9.4 刪除觸發器
9.5 本章實例
9.6 上機實踐
9.7 常見問題及解答
9.8 小結
9.9 本章習題
第3 篇 SQL 查詢敘述
Chapter 10? 查詢資料
10.1 基本查詢敘述
10.2 單表查詢
10.2.1 查詢所有欄位
10.2.2 查詢指定欄位
10.2.3 查詢指定記錄
10.2.4 帶IN 關鍵字的查詢
10.2.5 帶BETWEEN AND 的範圍查詢
10.2.6 帶LIKE 的字元比對查詢
10.2.7 查詢空值
10.2.8 帶AND 的多條件查詢
10.2.9 帶OR 的多條件查詢
10.2.10 查詢結果不重複
10.2.11 對查詢結果排序
10.2.12 分組查詢
10.2.13 用LIMIT 限制查詢結果的數量
10.3 使用集合函數查詢
10.3.1 COUNT() 函數
10.3.2 SUM() 函數
10.3.3 AVG() 函數
10.3.4 MAX() 函數
10.3.5 MIN() 函數
10.4 連接查詢
10.4.1 內連接查詢
10.4.2 外連接查詢
10.4.3 複合條件連接查詢
10.5 子查詢
10.5.1 帶IN 關鍵字的子查詢
10.5.2 帶比較運算子的子查詢
10.5.3 帶EXISTS 關鍵字的子查詢
10.5.4 帶ANY 關鍵字的子查詢
10.5.5 帶ALL 關鍵字的子查詢
10.6 合併查詢結果
10.7 為表和欄位取別名
10.7.1 為表取別名
10.7.2 為欄位取別名
10.8 使用正規表示法查詢
10.8.1 查詢以特定字元或字串開頭的記錄
10.8.2 查詢以特定字元或字串結尾的記錄
10.8.3 用符號" . " 來替代字串中的任意一個字元
10.8.4 比對指定字元中的任意一個
10.8.5 比對指定字元以外的字元
10.8.6 比對指定字串
10.8.7 使用"*" 和"+" 來比對多個字元
10.8.8 使用{M} 或{M,N} 來指定字串連續出現的次數
10.9 本章實例
10.10 上機實踐
10.11 常見問題及解答5
10.12 小結
10.13 本章習題
Chapter 11?? 插入、更新與刪除資料
11.1 插入資料
11.1.1 為表的所有欄位插入資料
11.1.2 為表的指定欄位插入資料
11.1.3 同時插入多筆記錄
11.1.4 將查詢結果插入到表中
11.2 更新資料
11.3 刪除資料
11.4 本章實例
11.5 上機實踐
11.6 常見問題及解答
11.7 小結
11.8 本章習題
Chapter 12?? MariaDB 運算子
12.1 運算子簡介
12.2 算術運算子
12.3 比較運算子
12.4 邏輯運算子
12.5 位元運算子
12.6 運算子的優先順序
12.7 本章實例
12.8 上機實踐
12.9 常見問題及解答
12.10 小結
12.11 本章習題
Chapter 13? MariaDB 函數
13.1 MariaDB 函數簡介
13.2 數學函數
13.2.1 絕對值函數ABS(x) 和傳回圓周率的函數PI()
13.2.2 平方根函數SQRT(x) 和求餘函數MOD(x,y)
13.2.3 取得整數的函數CEIL(x)、CEILING(x) 和FLOOR(x)
13.2.4 取得亂數的函數RAND() 和RAND(x)
13.2.5 四捨五入函數ROUND(x)、ROUND(x,y) 和TRUNCATE(x,y)
13.2.6 符號函數SIGN(x)
13.2.7 冪運算函數POW(x,y)、POWER(x,y) 和EXP(x)
13.2.8 對數運算函數LOG(x) 和LOG10(x)
13.2.9 角度與弧度相互轉換的函數RADIANS(x) 和DEGREES(x)
13.2.10 正弦函數SIN(x) 和反正弦函數ASIN(x)
13.2.11 餘弦函數COS(x) 和反餘弦函數ACOS(x)
13.2.12 正切函數、反正切函數和餘切函數
13.3 字串函數
13.3.1 計算字串字元數的函數和字串長度的函數
13.3.2 合併字串的函數CONCAT(s1,s2,?) 和CONCAT_WS(x,s1,s2,?)
13.3.3 取代字串的函數INSERT(s1,x,len,s2)
13.3.4 字母大小寫轉換函數
13.3.5 取得指定長度的字串的函數LEFT(s,n) 和RIGHT(s,n)
13.3.6 填補字元串的函數LPAD(s1,len,s2) 和RPAD(s1,len,s2)
13.3.7 刪除空格的函數LTRIM(s)、RTRIM(s) 和TRIM(s)
13.3.8 刪除指定字串的函數TRIM(s1 FROM s)
13.3.9 重複產生字串的函數REPEAT(s,n)
13.3.10 空格函數SPACE(n) 和取代函數REPLACE(s,s1,s2)
13.3.11 比較字串大小的函數STRCMP(s1,s2)
13.3.12 取得子字串的函數SUBSTRING(s,n,len) 和MID(s,n,len)
13.3.13 比對子字串開始位置的函數
13.3.14 字串反向的函數REVERSE(s)
13.3.15 傳回指定位置的字串的函數
13.3.16 傳回指定字串位置的函數FIELD(s,s1,s2,?)
13.3.17 傳回子字串位置的函數FIND_IN_SET(s1,s2).
13.3.18 選取字串的函數MAKE_SET(x,s1,s2,?)
13.4 日期和時間函數
13.4.1 取得目前日期的函數和取得目前時間的函數
13.4.2 取得目前日期和時間的函數
13.4.3 UNIX 時間戳記函數
13.4.4 傳回UTC 日期的函數和傳回UTC 時間的函數
13.4.5 取得月份的函數MONTH(d) 和MONTHNAME(d)
13.4.6 取得星期的函數DAYNAME(d)、DAYOFWEEK(d) 和
WEEKDAY(d)
13.4.7 取得星期數的函數WEEK(d) 和WEEKOFYEAR(d)
13.4.8 取得天數的函數DAYOFYEAR(d) 和DAYOFMONTH(d)
13.4.9 取得年份、季、小時、分鐘和秒鐘的函數
13.4.10 取得日期的指定值的函數EXTRACT(type FROM d)
13.4.11 時間和秒鐘轉換的函數
13.4.12 計算日期和時間的函數
13.4.13 將日期和時間格式化的函數
13.5 條件判斷函數
13.5.1 IF(expr,v1,v2) 函數
13.5.2 IFNULL(v1,v2) 函數
13.5.3 CASE 函數
13.6 系統資訊函數
13.6.1 取得MariaDB 版本編號、連接數和資料庫名稱的函數
13.6.2 取得使用者名稱的函數
13.6.3 取得字串的字元集和排序方式的函數
13.6.4 取得最後一個自動產生的ID 值的函數
13.7 加密函數
13.7.1 加密函數PASSWORD(str)
13.7.2 加密函數MD5(str)
13.7.3 加密函數ENCODE(str,pswd_str)
13.7.4 解密函數DECODE(crypt_str,pswd_str)
13.8 其他函數
13.8.1 格式化函數FORMAT(x,n)
13.8.2 不同進位的數字進行轉換的函數
13.8.3 IP 位址與數字相互轉換的函數
13.8.4 加鎖函數和解鎖函數
13.8.5 重複執行指定操作的函數
13.8.6 改變字元集的函數
13.8.7 改變欄位資料類型的函數
13.9 本章實例
13.10 上機實踐
13.11 常見問題及解答
13.12 小結
13.13 本章習題
Chapter14?? 預存程序和函數
14.1 建立預存程序和函數
14.1.1 建立預存程序
14.1.2 建立儲存函數
14.1.3 變數的使用
14.1.4 定義條件和處理常式
14.1.5 游標的使用
14.1.6 流程控制的使用
14.2 呼叫預存程序和函數
14.2.1 呼叫預存程序
14.2.2 呼叫儲存函數
14.3 檢視預存程序和函數
14.3.1 SHOW STATUS 敘述檢視預存程序和函數的狀態
14.3.2 SHOW CREATE 敘述檢視預存程序和函數的定義
14.3.3 從information_schema.Routines 表中檢視預存程序和函數的
資訊
14.4 修改預存程序和函數
14.5 刪除預存程序和函數
14.6 本章實例
14.7 上機實踐
14.8 常見問題及解答
14.9 小結
14.10 本章習題
第4 篇 MariaDB 資料庫進階管理
Chapter15?? MariaDB 使用者管理
15.1 權限表
15.1.1 user 表
15.1.2 db 表和host 表
15.1.3 tables_priv 表和columns_priv 表
15.1.4 procs_priv 表
15.2 帳戶管理
15.2.1 新增普通使用者
15.2.2 刪除普通使用者
15.2.3 root 使用者修改自己的密碼
15.2.4 root 使用者修改普通使用者密碼
15.2.5 普通使用者修改密碼
15.3 權限管理
15.3.1 MariaDB 的各種許可權
15.3.2 授權
15.3.3 收回許可權
15.3.4 檢視許可權
15.4 本章實例
15.5 上機實踐
15.6 常見問題及解答
15.7 小結
15.8 本章習題
Chapter16?? 資料備份與還原
16.1 資料備份
16.1.1 使用mysqldump 指令備份
16.1.2 直接複製整個資料庫目錄
16.1.3 使用mysqlhotcopy 工具快速備份
16.2 資料還原
16.2.1 使用mysql 指令還原
16.2.2 直接複製到資料庫目錄
16.3 資料庫移轉
16.3.1 相同版本的MariaDB 資料庫之間的移轉
16.3.2 不同版本的MariaDB 資料庫之間的移轉
16.3.3 Windows 作業系統下的MySQL 向MariaDB 的移轉
16.3.4 Linux 作業系統下的MySQL 向MariaDB 的移轉
16.4 表的匯出和匯入
16.4.1 用SELECT?INTO OUTFILE 匯出文字檔
16.4.2 用mysqldump 指令匯出文字檔
16.4.3 用mysql 指令匯出文字檔
16.4.4 用LOAD DATA INFILE 方式匯入文字檔
16.4.5 用mysqlimport 指令匯入文字檔
16.5 本章實例
16.6 上機實踐
16.7 常見問題及解答
16.8 小結
16.9 本章習題
Chapter17?? MariaDB 記錄檔
17.1 記錄檔簡介
17.2 二進位記錄檔
17.2.1 啟動和設定二進位記錄檔
17.2.2 檢視二進位記錄檔
17.2.3 刪除二進位記錄檔
17.2.4 使用二進位記錄檔還原資料庫
17.2.5 暫時停止二進位記錄檔功能
17.3 錯誤記錄檔
17.3.1 啟動和設定錯誤記錄檔
17.3.2 檢視錯誤記錄檔
17.3.3 刪除錯誤記錄檔
17.4 通用查詢記錄檔
17.4.1 啟動和設定通用查詢記錄檔
17.4.2 檢視通用查詢記錄檔
17.4.3 刪除通用查詢記錄檔
17.5 慢查詢記錄檔
17.5.1 啟動和設定慢查詢記錄檔
17.5.2 檢視慢查詢記錄檔
17.5.3 刪除慢查詢記錄檔
17.6 本章實例
17.7 上機實踐
17.8 常見問題及解答
17.9 小結
17.10 本章習題
Chapter18?? 性能優化
18.1 優化簡介
18.2 優化查詢
18.2.1 分析查詢敘述
18.2.2 索引對查詢速度的影響
18.2.3 使用索引查詢
18.2.4 最佳化子查詢
18.3 最佳化資料庫結構
18.3.1 將欄位很多的表分解成多個表
18.3.2 增加中間表
18.3.3 增加容錯欄位
18.3.4 最佳化插入記錄的速度
18.3.5 分析表、檢查表和最佳化表
18.4 最佳化MariaDB 伺服器
18.4.1 最佳化伺服器硬體
18.4.2 最佳化MariaDB 的參數
18.5 本章實例
18.6 上機實踐
18.7 常見問題及解答
18.8 小結
18.9 本章習題
第5 篇 MariaDB 應用與實戰開發
Chapter19?? Java 存取MariaDB 資料庫
19.1 Java 連接MariaDB 資料庫
19.1.1 下載JDBC 驅動MariaDB Connector
19.1.2 安裝MariaDB Connector 驅動
19.1.3 連接MariaDB 資料庫
19.2 Java 操作MariaDB 資料庫
19.2.1 建立Statement 物件
19.2.2 使用SELECT 敘述查詢資料
19.2.3 插入、更新或刪除資料
19.2.4 執行任意SQL 敘述
19.2.5 關閉建立的物件
19.3 Java 備份與還原MariaDB 資料庫
19.3.1 Java 備份MariaDB 資料庫
19.3.2 Java 還原MariaDB 資料庫
19.4 本章實例
19.5 上機實踐
19.6 常見問題及解答
19.7 小結
19.8 本章習題
Chapter20?? PHP 存取MariaDB 資料庫
20.1 PHP 連接MariaDB 資料庫
20.1.1 Windows 作業系統下設定PHP
20.1.2 Linux 作業系統下設定PHP
20.1.3 連接MariaDB 資料庫
20.2 PHP 操作MariaDB 資料庫
20.2.1 執行SQL 敘述
20.2.2 處理查詢結果
20.2.3 取得查詢結果的欄位名稱
20.2.4 一次執行多個SQL 敘述
20.2.5 處理帶參數的SQL 敘述
20.2.6 關閉建立的物件
20.3 PHP 備份與還原MariaDB 資料庫
20.3.1 PHP 備份MariaDB 資料庫
20.3.2 PHP 還原MariaDB 資料庫
20.4 本章實例
20.5 上機實踐
20.6 常見問題及解答
20.7 小結
20.8 本章習題
Chapter21?? C# 存取MariaDB 資料庫
21.1 C# 連接MariaDB 資料庫
21.1.1 下載Connector/Net 驅動程式
21.1.2 安裝Connector/Net 驅動程式
21.1.3 使用Connector/Net 驅動程式
21.1.4 連接MariaDB 資料庫
21.2 C# 操作MariaDB 資料庫
21.2.1 建立MySqlCommand 物件
21.2.2 插入、更新或刪除資料
21.2.3 使用SELECT 敘述查詢資料
21.2.4 一次執行多個SELECT 敘述
21.2.5 處理SELECT 敘述只傳回一個值的情況
21.2.6 處理帶有參數的SQL 敘述
21.2.7 使用DataSet 物件和DataTable 物件
21.2.8 關閉建立的物件
21.3 C# 備份與還原MariaDB 資料庫
21.3.1 C# 備份MariaDB 資料庫
21.3.2 C# 還原MariaDB 資料庫
21.4 本章實例
21.5 上機實踐
21.6 常見問題及解答
21.7 小結
21.8 本章習題
Chapter22? 駕訓班學員管理系統
22.1 系統概述
22.2 系統功能
22.3 資料庫設計
22.3.1 設計表
22.3.2 設計索引
22.3.3 設計檢視
22.3.4 設計觸發器
22.4 系統實現
22.4.1 建構工程
22.4.2 存取和操作MariaDB 資料庫的程式
22.5 使用者管理模組
22.5.2 修改密碼
22.6 學籍管理模組
22.6.1 增加學員的學籍資訊
22.6.2 查詢學員的學籍資訊
22.6.3 修改學員的學籍資訊
22.6.4 刪除學員的學籍資訊
22.7 體檢管理模組
22.8 成績管理模組
22.9 憑證管理模組
22.10 小結