《SQL套用及誤區分析》是一部由張振磊 所編著的書籍, 機械工業出版社出版發行。
基本介紹
- 書名:SQL套用及誤區分析
- 作者:張振磊
- ISBN:9787111597308
- 出版社: 機械工業出版社
出版信息,內容簡介,目錄,
出版信息
- 出版社:機械工業出版社
- ISBN:9787111597308
- 版次:1
- 商品編碼:12375622
- 品牌:機工出版
- 包裝:平裝
- 叢書名:資料庫技術叢書
- 開本:16開
- 出版時間:2018-06-01
- 用紙:膠版紙
- 頁數:238
內容簡介
本書共分為14章,由易到難,逐步講解SQL語句的套用。其中,第1章介紹了SQL概述;第2章簡單介紹了SCOTT模式;第3~6章分別介紹了SQL常用的增刪改查知識;第7~12章分別介紹了常用的資料庫對象,包含了視圖、索引、約束、觸發器、存儲過程和函式;第13章介紹了非常重要的事務知識;第14章對SQLSERVER資料庫和Oracle資料庫中存在的一些差異進行了舉例比較。
目錄
目 錄 Contents
推薦序
前言
第1章 SQL概述1
1.1 DML1
1.2 DDL1
1.3 TCL2
1.4 DCL2
1.5 總結2
第2章 SCOTT模式4
2.1 DEPT5
2.2 EMP7
2.3 SALGRADE10
2.4 BONUS11
2.5 總結12
第3章 新增語句13
3.1 單行新增13
3.1.1 values單行新增14
3.1.2 select單行新增16
3.2 建表新增18
3.3 查詢結果新增20
3.4 常見誤區分析21
3.4.1 歷史數據轉移引起的問題21
3.4.2 values單行新增不要省略列名24
3.5 總結25
第4章 刪除語句26
4.1 delete語法26
4.1.1 直接刪除表中記錄26
4.1.2 基於其他表刪除表中記錄27
4.2 truncate語法28
4.3 誤刪數據恢復29
4.4 誤刪對象恢復30
4.5 常見誤區分析31
4.5.1 慎用delete31
4.5.2 畫蛇添足32
4.6 總結32
第5章 更新語句33
5.1 update語法33
5.2 單表更新33
5.3 表關聯更新35
5.4 常見誤區分析36
5.4.1 注意表關聯更新36
5.4.2 注意數據類型38
5.5 總結39
第6章 查詢語句40
6.1 查詢語句的語法40
6.2 where子句中常用的運算符41
6.2.1 算術運算符42
6.2.2 邏輯運算符43
6.2.3 比較運算符44
6.2.4 優先權50
6.3 分組51
6.3.1 分組函式51
6.3.2 創建組52
6.4 排序52
6.5 空值56
6.6 多表連線56
6.6.1 交叉連線57
6.6.2 非等值連線58
6.6.3 等值連線之內連線59
6.6.4 等值連線之外連線60
6.6.5 等值連線之自連線64
6.6.6 等值連線之自然連線66
6.7 集合運算67
6.7.1 並集67
6.7.2 交集68
6.7.3 差集69
6.8 子查詢70
6.8.1 多行單列子查詢70
6.8.2 多行多列子查詢72
6.8.3 單行單列子查詢72
6.8.4 單行多列子查詢73
6.8.5 內聯視圖74
6.8.6 關聯子查詢74
6.9 別名76
6.9.1 表別名77
6.9.2 列別名77
6.10 常見誤區分析79
6.10.1 count爭議79
6.10.2 null的比較80
6.10.3 單行子查詢返回多行82
6.10.4 分組函式的嵌套83
6.10.5 not in84
6.10.6 with(nolock)86
6.10.7 with(readpast)88
6.10.8 max用於字元型屬性89
6.11 總結91
第7章 視圖92
7.1 視圖語法92
7.1.1 創建語法92
7.1.2 修改語法93
7.1.3 刪除語法93
7.2 視圖舉例94
7.3 視圖的作用95
7.3.1 定製用戶數據95
7.3.2 複雜查詢簡單化96
7.4 簡單視圖97
7.5 複雜視圖97
7.6 鍵值保存表97
7.7 唯讀視圖98
7.8 with check option98
7.9 物化視圖101
7.9.1 創建時生成數據選項101
7.9.2 刷新方式102
7.9.3 數據刷新的時間102
7.9.4 物化視圖索引103
7.9.5 物化視圖舉例103
7.10 索引視圖106
7.11 常見誤區分析107
7.11.1 單張表組成的視圖可以更新107
7.11.2 多張表組成的視圖不能更新109
7.12 總結111
第8章 索引112
8.1 索引語法113
8.1.1 創建語法113
8.1.2 刪除語法113
8.2 B-Tree索引113
8.3 聚集索引122
8.4 唯一索引122
8.5 非唯一索引124
8.6 組合索引124
8.7 反向鍵索引125
8.8 函式索引125
8.9 索引組織表127
8.10 常見誤區128
8.10.1 null全表掃描128
8.10.2 < >比較符引起全表掃描129
8.10.3 引起全表掃描131
8.10.4 函式造成全表掃描131
8.10.5 慎用全表掃描132
8.10.6 組合索引如何進行索引133
8.11 總結135
第9章 約束136
9.1 約束語法136
9.1.1 創建語法136
9.1.2 刪除語法137
9.2 主鍵約束137
9.3 外鍵約束138
9.4 唯一性約束141
9.5 非空約束142
9.6 check約束143
9.7 默認值約束144
9.8 常見誤區分析146
9.8.1 是否有必要使用外鍵146
9.8.2 程式校驗代替檢查約束146
9.9 總結148
第10章 觸發器149
10.1 觸發器語法149
10.1.1 創建語法149
10.1.2 修改語法150
10.1.3 刪除語法151
10.2 變異表151
10.3 觸發器內置對象151
10.4 行級觸發器151
10.5 語句級觸發器153
10.6 觸發時間156
10.7 instead of觸發器160
10.8 常見誤區分析162
10.8.1 讀變異表162
10.8.2 觸發器死循環162
10.9 總結164
第11章 存儲過程165
11.1 存儲過程語法165
11.1.1 創建語法166
11.1.2 修改語法166
11.1.3 刪除語法167
11.2 IN模式參數167
11.3 OUT模式參數169
11.4 刪除存儲過程171
11.5 常見誤區分析171
11.5.1 存儲過程事務控制171
11.5.2 參數名稱引發的事故179
11.6 總結181
第12章 函式183
12.1 系統函式183
12.1.1 字元函式183
12.1.2 數值函式186
12.1.3 日期函式186
12.1.4 null相關的函式189
12.1.5 聚合函式190
12.1.6 其他常用函式190
12.2 自定義函式191
12.2.1 自定義函式語法191
12.2.2 SQL Server標量值函式193
12.2.3 SQL Server內聯表值函式193
12.2.4 SQL Server多語句表值函式194
12.2.5 Oracle標量值函式194
12.2.6 Oracle表值函式195
12.3 常見誤區分析196
12.3.1 SQL函式必須有返回值196
12.3.2 SQL函式中不能進行DML操作198
12.4 總結200
第13章 事務201
13.1 銀行轉賬案例201
13.2 事務的4個屬性204
13.2.1 原子性205
13.2.2 一致性205
13.2.3 隔離性205
13.2.4 持久性206
13.3 並發引起的問題207
13.3.1 髒讀207
13.3.2 不可重複讀207
13.3.3 幻讀207
13.4 事務隔離級別208
13.4.1 讀未提交208
13.4.2 讀提交208
13.4.3 重複讀208
13.4.4 序列化209
13.5 事務保存點209
13.6 自治事務210
13.6.1 自治事務用於存儲過程210
13.6.2 自治事務用於觸發器212
13.7 常見誤區分析214
13.7.1 自治事務死鎖214
13.7.2 自治事務獲取主事務的信息214
13.7.3 主事務獲取自治事務的信息216
13.8 總結217
第14章 SQL Server與Oracle的差異219
14.1 前N行219
14.2 字元串拼接220
14.3 獲取系統時間221
14.4 空字元串221
14.5 表別名223
14.6 null值排序224
14.7 update引起 select阻塞225
14.8 SQL、T-SQL和PL/SQL227
14.9 視圖定義中出現排序227
14.10 對視圖非鍵值保存表的更新229
14.11 分組函式嵌套231
14.12 內聯視圖232
14.13 關聯表刪除233
14.14 關聯表更新234
14.15 自增列235
14.16 總結238
推薦序
前言
第1章 SQL概述1
1.1 DML1
1.2 DDL1
1.3 TCL2
1.4 DCL2
1.5 總結2
第2章 SCOTT模式4
2.1 DEPT5
2.2 EMP7
2.3 SALGRADE10
2.4 BONUS11
2.5 總結12
第3章 新增語句13
3.1 單行新增13
3.1.1 values單行新增14
3.1.2 select單行新增16
3.2 建表新增18
3.3 查詢結果新增20
3.4 常見誤區分析21
3.4.1 歷史數據轉移引起的問題21
3.4.2 values單行新增不要省略列名24
3.5 總結25
第4章 刪除語句26
4.1 delete語法26
4.1.1 直接刪除表中記錄26
4.1.2 基於其他表刪除表中記錄27
4.2 truncate語法28
4.3 誤刪數據恢復29
4.4 誤刪對象恢復30
4.5 常見誤區分析31
4.5.1 慎用delete31
4.5.2 畫蛇添足32
4.6 總結32
第5章 更新語句33
5.1 update語法33
5.2 單表更新33
5.3 表關聯更新35
5.4 常見誤區分析36
5.4.1 注意表關聯更新36
5.4.2 注意數據類型38
5.5 總結39
第6章 查詢語句40
6.1 查詢語句的語法40
6.2 where子句中常用的運算符41
6.2.1 算術運算符42
6.2.2 邏輯運算符43
6.2.3 比較運算符44
6.2.4 優先權50
6.3 分組51
6.3.1 分組函式51
6.3.2 創建組52
6.4 排序52
6.5 空值56
6.6 多表連線56
6.6.1 交叉連線57
6.6.2 非等值連線58
6.6.3 等值連線之內連線59
6.6.4 等值連線之外連線60
6.6.5 等值連線之自連線64
6.6.6 等值連線之自然連線66
6.7 集合運算67
6.7.1 並集67
6.7.2 交集68
6.7.3 差集69
6.8 子查詢70
6.8.1 多行單列子查詢70
6.8.2 多行多列子查詢72
6.8.3 單行單列子查詢72
6.8.4 單行多列子查詢73
6.8.5 內聯視圖74
6.8.6 關聯子查詢74
6.9 別名76
6.9.1 表別名77
6.9.2 列別名77
6.10 常見誤區分析79
6.10.1 count爭議79
6.10.2 null的比較80
6.10.3 單行子查詢返回多行82
6.10.4 分組函式的嵌套83
6.10.5 not in84
6.10.6 with(nolock)86
6.10.7 with(readpast)88
6.10.8 max用於字元型屬性89
6.11 總結91
第7章 視圖92
7.1 視圖語法92
7.1.1 創建語法92
7.1.2 修改語法93
7.1.3 刪除語法93
7.2 視圖舉例94
7.3 視圖的作用95
7.3.1 定製用戶數據95
7.3.2 複雜查詢簡單化96
7.4 簡單視圖97
7.5 複雜視圖97
7.6 鍵值保存表97
7.7 唯讀視圖98
7.8 with check option98
7.9 物化視圖101
7.9.1 創建時生成數據選項101
7.9.2 刷新方式102
7.9.3 數據刷新的時間102
7.9.4 物化視圖索引103
7.9.5 物化視圖舉例103
7.10 索引視圖106
7.11 常見誤區分析107
7.11.1 單張表組成的視圖可以更新107
7.11.2 多張表組成的視圖不能更新109
7.12 總結111
第8章 索引112
8.1 索引語法113
8.1.1 創建語法113
8.1.2 刪除語法113
8.2 B-Tree索引113
8.3 聚集索引122
8.4 唯一索引122
8.5 非唯一索引124
8.6 組合索引124
8.7 反向鍵索引125
8.8 函式索引125
8.9 索引組織表127
8.10 常見誤區128
8.10.1 null全表掃描128
8.10.2 < >比較符引起全表掃描129
8.10.3 引起全表掃描131
8.10.4 函式造成全表掃描131
8.10.5 慎用全表掃描132
8.10.6 組合索引如何進行索引133
8.11 總結135
第9章 約束136
9.1 約束語法136
9.1.1 創建語法136
9.1.2 刪除語法137
9.2 主鍵約束137
9.3 外鍵約束138
9.4 唯一性約束141
9.5 非空約束142
9.6 check約束143
9.7 默認值約束144
9.8 常見誤區分析146
9.8.1 是否有必要使用外鍵146
9.8.2 程式校驗代替檢查約束146
9.9 總結148
第10章 觸發器149
10.1 觸發器語法149
10.1.1 創建語法149
10.1.2 修改語法150
10.1.3 刪除語法151
10.2 變異表151
10.3 觸發器內置對象151
10.4 行級觸發器151
10.5 語句級觸發器153
10.6 觸發時間156
10.7 instead of觸發器160
10.8 常見誤區分析162
10.8.1 讀變異表162
10.8.2 觸發器死循環162
10.9 總結164
第11章 存儲過程165
11.1 存儲過程語法165
11.1.1 創建語法166
11.1.2 修改語法166
11.1.3 刪除語法167
11.2 IN模式參數167
11.3 OUT模式參數169
11.4 刪除存儲過程171
11.5 常見誤區分析171
11.5.1 存儲過程事務控制171
11.5.2 參數名稱引發的事故179
11.6 總結181
第12章 函式183
12.1 系統函式183
12.1.1 字元函式183
12.1.2 數值函式186
12.1.3 日期函式186
12.1.4 null相關的函式189
12.1.5 聚合函式190
12.1.6 其他常用函式190
12.2 自定義函式191
12.2.1 自定義函式語法191
12.2.2 SQL Server標量值函式193
12.2.3 SQL Server內聯表值函式193
12.2.4 SQL Server多語句表值函式194
12.2.5 Oracle標量值函式194
12.2.6 Oracle表值函式195
12.3 常見誤區分析196
12.3.1 SQL函式必須有返回值196
12.3.2 SQL函式中不能進行DML操作198
12.4 總結200
第13章 事務201
13.1 銀行轉賬案例201
13.2 事務的4個屬性204
13.2.1 原子性205
13.2.2 一致性205
13.2.3 隔離性205
13.2.4 持久性206
13.3 並發引起的問題207
13.3.1 髒讀207
13.3.2 不可重複讀207
13.3.3 幻讀207
13.4 事務隔離級別208
13.4.1 讀未提交208
13.4.2 讀提交208
13.4.3 重複讀208
13.4.4 序列化209
13.5 事務保存點209
13.6 自治事務210
13.6.1 自治事務用於存儲過程210
13.6.2 自治事務用於觸發器212
13.7 常見誤區分析214
13.7.1 自治事務死鎖214
13.7.2 自治事務獲取主事務的信息214
13.7.3 主事務獲取自治事務的信息216
13.8 總結217
第14章 SQL Server與Oracle的差異219
14.1 前N行219
14.2 字元串拼接220
14.3 獲取系統時間221
14.4 空字元串221
14.5 表別名223
14.6 null值排序224
14.7 update引起 select阻塞225
14.8 SQL、T-SQL和PL/SQL227
14.9 視圖定義中出現排序227
14.10 對視圖非鍵值保存表的更新229
14.11 分組函式嵌套231
14.12 內聯視圖232
14.13 關聯表刪除233
14.14 關聯表更新234
14.15 自增列235
14.16 總結238