SQL入門經典(第7版) Sams Teach Yourself SQL in 24 Hours, 7/e

[美]賴安·斯蒂芬斯(Ryan Stephens)

  • 出版商: 人民郵電
  • 出版日期: 2024-08-01
  • 售價: $539
  • 貴賓價: 9.5$512
  • 語言: 簡體中文
  • 頁數: 392
  • 裝訂: 平裝
  • ISBN: 7115624410
  • ISBN-13: 9787115624413
  • 相關分類: SQL
  • 此書翻譯自: Sams Teach Yourself SQL in 24 Hours, 7/e
  • 立即出貨 (庫存 < 4)

  • SQL入門經典(第7版)-preview-1
  • SQL入門經典(第7版)-preview-2
SQL入門經典(第7版)-preview-1

商品描述

本書詳細介紹了 SQL 語言的基本語法、基本概念,說明瞭各種 SQL 實現與 ANSI 標準之間的差別。書中包含大量的示例,直觀地說明瞭如何使用 SQL 對數據進行處理,還通過真實示例和實踐練習介紹如何踐行 SQL 標準。本書配有針對性很強的測試題和習題,能夠幫助讀者更好地理解和掌握學習的內容。在附錄里還給出了常見 SQL 命令和流行供應商的RDBMS 產品,以及測試題和習題的答案。

本書內容層次清晰,針對性強,非常適合初學者作為入門教材。

作者簡介

Ryan Stephens 是一位企业家,他的职业生涯和他的多家 IT 公司都是围绕 SQL、数据和关系型数据库发展的。他与世界各地的机构、学生和 IT 专业人士分享知识和经验。他参与创立的两家公司—Perpetual Technologies, Inc.(PTI)和 Indy Data Partners(IDP),已为政府和大型商业客户提供了超过 25 年的专业数据库和 IT 服务。Ryan 为 Pearson 撰写过多本书,其中包括《SQL 入门经典(第 6 版)》。他的部分作品已被翻译并在国际上出版。此外,Ryan 曾在大型机构工作,并在 SQL、数据库设计、数据库管理和项目管理领域提供咨询服务。他为印第安纳大学与普渡大学印第安纳波利斯联合分校(Indiana University–Purdue University in Indianapolis,IUPUI)设计并讲授数据库管理课程,目前也在为 Pearson Education 讲授 SQL 和数据库的在线课程。

目錄大綱

第 1 章 關系型數據庫和 SQL 1

1.1 在數據驅動的世界中壯大 2

1.1.1 組織、數據和用戶群 2

1.1.2 數據庫的定義 3

1.1.3 常見的數據庫環境 3

1.1.4 客戶機/服務器環境 4

1.1.5 基於 Web 的環境 4

1.2 關系型數據庫簡介 5

1.2.1 示例數據庫簡介 5

1.2.2 數據庫的邏輯元素和物理元素 8

1.2.3 數據庫模式 9

1.3 關系型數據庫持續領跑. 9

1.4 示例和習題 10

1.5 小結 10

1.6 答疑 10

1.7 實踐練習 11

第 2 章 SQL 語言的組成部分 12

2.1 SQL 的定義和歷史 12

2.2 SQL 是一種標準語言 13

2.2.1 ANSI SQL 標準 13

2.2.2 標準的重要性 14

2.2.3 符合 SQL 標準的各種產品 14

2.2.4 本書用到的 SQL 產品 15

2.2.5 為自己和組織選擇合適的產品 15

2.3 SQL 會話 15

2.3.1 CONNECT 16

2.3.2 DISCONNECT 和 EXIT 16

2.4 SQL 命令的種類 16

2.4.1 定義數據庫結構 16

2.4.2 操作數據 17

2.4.3 獲取數據庫中的數據 17

2.4.4 數據控制語言 17

2.4.5 數據管理命令的使用 18

2.4.6 事務控制命令的使用 18

2.5 小結 18

2.6 答疑 18

2.7 實踐練習 19

第 3 章 瞭解自己的數據 20

3.1 BIRD 數據庫:本書的示例和習題 20

3.2 如何瞭解數據 20

3.2.1 鳥類信息 21

3.2.2 組織和用戶 21

3.2.3 擴充數據庫的機會 22

3.3 實體關系圖 22

