SQL入門與實踐(微課視頻版)
宋娟
相關主題
商品描述
目錄大綱
目 錄
第 1 章 數據庫及基本操作 1
1.1 數據庫基礎知識 1
1.1.1 數據庫的應用 1
1.1.2 數據庫相關術語 1
1.1.3 SQL 簡介 2
1.1.4 數據庫的類型 3
1.2 主要關系數據庫管理系統簡介 3
1.2.1 MySQL 3
1.2.2 SQL Server 3
1.2.3 Oracle 4
1.3 在 MySQL 中執行 SQL 語句 4
1.3.1 安裝 MySQL 4
1.3.2 使用命令行執行 SQL 語句 5
1.3.3 使用 Workbench 執行 SQL 語句 6
1.4 在 SQL Server 中執行 SQL 語句 9
1.4.1 SQL Server 2022 的安裝 9
1.4.2 使用 SQL Server 管理工具創建數據庫 10
1.4.3 使用 SQL Server 管理工具執行SQL 語句 11
1.5 在 Oracle 21c 中執行 SQL 語句 13
1.5.1 安裝 Oracle 21c 13
1.5.2 使用 SQL Developer 執行 SQL語句 15
1.5.3 使用 SQL Plus 執行 SQL 語句 17
第 2 章 SQL 基礎 20
2.1 SQL 概述 20
2.1.1 SQL 的歷史 20
2.1.2 SQL 的特點 20
2.1.3 SQL 的功能 21
2.2 SQL 的組成 22
2.2.1 數據定義語言 22
2.2.2 數據查詢語言 22
2.2.3 數據操縱語言 23
2.2.4 數據控制語言 23
2.3 探索 SQL 環境 23
2.3.1 瞭解 SQL 執行環境 23
2.3.2 瞭解 SQL 數據庫的層次結構 24
2.3.3 在 SQL 環境中命名對象 24
第 3 章 數據表 26
3.1 數據類型 26
3.1.1 SQL 常用數據類型 26
3.1.2 MySQL 中的數據類型 27
3.1.3 SQL Server 中的數據類型 30
3.1.4 Oracle 中的數據類型 32
3.2 數據表基礎 33
3.2.1 數據表中的記錄和字段 33
3.2.2 表結構 34
3.3 表邏輯設計 34
3.3.1 E-R 模型圖 34
3.3.2 規範化與範式 36
3.4 表的創建(CREATE TABLE) 36
3.4.1 使用 CREATE TABLE 語句創建表 36
3.4.2 創建帶有主鍵的表 38
3.5 表結構的修改(ALTER TABLE) 39
3.5.1 ALTER TABLE 語句格式 39
3.5.2 增加新字段 40
3.5.3 增加帶有默認值的新字段 42
3.5.4 修改字段的類型和寬度 43
3.5.5 刪除字段 45
3.5.6 刪除帶有默認值的字段 45
3.5.7 更改主鍵 47
3.6 表的刪除、截斷與重命名 48
3.6.1 刪除表 48
3.6.2 截斷表 48
3.6.3 重命名錶 48
3.7 創建與刪除數據庫 49
3.7.1 創建數據庫 49
3.7.2 刪除數據庫 50
3.7.3 創建本書使用的數據表 50
第 4 章 索引 54
4.1 索引基礎 54
4.1.1 使用索引的原因 54
4.1.2 索引的種類 54
4.2 索引的創建和使用 55
4.2.1 創建索引前應當註意的內容 55
4.2.2 創建索引的 SQL 語句 56
4.2.3 創建和使用非聚簇索引 57
4.2.4 創建和使用唯一索引 60
4.3 索引的刪除 61
第 5 章 查詢數據—SELECT 語句 63
5.1 SELECT 語句的組成結構 63
5.1.1 最基本的語法格式 63
5.1.2 帶有主要子句的語法格式 64
5.1.3 SELECT 各子句的執行順序 64
5.1.4 關於 SELECT 語句的一些說明 65
5.2 查詢數據 65
5.2.1 查詢單字段的方法 65
5.2.2 去除重復信息—DISTINCT 66
5.2.3 查詢多字段 67
5.2.4 查詢所有字段 67
5.2.5 根據現有字段值計算新字段值 68
5.2.6 命名新列(別名)—AS 69
5.2.7 將查詢結果保存為新表 70
5.2.8 連接字段 71
5.3 排序數據 73
5.3.1 按單字段排序 73
5.3.2 設置排序方向 74
5.3.3 按多字段排序 75
5.3.4 按字段位置排序 75
第 6 章 條件查詢 77
6.1 條件表達式 77
6.1.1 指針與字段變量的概念 77
6.1.2 條件表達式 78
6.2 使用 WHERE 關鍵字設置查詢條件 80
6.2.1 WHERE 子句用法 80
6.2.2 查詢數值數據 81
6.2.3 查詢字符型數據 83
6.2.4 查詢日期數據 84
6.2.5 按範圍查詢數據(BETWEEN) 85
6.2.6 查詢空值 86
6.3 排序條件查詢的結果 86
6.4 查詢前 n 條記錄 87
第 7 章 高級條件查詢 89
7.1 組合 WHERE 子句 89
7.1.1 AND 運算符 89
7.1.2 OR 運算符 91
7.1.3 AND 與 OR 的優先順序問題 91
7.2 IN 運算符 93
7.2.1 使用 IN 運算符 93
7.2.2 使用 IN 運算符的優點 94
7.3 NOT 運算符 96
7.4 實現模糊查詢 98
7.4.1 LIKE 運算符 98
7.4.2 “%”通配符 99
7.4.3 使用“%”通配符查詢日期型數據 101
7.4.4 “_”通配符 103
7.4.5 正則表達式 104
7.4.6 定義轉義字符 106
第 8 章 SQL 函數的使用 108
8.1 SQL 函數的說明 108
8.2 SQL Server 的函數 108
8.2.1 類型轉換函數 108
8.2.2 日期函數 111
8.2.3 數值函數 115
8.2.4 字符函數 116
8.3 Oracle 的函數 120
8.3.1 類型轉換函數 120
8.3.2 日期函數 123
8.3.3 數值函數 126
8.3.4 字符函數 127
8.4 MySQL 的函數 128
8.4.1 類型轉換函數 128
8.4.2 日期函數 129
8.4.3 數值函數 131
8.4.4 字符函數 132
8.5 將 NULL 更改為其他值的函數 132
8.5.1 SQL Server 的 ISNULL()函數 132
8.5.2 Oracle 的 NVL()函數 133
8.5.3 MySQL 的 IFNULL()函數 134
8.6 IF…ELSE 邏輯函數 134
8.6.1 DECODE()函數 134
8.6.2 CASE()函數 135
第 9 章 聚合函數與分組數據 136
9.1 聚合函數 136
9.1.1 使用 COUNT()函數求記錄個數 136
9.1.2 使用 SUM()函數求某字段的和 138
9.1.3 使用 AVG()函數求某字段的平均值 140
9.1.4 使用 MAX()、MIN()函數求最大、最小值 140
9.1.5 統計匯總相異值(不同值)記錄 141
9.1.6 聚合函數對 NULL 值的處理 141
9.2 數據分組 144
9.2.1 將表內容按列分組 144
9.2.2 聚合函數與分組配合使用 145
9.2.3 查詢數據的直方圖 146
9.2.4 排序分組結果 147
9.2.5 反轉查詢結果 147
9.2.6 使用 HAVING 子句設置分組查詢條件 149
9.2.7 HAVING 子句與 WHERE 子句的區別 149
第 10 章 多表連接查詢 151
10.1 將數據存儲在多個不同表的原因 151
10.2 範式 152
10.3 連接查詢 153
10.3.1 連接兩表的方法 153
10.3.2 使用笛卡兒積解決錄入難題 155
10.3.3 使用兩表連接查詢數據 157
10.3.4 多表連接查詢 157
10.3.5 使用表別名簡化語句 158
10.3.6 使用 INNER JOIN 連接查詢 160
10.4 高級連接查詢 161
10.4.1 自連接查詢 161
10.4.2 內連接查詢 163
10.4.3 外連接查詢 165
10.4.4 交叉連接查詢 167
10.4.5 連接查詢中使用聚合函數 169
10.5 組合查詢 170
10.5.1 使用組合查詢 170
10.5.2 使用 UNION 的規則 173
10.5.3 使用 UNION 解決不支持全外連接的問題 174
10.5.4 使用 UNION 得到復雜的統計匯總樣式 175
10.5.5 排序組合查詢的結果 175
第 11 章 子查詢 178
11.1 返回單值的子查詢 178
11.1.1 使用返回單值的子查詢 178
11.1.2 子查詢與聚合函數的配合使用 179
11.2 返回一列值的子查詢 182
11.2.1 使用 IN 的子查詢 182
11.2.2 使用 NOT IN 的子查詢 183
11.3 相關子查詢 183
第 12 章 視圖 186
12.1 視圖基礎 186
12.1.1 視圖引例 186
12.1.2 使用視圖的原因以及註意問題 188
12.1.3 視圖的規則和限制 189
12.2 視圖的創建 190
12.2.1 創建視圖的 SQL 語句 190
12.2.2 利用視圖提高數據安全性 192
12.2.3 利用視圖得到匯總數據 193
12.2.4 利用視圖簡化計算字段的使用 195
12.2.5 利用視圖簡化多表連接 196
12.3 視圖的刪除 197
第 13 章 插入數據 198
13.1 直接向表插入數據 198
13.1.1 插入完整的行 198
13.1.2 嚮日期和時間型字段插入數據 199
13.1.3 將數據插入到指定字段 201
13.1.4 將查詢結果插入表 204
13.1.5 INSERT SELECT 與 SELECT INTO 的區別 205
13.2 通過視圖插入數據 205
13.2.1 通過視圖插入數據的方法 206
13.2.2 使用帶有 WITH CHECK OPTION 選項的視圖 208
第 14 章 更新和刪除數據 209
14.1 更新表中的數據 209
14.1.1 更新單個字段的數據 209
14.1.2 更新多個字段的數據 211
14.1.3 使用子查詢更新數據 212
14.1.4 使用表連接更新數據 213
14.1.5 使用 UPDATE 語句刪除指定字段的數據 214
14.2 刪除表中的數據 215
14.2.1 使用 DELETE 語句刪除指定記錄 215
14.2.2 在 DELETE 語句中使用多表連接 217
14.2.3 使用 DELETE 語句刪除所有記錄 218
14.2.4 使用 TRUNCATE 語句刪除所有記錄 219
14.3 通過視圖更新表 219
14.3.1 不能用於更新的視圖 219
14.3.2 通過視圖更新表數據 220
14.3.3 通過視圖刪除表數據 222
第 15 章 管理數據庫的安全 224
15.1 MySQL 數據庫安全 224
15.1.1 權限相關的表 224
15.1.2 用 SQL 語句創建用戶與授權 225
15.1.3 MySQL Workbench 創建用戶與授權 227
15.2 Oracle 數據庫用戶管理 229
15.2.1 創建用戶 229
15.2.2 修改用戶 231
15.2.3 給用戶授予 CREATE SESSION權限 231
15.2.4 給用戶授予 SELECT 權限 233
15.2.5 給用戶授予 INSERT、UPDATE 和 DELETE 權限 235
15.2.6 給用戶授予系統權限 238
15.2.7 給所有用戶授予權限 239
15.2.8 查看用戶擁有的權限 240
15.2.9 取消用戶的指定權限 241
15.2.10 刪除用戶 242
15.3 Oracle 數據庫角色管理 242
15.3.1 角色的概念 242
15.3.2 創建角色——CREATE ROLE 243
15.3.3 給角色授權——GRANT 243
15.3.4 將角色授予用戶——GRANT 244
15.3.5 查看角色的權限 246
15.3.6 取消角色——REVOKE 248
15.3.7 刪除角色——DROP ROLE 248
15.3.8 Oracle 中系統預定義的角色 248
15.4 SQL Server 安全管理 249
15.4.1 SQL Server 的安全認證模式 249
15.4.2 向 SQL Server 添加安全賬戶 250
15.4.3 從 SQL Server 刪除安全賬戶 252
15.4.4 SQL Server 權限管理 253
15.4.5 SQL Server 角色管理 255
第 16 章 完整性控制 258
16.1 瞭解完整性約束 258
16.1.1 數據的完整性 258
16.1.2 完整性約束的類型 259
16.2 與表有關的約束 260
16.2.1 字段約束與表約束的創建 260
16.2.2 非空約束 260
16.2.3 唯一約束 262
16.2.4 主鍵約束 264
16.2.5 外鍵約束 266
16.2.6 校驗約束 268
16.3 擴展外鍵約束的內容 270
第 17 章 存儲過程和函數 274
17.1 存儲過程基礎 274
17.1.1 存儲過程基礎 274
17.1.2 存儲過程的優點 275
17.2 在 MySQL 中創建和使用存儲過程 276
17.2.1 創建存儲過程的語法 276
17.2.2 調用存儲過程 277
17.2.3 創建帶輸出參數的存儲過程 277
17.2.4 刪除存儲過程 278
17.3 在 SQL Server 中創建和使用存儲過程 279
17.3.1 SQL Server 的系統存儲過程 279
17.3.2 創建存儲過程的語法 280
17.3.3 調用語句 EXECUTE 的語法 281
17.3.4 創建簡單存儲過程 282
17.3.5 創建帶輸入參數的存儲過程 283
17.3.6 給輸入參數設置默認值 284
17.3.7 創建帶輸出參數的存儲過程 285
17.3.8 創建有多條 SQL 語句的存儲過程 286
17.3.9 刪除存儲過程 287
17.4 在 SQL Server 中創建和使用函數 288
17.4.1 標量值函數 289
17.4.2 表值函數 290
17.4.3 刪除用戶定義函數 292
17.5 SQL Server 幾個系統存儲過程的使用 293
17.5.1 使用 sp_rename 重命名對象 293
17.5.2 使用 sp_depends 顯示引用對象 293
17.5.3 使用 sp_help 顯示對象信息 294
17.5.4 使用 sp_helptext 顯示對象的源碼 294
17.6 Oracle 中的存儲過程和函數 295
17.6.1 在 Oracle 中使用存儲過程 295
17.6.2 在 Oracle 中使用函數 296
17.6.3 在 Oracle 中使用 user_source獲取信息 297
第 18 章 SQL 觸發器 298
18.1 SQL 觸發器基礎 298
18.2 在 SQL Server 中創建和使用觸發器 298
18.2.1 創建觸發器的語法 299
18.2.2 使用 INSERT 觸發器 300
18.2.3 使用 DELETE 觸發器 302
18.2.4 使用 UPDATE 觸發器 303
18.2.5 使用 INSTEAD OF 觸發器 305
18.2.6 使用條件插入觸發器 306
18.2.7 刪除觸發器 309
18.3 在 Oracle 中創建和使用觸發器 309
18.3.1 創建觸發器的語法 309
18.3.2 行級觸發器 310
18.3.3 語句級觸發器 311
18.3.4 判斷所執行的數據修改操作 312
18.3.5 系統觸發器 312
18.3.6 追蹤數據庫啟動與關閉信息 313
18.3.7 追蹤用戶 DDL 操作信息 316
18.3.8 禁用和刪除觸發器 318
18.3.9 從 user_triggers 中查詢觸發器信息 319
18.4 在 MySQL 中創建和使用觸發器 320
18.4.1 創建觸發器的語法 320
18.4.2 使用 INSERT 觸發器 320
18.4.3 刪除觸發器 322
第 19 章 控制流語句 323
19.1 SQL Server 的控制流語句 323
19.1.1 BEGIN…END 語句 323
19.1.2 IF…ELSE 語句 323
19.1.3 WHILE 語句 324
19.1.4 BREAK 命令 325
19.1.5 CONTINUE 命令 325
19.1.6 WAITFOR 語句 326
19.2 Oracle 的控制流語句 326
19.2.1 IF…THEN…ELSE 語句 327
19.2.2 IF…THEN…ELSIF 語句 327
19.2.3 LOOP 語句 328
19.2.4 WHILE 語句 328
19.2.5 FOR 語句 329
19.3 MySQL 的控制流語句 329
19.3.1 IF…THEN…ELSE 語句 329
19.3.2 LOOP 語句 330
19.3.3 REPEAT 語句 331
19.3.4 WHILE 語句 331
19.4 控制流語句的應用 332
19.4.1 判斷數據庫對象是否存在 332
19.4.2 嚮日誌表循環插入日期數據 335
19.4.3 使用游標和循環提取數據 337
第 20 章 事務處理 340
20.1 事務基礎 340
20.1.1 事務的概念 340
20.1.2 事務的案例 340
20.1.3 事務的 ACID 特性 341
20.2 控制事務處理 341
20.2.1 開始事務處理 341
20.2.2 使用 ROLLBACK 撤銷事務 342
20.2.3 使用 COMMIT 提交事務 345
20.2.4 根據判斷提交或撤銷事務 348
20.2.5 Oracle 的語句級事務處理 350
20.2.6 使用保存點 351
20.3 並發事務 353
20.3.1 並發事務處理 353
20.3.2 事務鎖 354
20.3.3 事務隔離級別 355