《SQL实用全书》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)Rafe Colburn著;贺民,邓英材等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2001
  • ISBN:7505367048
  • 页数:504 页
图书介绍:

第一部分 设计和构造数据库 2

第1章 结构化查询语言 2

1.1 关系模型 2

1.1.1 关于数据结构的规则 4

1.1.2 关于数据处理的规则 4

1.1.3 关于数据完整性的规则 5

1.2 SQL语言 5

1.2.1 数据处理 6

1.2.2 数据定义 6

1.2.3 数据库管理 7

1.3 SQL标准 7

1.4 SQL句法 8

1.4.1 区分大小写 8

1.4.2 空白 9

1.4.3 嵌套 9

1.4.4 引用字符串 10

1.4.5 括号 11

1.5 关系操作 12

1.5.1 选择 12

1.5.2 投影 12

1.5.3 联接 13

1.6 数据库应用程序传送 14

1.6.1 基于主机的应用程序 14

1.6.2 客户机/服务器时代 14

1.6.3 通过Web传送数据库应用程序 15

1.6.4 命令行界面 16

1.7 实际应用 16

第2章 数据库设计 18

2.1 数据库结构 19

2.2 数据库的好与坏 19

2.2.1 好数据库的属性 19

2.2.2 劣质数据库的症状 20

2.3 设计过程 20

2.5 组织数据 21

2.4 设计的预设计阶段 21

2.6 函数依赖和候选关键字 22

2.6.1 函数依赖 23

2.6.2 候选关键字和主关键字 25

2.6.3 欺骗 25

2.7 实体-关系建模 26

2.7.1 标识实体 26

2.7.2 标识属性 27

2.7.4 1对1关系 28

2.7.3 标识关系 28

2.7.5 多对1关系 29

2.7.6 多对多关系 29

2.7.7 绘制关系图 30

2.8 规范化 31

2.8.1 无损分解 31

2.8.2 第一范式 32

2.8.3 第二范式 33

2.8.4 第三范式 34

2.8.5 Boyce-Codd范式 36

2.8.6 高级范式 37

2.8.7 消除规范化处理 38

2.9 实际应用 38

第3章 创建数据库 40

3.1 创建数据库 40

3.2 选择要访问的数据库 41

3.3 创建表 41

3.4 关系数据类型 42

3.4.1 字符串数据 43

3.4.2 数字数据 44

3.4.3 时间数据类型 44

3.5 指定关键字 44

3.5.1 外部关键字 46

3.6 列约束 46

3.6.1 禁止空值 47

3.6.2 其他限制 47

3.8 Movie lnfo数据库的设计 48

3.7 默认值 48

3.8.1 Movies表 49

3.8.2 Studios表 51

3.8.3 People表 51

3.8.4 Cast_Movies表 52

3.8.5 Locations表 52

3.9 索引 53

3.9.1 创建惟一的索引 53

3.9.4 何时不作索引 54

3.9.2 群集索引 54

3.9.3 对列作索引的原因 54

3.10 实际应用 55

第4章 创建、更改及删除记录 56

4.1 准备数据 56

4.2 INSERT语句 57

4.2.1 插入空值和默认值 58

4.3 同时使用SELECT和INSERT 59

4.3.1 复制表和删除重复行 60

4.4 DELETE语句 64

4.5 UPDATE语句 64

4.6 TRUNCATE语句 65

4.7 DROP语句 66

4.7.1 DROP表 66

4.7.2 DROP索引 67

4.8 ALTER语句 67

4.8.1 ALTER表 67

4.9 实际应用 69

第二部分 从数据库中检索数据 72

第5章 SELECT语句 72

5.1 剖析SELECT语句 72

5.2 指定要检索的列 73

5.2.1 使用*来选定所有的列 75

5.3 在选定的数据上完成计算 76

5.3.1 将表达式包括在SELECT语句中 76

5.3.2 在表达式中使用列名称 77

5.3.3 SQL支持的算术运算符 78

5.4 对Name列和表达式使用AS 79

5.5 使用WHERE子句筛选查询结果 81

5.5.1 执行比较的运算符 81

5.5.2 字符串比较中区分大小写 84

5.5.3 在WHERE子句中执行计算 84

5.6 处理空值 85

5.6.1 检验空值 85

5.6.2 对其他查询中的空值进行说明 86

5.7 对查询结果排序 88

5.7.1 使用ORDER BY 88