3.3.1 實體和關系 22

3.3.2 詳細的實體/表 23

3.3.3 屬性(列)的定義 23

3.3.4 表的命名標準 25

3.4 示例和習題 25

3.5 小結 25

3.6 答疑 25

3.7 實踐練習 26

第 4 章 建立數據庫 27

4.1 找到所需腳本文件 27

4.2 為實踐練習做準備 27

4.2.1 下載並安裝數據庫軟件 28

4.2.2 其他可選的數據庫軟件 30

4.2.3 創建具備所需權限的用戶 31

4.2.4 為 BIRDS 數據庫創建表和數據 32

4.3 各張表的數據清單 34

4.3.1 BIRDS 表的第 1 部分 34

4.3.2 BIRDS 表的第 2 部分 35

4.3.3 FOOD 表 35

4.3.4 BIRDS_FOOD 表 36

4.3.5 MIGRATION 表 37

4.3.6 BIRDS_MIGRATION 表 37

4.3.7 NESTS 表 38

4.3.8 BIRDS_NESTS 表 38

4.3.9 NICKNAMES 表 39

4.3.10 LOCATIONS 表 39

4.3.11 PHOTOS 表 40

4.4 小結 40

4.5 答疑 40

4.6 實踐練習 40

第 5 章 關系型(SQL)數據庫設計的基礎知識 42

5.1 理解數據庫設計與 SQL 的關系 42

5.2 數據庫設計過程 42

5.3 選擇數據庫設計方法 43

5.4 用簡單過程設計 BIRDS 數據庫 44

5.4.1 瞭解數據 44

5.4.2 收集信息:向合適的人提出合適的問題 47

5.4.3 數據建模 47

5.5 邏輯模型與物理設計 49

5.6 數據庫的生命周期 49

5.6.1 開發環境 50

5.6.2 測試環境 50

5.6.3 生產環境 50

5.7 小結 51

5.8 答疑 51

5.9 實踐練習 51

第 6 章 定義實體和關系 53

6.1 為數據創建模型 53

6.1.1 數據 53

6.1.2 關系 54

6.1.3 參照完整性 54

6.2 定義關系 56

6.2.1 一對一關系 56

6.2.2 一對多關系 56

6.2.3 多對多關系 56

6.2.4 遞歸關系 57

6.3 應用參照完整性 57

6.3.1 確定主鍵 58

6.3.2 確定外鍵 58

6.4 創建實體關系 59

6.5 小結 60

6.6 答疑 60

6.7 實踐練習 61

第 7 章 數據庫的規範化 63

7.1 什麽是規範化 63

7.1.1 原始數據庫 64

7.1.2 數據庫邏輯設計 64

7.2 最常見的範式 65

7.2.1 第 一範式(FNF):有主鍵 65

7.2.2 第二範式(SNF):全主鍵依賴. 66

7.2.3 第三範式(TNF):只有主鍵依賴 69

7.2.4 命名規範 70

7.2.5 規範化的優點 71

7.2.6 規範化的缺點 72

7.3 數據庫的反規範化 72

7.4 把範式應用於數據庫 72

7.4.1 把第 一範式應用於鳥類救助機構數據 72

7.4.2 把第二範式應用於鳥類救助機構數據 73

7.4.3 把第三範式應用於鳥類救助機構數據 73

7.5 小結 74

7.6 答疑 74

7.7 實踐練習 75

第 8 章 定義數據結構. 76

8.1 定義數據 76

8.2 理解基本數據類型 77

8.2.1 定長字符串 78

8.2.2 變長字符串 78

8.2.3 大對象類型 78

8.2.4 數值類型 79

8.2.5 DECIMAL 類型 79

8.2.6 整數 80

8.2.7 浮點數 80

8.2.8 日期和時間類型 80

8.2.9 字符串字面量 81

8.2.10 NULL 數據類型 82

8.2.11 布爾值 82

8.2.12 用戶自定義類型 82

8.2.13 域 83

8.3 在 BIRDS 數據庫中運用數據類型 83

8.4 小結 84

8.5 答疑 85

8.6 實踐練習 85

第 9 章 數據庫對象的創建和管理 87

9.1 數據庫對象和模式的關系 87

9.2 表:數據的主要存儲對象 88

9.2.1 列 89

