內容簡介
本書是一本講述SQL與資料庫設計的立體教程(含紙質圖書、教學課件、原始碼、視頻教程與答疑服務)。全書共分為4篇:第1篇為SQL知識基礎(第1章~第9章),介紹了SQL表管理、視圖管理、修改數據、查詢數據、匯總查詢結果、子查詢和表連線;第2篇為MySQL資料庫管理系統(第10章~第13章),介紹了MySQL資料庫管理系統安裝和日常管理、MySQL中特有的SQL語句和MySQL資料庫開發;第3篇為Oracle資料庫管理系統(第14章~第16章),介紹了Oracle資料庫管理系統安裝和日常管理、Oracle資料庫中特有的SQL語句和Oracle資料庫開發;第4篇為從資料庫設計到項目實戰(第17章和第18章),重點介紹資料庫設計,以及“PetStore寵物商店”項目的資料庫設計過程。為便於讀者高效學習,快速掌握SQL編程與實踐,本書提供了完整的教學課件、原始碼、豐富的配套視頻教程以及線上答疑服務等內容。本書適合作為普通高等學校資料庫相關課程的教材,也可以作為廣大程式設計師的參考用書。
圖書目錄
第1篇 SQL知識基礎
第1章 開篇綜述 3
1.1 數據管理的發展過程 3
1.2 數據邏輯模型 3
1.3 關係模型的核心概念 4
1.3.1 記錄和欄位 4
1.3.2 鍵 5
1.3.3 約束條件 6
1.4 關係模型資料庫管理系統 7
1.4.1 Oracle 7
1.4.2 SQL Server 7
1.4.3 DB 2 7
1.4.4 MySQL 7
1.4.5 SQLite 7
1.5 SQL概述 8
1.5.1 SQL標準 9
1.5.2 SQL句法 9
本章小結 10
第2章 學習環境搭建 11
2.1 麻雀雖小,五臟俱全——SQLite資料庫 11
2.1.1 下載SQLite資料庫 11
2.1.2 配置SQLite命令行工具 12
2.2 通過命令行訪問SQLite資料庫 13
2.3 使用GUI工具管理SQLite資料庫 15
2.3.1 下載和安裝DB4S 16
2.3.2 使用DB4S 17
本章小結 21
第3章 表管理 22
3.1 創建表 22
3.2 欄位數據類型 23
3.2.1 字元串數據 23
3.2.2 數字數據 23
3.2.3 日期時間數據 23
3.2.4 大型對象 24
3.3 指定鍵 24
3.3.1 指定候選鍵 24
3.3.2 指定主鍵 27
3.3.3 指定外鍵 28
3.4 其他約束 30
3.4.1 指定默認值 30
3.4.2 禁止空值 31
3.4.3 CHECK約束 31
3.5 修改表 32
3.5.1 修改表名 33
3.5.2 添加欄位 33
3.5.3 刪除欄位 34
3.6 刪除表 35
本章小結 36
第4章 視圖管理 37
4.1 視圖概念 37
4.2 創建視圖 38
4.2.1 案例準備:Oracle自帶示例——SCOTT用戶數據 38
4.2.2 提出問題 39
4.2.3 解決問題 41
4.3 修改視圖 42
4.4 刪除視圖 43
本章小結 43
第5章 修改數據 44
5.1 插入數據——INSERT語句 44
5.2 更改數據——UPDATE語句 45
5.3 刪除數據——DELETE語句 46
5.4 資料庫事務 47
5.4.1 理解事務概念 47
5.4.2 事務的特性 47
5.4.3 事務的狀態 48
5.4.4 事務控制 48
本章小結 50
第6章 查詢數據 51
6.1 SELECT語句 51
6.1.1 指定查詢欄位 51
6.1.2 指定欄位順序 51
6.1.3 選定所有欄位 52
6.1.4 為欄位指定別名 53
6.1.5 使用表達式 54
6.1.6 使用算術運算符 55
6.2 排序查詢結果——ORDER BY子句 56
6.3 篩選查詢結果——WHERE子句 58
6.3.1 比較運算符 58
6.3.2 邏輯運算符 58
6.3.3 IN運算符 61
6.3.4 BETWEEN運算符 62
6.3.5 LIKE運算符 63
6.3.6 運算符先後順序 65
本章小結 67
第7章 匯總查詢結果 68
7.1 聚合函式 68
7.1.1 COUNT函式 68
7.1.2 SUM函式 70
7.1.3 AVG函式 70
7.1.4 MIN和MAX函式 72
7.2 分類匯總 74
7.2.1 分組查詢結果——GROUP BY子句 74
7.2.2 使用HAVING子句篩選查詢結果 78
7.2.3 使用DISTINCT運算符選擇唯一值 81
本章小結 83
第8章 子查詢 84
8.1 子查詢的概念 84
8.1.1 從一個案例引出的思考 84
8.1.2 使用子查詢解決問題 84
8.2 單行子查詢 85
8.2.1 示例:查找所有工資超過平均工資的員工 85
8.2.2 示例:查找工資最高的員工 86
8.2.3 示例:查找與SMITH職位相同的員工 87
8.2.4 示例:查找誰的工資超過了工資最高的銷售人員 87
8.2.5 示例:查找職位與CLARK相同,且工資超過CLARK的員工 89
8.2.6 示例:查找資格最老的員工 89
8.2.7 示例:查找員工表中第2高的工資 90
8.3 多行子查詢 91
8.3.1 示例:查找銷售部所有員工 91
8.3.2 示例:查找與SMITH或CLARK職位不同的所有員工 92
8.4 嵌套子查詢 93
8.4.1 示例:查找超出平均工資員工所在部門 93
8.4.2 示例:查找員工表中工資第3高的員工信息 94
8.5 在DML中使用子查詢 95
8.5.1 在DELETE語句中使用子查詢 95
8.5.2 示例:刪除部門所在地為紐約的所有員工 95
8.5.3 在UPDATE語句中使用子查詢 96
8.5.4 示例:給所有低於平均工資的員工漲工資 96
本章小結 96
第9章 表連線 97
9.1 表連線的概念 97
9.1.1 使用表連線重構“找出所有銷售部所有員工信息”案例 97
9.1.2 準備數據 98
9.2 內連線 100
9.2.1 內連線語法1 101
9.2.2 內連線語法2 101
9.2.3 示例:找出部門在紐約的所有員工姓名 102
9.3 左連線 103
9.3.1 左連線語法 103
9.3.2 示例:員工表與部門表的左連線查詢 103
9.4 右連線 104
9.4.1 右連線語法 105
9.4.2 示例:員工表與部門表的右連線查詢 105
9.5 全連線 106
9.5.1 全連線語法 106
9.5.2 示例:員工表與部門表的全連線查詢 107
9.6 交叉連線 107
9.6.1 交叉連線語法1 108
9.6.2 交叉連線語法2 108
本章小結 109
第2篇 MySQL資料庫管理系統
第10章 MySQL資料庫管理系統安裝 113
10.1 MySQL概述 113
10.1.1 MySQL的主要特點 113
10.1.2 MySQL的主要版本 113
10.2 MySQL資料庫安裝和配置 114
10.2.1 Windows平台安裝MySQL 114
10.2.2 Linux平台安裝MySQL 124
10.2.3 macOS平台安裝MySQL 129
本章小結 134
第11章 MySQL資料庫管理系統日常管理 135
11.1 登錄伺服器 135
11.2 常見的管理命令 136
11.2.1 幫助命令 136
11.2.2 退出命令 137
11.2.3 資料庫管理 138
11.2.4 用戶管理 138
11.3 查看系統對象信息 140
11.3.1 查看庫 140
11.3.2 查看錶 141
11.3.3 查看錶結構 141
11.3.4 執行腳本檔案 142
11.4 資料庫備份與恢復 144
11.4.1 備份資料庫 144
11.4.2 恢複數據庫 147
11.4.3 實例:在Windows備份,到Linux恢復 147
11.5 MySQL圖形界面管理工具 149
11.5.1 下載和安裝MySQL Workbench 149
11.5.2 配置連線資料庫 152
11.5.3 管理資料庫 154
11.5.4 管理表 156
11.5.5 執行SQL語句 157
本章小結 158
第12章 MySQL中特有的SQL語句 159
12.1 自增長欄位 159
12.2 MySQL日期相關數據類型 160
12.3 限制返回行數 163
12.4 常用函式 165
12.4.1 數字型函式 165
12.4.2 字元串函式 167
12.4.3 日期和時間函式 169
本章小結 172
第13章 MySQL資料庫開發 173
13.1 存儲過程 173
13.1.1 使用存儲過程重構“找出銷售部所有員工信息”案例 173
13.1.2 調用存儲過程 175
13.1.3 刪除存儲過程 176
13.2 存儲過程參數 176
13.2.1 IN參數 176
13.2.2 OUT參數 178
13.2.3 INOUT參數 179
13.3 存儲函式 180
13.3.1 創建存儲函式 180
13.3.2 調用存儲函式 183
13.3.3 刪除存儲函式 184
本章小結 184
第3篇 Oracle資料庫管理系統
第14章 Oracle資料庫管理系統的安裝與日常管理 187
14.1 Oracle主要版本 187
14.2 Oracle 21c快捷版安裝和配置 187
14.2.1 下載Oracle 21c快捷版 187
14.2.2 在Windows平台安裝Oracle 21c快捷版 188
14.2.3 遠程訪問配置 192
14.3 Oracle日常管理 195
14.3.1 使用SQL Plus 195
14.3.2 登錄字元串 198
14.3.3 用戶管理 199
14.3.4 查看當前用戶信息 201
14.3.5 執行腳本檔案 203
14.4 使用Oracle SQL Developer工具 205
14.4.1 下載和安裝Oracle SQL Developer 205
14.4.2 配置連線資料庫 206
14.4.3 管理表 208
14.4.4 管理表數據 209
14.4.5 執行SQL語句 209
本章小結 210
第15章 Oracle資料庫中特有的SQL語句 211
15.1 序列 211
15.1.1 創建序列 211
15.1.2 使用序列 212
15.1.3 修改序列 213
15.1.4 刪除序列 214
15.2 標識欄位 215
15.3 層次關係與遞歸查詢 216
15.3.1 層次關係 216
15.3.2 遞歸查詢 217
15.4 限制返回行數 218
本章小結 220
第16章 Oracle資料庫開發 221
16.1 PL/SQL 221
16.1.1 匿名代碼塊 221
16.1.2 使用游標 223
16.2 編寫第1個Oracle存儲過程 224
16.2.1 調用存儲過程 225
16.2.2 刪除存儲過程 227
16.3 存儲過程參數 227
16.3.1 IN參數 227
16.3.2 OUT參數 229
16.3.3 IN OUT參數 229
16.4 存儲函式 231
16.4.1 創建存儲函式 231
16.4.2 調用存儲函式 232
16.4.3 刪除存儲函式 233
本章小結 233
第4篇 從資料庫設計到項目實戰
第17章 資料庫設計 237
17.1 資料庫設計與E-R圖 237
17.1.1 E-R圖中的各種符號 237
17.1.2 實例:網上商城E-R圖 238
17.1.3 E-R圖魚尾紋表示法 239
17.2 數據建模過程 240
17.2.1 概念模型設計 240
17.2.2 邏輯模型設計 241
17.2.3 物理模型設計 241
17.3 建模工具 241
17.3.1 PowerDesigner建模 241
17.3.2 MySQL Workbench建模 243
17.4 資料庫設計範式 247
17.4.1 1NF 248
17.4.2 2NF 248
17.4.3 3NF 250
本章小結 250
第18章 項目實戰:“PetStore寵物商店”項目資料庫設計 251
18.1 系統分析 251
18.1.1 項目概述 251
18.1.2 需求分析 252
18.1.3 原型設計 252
18.2 資料庫設計 254
18.2.1 概念模型 254
18.2.2 物理模型 255
18.3 資料庫實現 256
18.3.1 編寫DDL腳本 256
18.3.2 構建資料庫結構 259
18.3.3 初始化資料庫 260
本章小結 261