5.7.2 按照降序排列记录 90

5.7.3 通过表达式来排序 90

5.7.4 次级排序 91

5.8 怎样决定字符串是否相等 93

5.8.1 怎样比较字符串 94

5.8.2 为忽略大小写的字符串排序 94

5.9 实际应用 95

5.8.3 字符集 95

第6章 使用WHERE子句 96

6.1 重述WHERE子句 96

6.2 在WHERE子句中使用逻辑运算符 97

6.2.1 编程逻辑 97

6.2.2 AND运算符 97

6.2.3 OR运算符 98

6.2.4 NOT运算符 98

6.2.5 使用多个布尔运算符 99

6.2.6 运算符先后顺序 100

6.3 IN子句 101

6.3.1 IN和子查询 102

6.3.2 IN与OR 102

6.3.3 NOT IN 102

6.4 BETWEEN子句 103

6.4.1 NOT BETWEEN 105

6.4.2 BETWEEN和临时数据 105

6.5 使用LIKE来匹配字符串各部分 106

6.4.3 BETWEEN和字符串 106

6.5.1 构建模式 107

6.5.2 使用LIKE的复合WHERE子句 108

6.5.3 对通配符转义 109

6.5.4 LIKE与性能 110

6.5.5 匹配一个或多个字符 110

6.6 对WHERE子句有用的函数 110

6.6.1 删除多余空格 111

6.6.2 字符串长度 111

6.6.3 类型转换函数 111

6.6.4 嵌套函数 112

6.6.5 聚集函数 112

6.7 实际应用 112

第7章 聚集查询结果 114

7.1 使用DISTINCT选择惟一值 114

7.1.1 选择值的DISTINCT组合 115

7.1.2 DISTINCT和NULL 116

7.2 聚集函数 117

7.2.1 聚集函数和WHERE子句 118

7.2.2 重新命名聚集查询结果 118

7.3 COUNT()函数 119

7.3.1 COUNT()和空值 119

7.3.2 COUNT()和DISTINCT 119

7.4 SUM和AVG函数 120

7.4.1 MIN()和MAX()函数 121

7.5 将聚集拆分为类别 121

7.5.1 GROUP BY子句 122

7.5.2 组与子组 124

7.5.3 GROUP GY和ORDER BY 125

7.5.4 将GROUP BY与WHERE子句一起使用 127

7.6 使用HAVING筛选查询结果 128

7.6.1 复合表达式和HAVING子句 128

7.6.2 HAVING和WHERE 129

7.7 实际应用 129

8.2 什么是联接 132

8.1 联接和规范化 132

第8章 使用联接来结合表 132

8.2.1 可兼容联接的列 133

8.2.2 联接条件 135

8.3 使用联接 135

8.3.1 决定选择什么列 136

8.3.2 缩减表名 137

8.3.3 联接与关系 138

8.4 怎样处理联接 138

8.5 联接的类型 139

8.5.1 自然联接 139

8.5.2 基于其他条件的联接 140

8.5.3 自联接 141

8.6 对两个以上表的联接 142

8.6.1 使用联接表 144

8.7 外联接 145

8.8 UNION联接 147

8.8.1 ALL运算符 149

8.8.2 将UNION与ORDER BY结合在一起 150

8.8.3 INTERSECT 152

8.8.4 MINUS 152

8.9 SQL-92联接句法 153

8.9.1 内联接 153

8.9.2 外联接 155

8.10 实际应用 156

9.1 什么是子查询 158

第9章 子查询 158

9.1.1 用联接来代替子查询 159

9.2 子查询类型 160

9.2.1 无关子查询 160

9.2.2 相关子查询 160

9.3 返回值的清单的子查询 161

9.3.1 与IN一起使用子查询 161

9.3.2 与相关子查询一起使用IN 163

9.3.3 用子查询来代替自联接 163

9.3.4 子查询和NOT IN 165

9.3.5 使用EXISTS 166

9.3.6 使用NOT EXISTS来查找空组 167

9.3.7 与ANY和ALL一起使用比较运算符 167

9.3.8 使用ANY 168

9.3.9 使用ALL 169

9.4 返回单个值的子查询 170

9.4.1 子查询和聚集函数 171

9.5.1 嵌套子查询 173

9.5 编写复杂的查询 173

9.5.2 结合子查询与联接 174

9.5.3 在HAVING子句中使用子查询 175