9.2.2 行 90

9.2.3 CREATE TABLE 語句 90

9.2.4 命名規範 92

9.2.5 ALTER TABLE 命令的用法 92

9.2.6 由現有表創建新表 96

9.2.7 表的刪除操作 98

9.3 完整性約束 99

9.3.1 主鍵約束 99

9.3.2 唯一性約束 100

9.3.3 外鍵約束 100

9.3.4 NOT NULL 約束 101

9.3.5 檢查約束 101

9.3.6 約束的刪除操作 102

9.4 小結 102

9.5 答疑 102

9.6 實踐練習 103

第 10 章 操作數據. 104

10.1 數據操縱語言概述 104

10.2 用新數據填充表 105

10.2.1 在表中插入數據 105

10.2.2 在表的指定列插入數據 106

10.2.3 由另一張表插入數據 107

10.2.4 插入 NULL 值 108

10.3 更新現有數據 108

10.3.1 更新一列數據 108

10.3.2 更新一條或多條記錄的多個列 110

10.4 刪除數據 111

10.5 小結 112

10.6 答疑 112

10.7 實踐練習 113

第 11 章 管理數據庫事務 114

11.1 事務的定義 114

11.2 事務的控制 115

11.2.1 COMMIT 命令 115

11.2.2 ROLLBACK 命令 117

11.2.3 SAVEPOINT 命令 120

11.2.4 SET TRANSACTION 命令 124

11.3 處理糟糕的事務控制 124

11.4 小結 124

11.5 答疑 124

11.6 實踐練習 125

第 12 章 數據庫查詢 127

12.1 SELECT 語句的用法 127

12.1.1 理解 SELECT 語句 128

12.1.2 查詢唯一值 130

12.1.3 理解 FROM 子句 130

12.1.4 理解 WHERE 子句 131

12.1.5 理解 ORDER BY 子句 133

12.2 大小寫敏感性 135

12.3 查詢語句編寫起步 136

12.3.1 對記錄計數 138

12.3.2 查詢其他用戶的表 139

12.3.3 列別名的用法 140

12.4 小結 141

12.5 答疑 141

12.6 實踐練習 141

第 13 章 用操作符歸類數據 143

13.1 SQL 操作符的定義 143

13.2 比較操作符的用法 143

13.2.1 等於 144

13.2.2 不等於 144

13.2.3 小於和大於 145

13.2.4 比較操作符的組合使用 146

13.3 邏輯操作符的用法 147

13.3.1 IS NULL 147

13.3.2 BETWEEN. 148

13.3.3 IN 149

13.3.4 LIKE 150

13.3.5 EXISTS 151

13.3.6 ALL、SOME 和 ANY 151

13.4 連接操作符的用法 152

13.4.1 AND 152

13.4.2 OR 153

13.5 取反操作符的用法 154

13.5.1 不等於 155

13.5.2 NOT BETWEEN 155

13.5.3 NOT IN 156

13.5.4 NOT LIKE 156

13.5.5 IS NOT NULL 156

13.5.6 NOT EXISTS 157

13.6 算術操作符的用法 157

13.6.1 加法 158

13.6.2 減法 158

13.6.3 乘法 159

13.6.4 除法 159

13.6.5 算術操作符的組合使用 160

13.7 小結 161

13.8 答疑 161

13.9 實踐練習 161

第 14 章 表連接查詢 163

14.1 查詢多張表中的數據 163

14.2 理解連接 164

14.2.1 等值連接 164

14.2.2 表的別名 166

14.2.3 不等連接 166

14.2.4 外連接 168

14.2.5 自連接 169

14.2.6 用多個鍵連接表 172

14.3 表連接的註意事項 173

14.3.1 基表 173

14.3.2 笛卡兒積 174

14.4 小結 176

14.5 答疑 176

14.6 實踐練習 177

第 15 章 調整數據的顯示格式 178

15.1 ANSI 字符函數 178

15.2 常用的字符函數 179

15.2.1 CONCAT 函數 179

15.2.2 UPPER 函數 181

15.2.3 LOWER 函數 181

15.2.4 DECODE 函數 182

15.2.5 SUBSTR 函數 183

15.2.6 TRANSLATE 函數 183

15.2.7 REPLACE 函數 184

15.2.8 LTRIM 函數 184

15.2.9 RTRIM 函數 185

15.3 其他字符函數 185

15.3.1 LENGTH 函數 185

15.3.2 COALESCE 函數 186

15.3.3 LPAD 函數 187

15.3.4 RPAD 函數 187

15.3.5 ASCII 函數 187

15.4 數學函數 188

15.5 格式轉換函數 188

15.5.1 將數值轉換為字符串 189

15.5.2 將字符串轉換為數值 189

15.6 字符函數的組合使用. 190

15.7 小結 190

15.8 答疑 190

15.9 實踐練習 191

第 16 章 日期和時間 193

16.1 日期的存儲方式 193

16.1.1 標準的日期和時間類型 193

16.1.2 DATETIME 的構成元素 194

16.1.3 各種產品的日期類型 194

16.2 日期函數的用法 195

16.2.1 獲取當前日期 195

16.2.2 時區的處理 197

16.2.3 日期相加 198

16.2.4 時間相減 199

16.2.5 其他日期函數的用法 200

16.3 日期的格式轉換 201

16.3.1 日期格式符的用法 201

16.3.2 將日期轉換為字符串 203

16.3.3 將字符串轉換為日期 204

16.4 小結 204

16.5 答疑 204

16.6 實踐練習 205

第 17 章 匯總查詢結果數據 206

17.1 聚合函數的用法 206

17.1.1 COUNT 函數 207

17.1.2 SUM 函數 208

17.1.3 AVG 函數 209

17.1.4 MAX 函數 210

17.1.5 MIN 函數 210

17.2 數據分組 211

17.3 GROUP BY 子句的用法 211

17.3.1 分組函數 212

17.3.2 對所選數據分組 212

17.3.3 創建分組並使用聚合函數 212

17.4 GROUP BY 和 ORDER BY 的區別 213

17.5 CUBE 和 ROLLUP 表達式的用法 215

17.6 HAVING 子句的用法 217

17.7 小結 218

17.8 答疑 218

17.9 實踐練習 219

第 18 章 用子查詢定義未知數據 221

18.1 子查詢的定義 221

18.1.1 子查詢與 SELECT 語句合作 222

18.1.2 子查詢與 CREATE TABLE 語句合作 224

18.1.3 子查詢與 INSERT 語句合作 225

18.1.4 子查詢與 UPDATE 語句合作 226

18.1.5 子查詢與 DELETE 語句合作 227

18.2 嵌套子查詢 227

18.3 關聯子查詢 229

18.4 小結 230

18.5 答疑 230

18.6 實踐練習 231

第 19 章 組合查詢. 232

19.1 單體查詢和組合查詢的區別 232

19.2 組合查詢操作符的用法 233

19.2.1 UNION 操作符 233

19.2.2 UNION ALL 操作符 236

19.2.3 INTERSECT 操作符 238

19.2.4 EXCEPT 和 MINUS 操作符 239

19.3 組合查詢中的 ORDER BY 240

19.4 組合查詢中的 GROUP BY 242

19.5 獲取準確的數據 243

19.6 小結 244

19.7 答疑 244

19.8 實踐練習 244

第 20 章 視圖和同義詞 247

20.1 視圖的定義 247

20.1.1 利用視圖簡化數據的訪問 248

20.1.2 將視圖用作一種安全措施 248

20.1.3 利用視圖維護匯總數據 248

20.2 創建視圖 249

20.2.1 由單張表創建視圖 249

20.2.2 由多張表創建視圖 250

20.2.3 由視圖創建視圖 253

20.2.4 由視圖創建表 256

20.2.5 加入 ORDER BY 子句 257

20.3 通過視圖更新數據 257

20.4 刪除視圖 261

20.5 嵌套視圖對性能的影響 261

20.6 同義詞的定義 261

20.6.1 同義詞的創建 262

20.6.2 同義詞的刪除 263

20.7 小結 263

20.8 答疑 263

20.9 實踐練習 263

第 21 章 管理數據庫用戶和安全 265

21.1 管理數據庫用戶 266

21.1.1 用戶類型 266

21.1.2 用戶管理由誰負責 266

21.1.3 用戶在數據庫中的位置 267

21.1.4 用戶和模式的區別 267

21.2 用戶管理過程 268