9.6 在UPDATE和DELETE语句中使用子查询 175

9.6.1 与DELETE一起使用子查询 175

9.6.2 与UPDATE一起使用子查询 176

9.7 与INSERT一起使用子查询 177

9.8 实际应用 178

10.1 创建表 182

第三部分 数据库管理 182

第10章 使用视图 182

10.2 使用视图的优点 184

10.2.1 方便 184

10.2.2 隐藏规范化效果 184

10.2.3 限制用户可用的数据 185

10.2.4 创建抽象层 186

10.3 创建列的别名 186

10.4 单表视图 187

10.4.1 具有表达式和函数的视图 188

10.4.2 在视图中使用聚集函数 189

10.5 使用联接的视图 191

10.6 使用子查询创建视图 192

10.7 在视图中使用其他联接操作 193

10.8 嵌套视图 194

10.9 更新视图 195

10.10.1 范例中的表 198

10.10 用视图可以完成的任务 198

10.10.2 系统如何工作 199

10.10.3 系统中的视图 200

10.10.4 文章检索查询 202

10.11 实际应用 203

第11章 SQL安全模型 205

11.1 数据库安全概览 205

11.1.1 数据库管理员账号 206

11.1.2 数据库所有者 206

11.2 创建数据库用户 206

11.2.1 修改用户 207

11.2.2 删除用户 207

11.3 数据库元素 207

11.3.1 数据库 207

11.3.2 表 209

11.3.3 视图 209

11.4 使用GRANT和REVOKE 210

11.3.4 列和视图列 210

11.4.1 公共用户 212

11.4.2 允许用户授予特权 212

11.4.3 授予和撤销的顺序 213

11.5 安全角色 213

11.5.1 创建和撤销角色 213

11.5.2 对用户分配角色 213

11.5.3 将角色分配给其他角色 216

11.6 视图和数据库安全 217

11.6.1 通过视图对访问权作自定义处理 218

11.7 实际应用 221

第四部分 实际应用中的问题 224

第12章 处理具体的数据类型 224

12.1 数字数据类型 225

12.1.1 排序数字 225

12.1.2 空值和数字 227

12.1.3 数学表达式 227

12.1.5 对数字作格式化处理 229

12.1.4 常用数学函数 229

12.2 字符串数据类型 231

12.2.1 并置字符串 231

12.2.2 字符串函数 232

12.2.3 搜索字符串 232

12.2.4 子字符串 233

12.2.5 将搜索与子字符串结合在一起 233

12.2.6 探测法 235

12.3 处理日期 236

12.3.1 对输出的日期作格式化处理 237

12.3.2 对输入的日期作格式化处理 237

12.3.3 日期算法 238

12.3.4 比较日期 240

12.3.5 四舍五入时间值 241

12.4 转换数据类型 241

12.4.1 CONVERT()函数 242

12.4.2 在Oracle中转换数据类型 244

12.5 实际应用 247

第13章 数据库性能和完整性 248

13.1 改进数据库性能 248

13.1.1 数据库设计中的性能考虑因素 248

13.2 性能测量工具 249

13.2.1 Oracle自动跟踪 249

13.2.2 Transact-SQL SHOWPLAN 252

13.3 索引 253

13.3.1 群集索引 253

13.3.2 利用索引的查询 254

13.4 查询优化程序 255

13.4.1 查询优化程序的工作方式 255

13.4.2 索引和优化程序 256

13.4.3 处理应用查询中的多个索引 257

13.4.4 数据集操作 259

13.4.5 查询优化程序和视图 259

13.4.7 联接操作 260

13.4.8 联接相关的提示 260

13.4.6 查询优化程序和子查询 260

13.5 数据完整型 261

13.6 完整性与性能 262

13.7 实际应用 262

第14章 事务和游标 265

14.1 事务 265

14.1.1 事务的工作方式 266

14.2 在Oracle中使用事务 266

14.3 在Transact-SQL中使用事务 268

14.2.1 自动提交 268

14.4 数据库锁定 270

14.4.1 锁定的类型 271

14.4.2 事务和存储过程 271

14.5 事务日志 272

14.6 游标 272

14.7 在Transact-SQL中使用游标 273

14.7.1 声明游标 273

14.7.3 从游标获取行 274

14.7.2 打开游标 274

14.7.4 用游标更新或删除 275

14.7.5 关闭和释放游标 276

14.8 在Oracle PL/SQL中使用游标 277

14.8.1 声明游标 277

14.8.2 在PL/SQL程序内使用游标 278

14.8.3 游标属性 278

14.8.4 游标循环 279

14.9 实际应用 281

第15章 编写存储过程 284

第五部分 存储过程 284

15.1 编写存储过程 285

15.1.1 向存储过程传送参数 286

15.2 使用变量 288

15.2.1 设置变量 289

15.3 定义代码块 291

15.4 使用IF的条件语句 292

15.4.2 IF语句使用代码块 293

15.4.1 在IF表达式中使用查询 293

15.4.4 嵌套IF语句和块 294

15.4.3 使用IF…ELSE 294

15.5 使用循环 296

15.5.1 WHILE循环 297

15.5.2 无限循环 298

15.5.3 使用CONTINUE重新启动循环 299

15.5.4 嵌套循环 300

15.6 循环游标 301

15.7 触发器 303

15.7.1 创建触发器 303

15.7.2 删除触发器 304

15.7.3 编写触发器 304

15.7.4 基于列约束触发器 305

15.8 实际应用 305

16.1 通用Transact-SQL编程信息 307

16.2 全局变量 307

第16章 详述Transact-SQL存储过程 307

16.3 使用RETURN离开存储过程 309

16.4 处理错误 309

16.4.1 使用RAISERROR 309

16.4.2 在Microsoft SQL Server中使用RAISERROR 310

16.4.3 在Sybase中使用RAISERROR 312

16.4.4 捕获错误 313

16.4.6 创建用户定义的错误消息 314

16.4.5 使用RETURN语句 314

16.5 使用临时对象 315

16.5.1 tempdb的工作方式 315

16.5.2 创建临时表 315

16.5.3 临时对象的类 316

16.5.4 永久的临时对象 316

16.6 WAITFOR 317

16.7 高级触发器写技术 317

16.7.1 ROLLBACK触发器 317

16.7.2 在触发器中使用INSERTED和DELETED表 318

16.8 实际应用 319

第17章 编写Oracle PL/SQL存储过程 321

17.1 声明节 322

17.1.1 常量 323

17.1.2 游标声明 323

17.2 执行节 324

17.2.1 从PL/SQL中提取数据 324

17.2.2 变量赋值 324

17.2.3 条件语句 324

17.2.4 循环 326

17.2.5 游标循环 326

17.2.6 FOR循环 327

17.2.7 FOR循环与游标 327

17.2.8 WHILE循环 328

17.2.9 WHILE循环与游标 328

17.2.11 变量值的选择 329

17.2.10 GOTO 329

17.3 异常情况处理 330

17.3.1 定义自己的异常情况 331

17.4 编写存储过程 332

17.4.1 过程的创建 333

17.4.2 存储过程的执行 333

17.5 定制函数的创建与使用 334

17.6.1 创建包清单 335

17.6 在包中捆绑过程和函数 335

17.7 PL/SQL查询调试 337

17.7.1 SHOW ERRORS 337

17.7.2 DBMS_OUTPUT 338

17.8 触发器 338

17.8.1 编写触发器 340

17.8.2 INSTEAD OF触发器 341

17.8.3 触发器的操作 342

17.9 实际应用 342

18.1 SQL*PLUS 346

第18章 Oracle 346

第六部分 特殊数据库 346

18.1.1 启动SQL*PLUS 347

18.1.2 SQL*PLUS的使用 348

18.1.3 加载SQL*PLUS脚本 349

18.1.4 login.sql脚本 350

18.1.5 编辑SQL命令 350

18.1.6 将SQL*PLUS的输出结果存入文件 351

18.1.7 输出显示控制 352

18.2 在SQL*PLUS中创建报表 354

18.2.1 创建报表标题 354

18.2.2 数据显示形式转换 354

18.2.3 其他数据操作命令 357

18.3 Oracle系统视图 359

18.3.1 系统视图的使用 360

18.4 序列 361

18.5 同义词 363

18.6 Oracle数据类型 364

18.8 实际应用 365

18.7 Oracle的Web资源 365

第19章 Microsoft SQL Server和Sybase Adaptive Server 367

19.1 Transact-SQL数据库工具 367

19.1.1 SQL Enterprise Manager 368

19.1.2 SQL Server Query Analyzer 369

19.1.3 SQL Central 369

19.1.4 ISQL 371