21.2.1 創建用戶 268

21.2.2 模式的創建 271

21.2.3 模式的刪除 272

21.2.4 修改用戶 273

21.2.5 監控用戶會話 273

21.2.6 刪除用戶權限 274

21.3 充分利用工具軟件 274

21.4 數據庫安全 275

21.5 賦權 275

21.5.1 系統級權限 276

21.5.2 對象級權限 276

21.5.3 賦予和撤銷權限的權限 277

21.6 控制用戶訪問 277

21.6.1 GRANT 命令 278

21.6.2 REVOKE 命令 279

21.6.3 列級的訪問控制 279

21.6.4 PUBLIC 賬戶 279

21.6.5 權限組 280

21.7 通過角色控制權限 280

21.7.1 CREATE ROLE 語句 281

21.7.2 DROP ROLE 語句 281

21.7.3 SET ROLE 語句 282

21.8 小結 282

21.9 答疑 283

21.10 實踐練習 283

第 22 章 利用索引改善性能 285

22.1 索引的定義 285

22.2 索引的工作原理 286

22.3 CREATE INDEX 命令的用法 286

22.4 索引的類型 287

22.4.1 單列索引 287

22.4.2 唯一索引 288

22.4.3 復合索引 289

22.4.4 隱式索引 290

22.5 何時使用索引 290

22.6 何時不用索引 290

22.7 修改索引 292

22.8 刪除索引 292

22.9 小結 292

22.10 答疑 292

22.11 實踐練習 293

第 23 章 改善數據庫性能 294

23.1 SQL 語句調優的定義 294

23.2 數據庫調優和 SQL 語句調優的對比 294

23.3 格式化 SQL 語句 295

23.3.1 格式化語句提升可讀性 295

23.3.2 重排 FROM 子句中表的順序 297

23.3.3 重排表連接條件的順序 297

23.3.4 最嚴篩選條件 298

23.4 全表掃描 299

23.5 其他影響性能的因素 300

23.5.1 使用 LIKE 操作符和通配符 300

23.5.2 避免使用 OR 操作符 301

23.5.3 避免使用 HAVING 子句 301

23.5.4 避免大規模排序操作 301

23.5.5 使用存儲過程 301

23.5.6 使用視圖 302

23.5.7 批量載入數據時禁用索引 302

23.6 基於成本的優化 302

23.7 小結 303

23.8 答疑 303

23.9 實踐練習 304

第 24 章 系統目錄的用法 306

24.1 系統目錄的定義 306

24.2 創建系統目錄 307

24.3 系統目錄包含的內容. 307

24.3.1 用戶數據 308

24.3.2 安全信息 308

24.3.3 數據庫設計信息 308

24.3.4 性能統計信息 308

24.4 不同產品的系統目錄表 308

24.5 查詢系統目錄 309

24.6 更新系統目錄表對象. 312

24.7 小結 313

24.8 答疑 313

24.9 實踐練習 313

第 25 章 更多練習 315

25.1 BIRDS 數據庫 315

25.2 鳥類的捕食者 317

25.3 鳥類攝影師 318

25.4 創建新表 321

25.5 實踐練習:查看表的信息 323

25.6 實踐練習:簡單查詢 323

25.7 實踐練習:新增表 324

25.8 實踐練習:操作數據 324

25.9 實踐練習:表連接 326

25.10 實踐練習:比較操作符 327

25.11 實踐練習:邏輯操作符 328

25.12 實踐練習:連接操作符 330

25.13 實踐練習:算術操作符 330

25.14 實踐練習:字符函數 330

25.15 實踐練習:聚合數據 333

25.16 實踐練習:GROUP BY 和HAVING 334

25.17 實踐練習:組合查詢 334

25.18 實踐練習:由現有表創建表 336

25.19 實踐練習:插入來自其他表

的數據 337

25.20 實踐練習:創建視圖 337

25.21 實踐練習:嵌入式子查詢 338

25.22 實踐練習:由子查詢創建視圖 339

25.23 實踐練習:由 SQL 語句創建 SQL 代碼 339

25.24 小結 340

25.25 實踐練習 340

附錄 A 常見 SQL 命令 342

附錄 B 流行供應商的 RDBMS 產品 347

附錄 C 測試題和習題答案. 348