19.3 SELECT…INTO 372

19.2 Transact-SQL中的对象命名 372

19.4 系统函数 373

19.4.1 用户标识 373

19.4.2 数据库或服务器标识 373

19.4.3 数据比较函数 374

19.4.4 数据验证函数 375

19.5 CASE语句 375

19.5.1 复合CASE语句 376

19.5.2 CASE与GROUP BY 378

19.5.3 在UPDATE语句中使用CASE 379

19.6 系统存储过程 380

19.6.1 与安全性相关的过程 380

19.6.2 远程服务器过程 383

19.6.3 数据定义过程 383

19.7 Transact-SQL数据类型 386

19.8 实际应用 387

20.1 Microsoft数据库文件 389

第20章 Microsoft Access 389

20.2 ODBC 390

20.3 Access界面 390

20.4 Microsoft Access中的对象 390

20.4.1 表 391

20.4.2 查询 392

20.4.3 窗体 393

20.4.4 报表 393

20.4.6 模块 394

20.4.5 宏 394

20.5 表的创建 395

20.5.1 在数据表视图中创建表 395

20.5.2 设计视图中表的创建 397

20.5.3 编写数据定义查询 399

20.6 数据类型 399

20.7 查询的创建与运行 401

20.7.1 在设计视图中创建查询 401

20.7.2 在SQL视图中编写查询 404

20.8 ODBC数据源的创建 404

20.9 Microsoft Access资源 405

20.10 实际应用 406

第21章 MSQL与MySQL 408

21.1 MySQL和MSQL的获取 409

21.2 MySQL与MSQL的对比 409

21.3 MySQL的使用 410

21.3.1 MySQL客户 410

21.4 MySQL的功能 412

21.5 MySQL的局限性 414

21.5.1 没有子查询 414

21.5.2 无事务 415

21.5.3 存储过程、触发器和游标 415

21.5.4 外部关键字关系 415

21.6 MySQL的数据类型 416

21.7 MySQL的语法结构 418

21.8 MSQL 420

21.7.1 注释 420

21.8.1 在MSQL中运行查询 421

21.8.2 在MSQL中创建数据库对象 421

21.8.3 撤销MSQL中的对象 423

21.8.4 其他MSQL查询 423

21.9 MSQL和MySQL中字符串的比较 423

21.9.1 RLIKE的使用 424

21.10 实际应用 425

22.1 基本Web构架 428

第22章 Web的程序设计准则 428

第七部分 Web数据库 428

22.2 HTML 429

22.3 HTML表单的创建 429

22.4 使用标记创建的表单字段 431

22.4.1 文本字段 431

22.4.2 密码字段 432

22.4.4 单选按钮 433

22.4.5 文件上载 433

22.4.3 复选框 433

22.4.6 隐藏字段 434

22.4.7 提交按钮 434

22.4.8 重置按钮 435

22.4.9 使用图像作为提交按钮 436

22.4.10 选择列表 436

22.4.11 文本区 438

22.5 公共网关接口 439

22.5.2 为Web浏览器返回数据 440

22.5.1 表单数据的处理 440

22.6 XML 441

22.6.1 XML与Web发布 442

22.6.2 XML与关系数据库 442

22.7 实际应用 443

第23章 Web应用程序服务器 444

23.1 Web应用程序服务器分类概述 444

23.2 Web应用程序服务器的一般原理 445

23.3 独立程序 446

23.4 Perl/CGI 446

23.4.1 在数据库中存储表单数据 449

23.4.2 从CGI程序查询数据库 452

23.5 嵌入式HTML代码 454

23.6 Allaire的ColdFusion 455

23.6.1 ColdFusion对数据库的查询 455

23.7 Active Server Pages 458

23.7.1 使用ASP进行的数据库查询 459

23.8 Java Servlets 460

23.9 模板系统 461

23.9.1 模板应用程序服务器的工作原理 462

23.10 实际应用 462

第24章 Web应用程序实例 464

24.1 电影应用程序的基础构架 464

24.2 电影列表页 465

24.3 电影明细页 469

24.4 键入新电影 475

24.4.1 验证组件 478

24.4.2 表单组件 480

24.5 更新现有电影 484

24.6 编辑电影的演员表 487

24.7 修改电影的拍摄场景 498

24.8 项目删除 501

24.9 实际应用 501

附录A PL/SQL中系统定义的异常情况 503