《轻松掌握SQL》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)(R.K.斯蒂芬斯)Ryan K.Stephens等著;张立红等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:1999
  • ISBN:7505349864
  • 页数:492 页
图书介绍:

第一篇 概要 1

1.2.1 Codd的关于数据库模型的十二条准则 2

1.2 数据库历史简介 2

第1章 SQL语言介绍 2

1.1 SQL语言历史简介 2

1.3.1 当今的数据库概述 5

1.3 数据库结构设计 5

1.4.2 SQL和客户/服务器应用的开发 6

1.4.1 早期的实现 6

1.4 跨产品语言 6

1.6.1 MicrosoftAccess 7

1.6 几种较流行的SQL语言的实现 7

1.5 SQL语言概述 7

1.6.3 MicrosoftQuery 8

1.6.2 PersonalOracle7 8

1.8 应用程序编程中的SQL语言 9

1.7 开放数据库连接(ODBC) 9

1.10 问与答 10

1.9 小结 10

1.11.2 练习 11

1.11.1 测验 11

1.11 工作室 11

2.3 一般的句法格式 12

2.2 背景 12

第2章 查询简介:SELECT语句 12

2.1 目标 12

2.4 用SELECT及FROM建立数据检索块 13

2.5 示例 14

2.6.2 改变列的顺序 15

2.6.1 结束一个SQL语句 15

2.6 第一个查询 15

2.6.3 选择特定的列 16

2.7 使用区别(Distinction)查询 17

2.6.4 从不同表中选择数据 17

2.10.1 测验 19

2.10 工作室 19

2.8 小结 19

2.9 问与答 19

2.10.2 练习 20

3.2 表达式 21

3.1 目标 21

第3章 表达式、条件和操作符 21

3.3.1 WHERE子句 22

3.3 条件 22

3.4.1 算术操作符 23

3.4 操作符 23

3.4.2 比较操作符 30

3.4.3 字符操作符 36

3.4.4 逻辑操作符 40

3.4.5 集合操作符 44

3.4.6 其它操作符:IN和BETWEEN 46

3.6 问与答 48

3.5 小结 48

3.7.2 练习 49

3.7.1 测验 49

3.7 工作室 49

4.2.1 COUNT 51

4.2 聚集函数 51

第4章 函数:构造检索数据的模式 51

4.1 目标 51

4.2.2 SUM 52

4.2.3 AVG 54

4.2.5 MIN 55

4.2.4 MAX 55

4.2.6 VARIANCE 56

4.2.7 STDDEV 57

4.3.1 ADD_MONTHS 58

4.3 日期和时间函数 58

4.3.2 LAST_DAY 59

4.3.3 MONTHS_BETWEEN 60

4.3.5 NEXT_DAY 62

4.3.4 NEWTIME 62

4.4 算术函数 63

4.3.6 SYSDATE 63

4.4.2 CEIL和FLOOR 64

4.4.1 ABS 64

4.4.3 COS、COSH、SIN、SINH、TAN和TANH 65

4.4.4 EXP 67

4.4.5 LN和LOG 68

4.4.7 POWER 69

4.4.6 MOD 69

4.4.9 SQRT 70

4.4.8 SIGN 70

4.5.1 CHR 71

4.5 字符函数 71

4.5.2 CONCAT 72

4.5.4 LOWER和UPPER 73

4.5.3 INITCAP 73

4.5.5 LPAD和RPAD 74

4.5.6 LTRIM和RTRIM 75

4.5.7 REPLACE 76

4.5.8 SUBSTR 78

4.5.9 TRANSLATE 80

4.5.11 LENGTH 81

4.5.10 INSTR 81

4.6.1 TOCHAR 82

4.6 转换函数 82

4.7.1 GREATEST和LEAST 83

4.7 其它函数 83

4.6.2 TO_NUMBER 83

4.9 问与答 84

4.8 小结 84

4.7.2 USER 84

4.10.2 练习 85

4.10.1 测验 85

4.10 工作室 85

5.1 目标 86

第5章 SQL子句 86

5.2 WHERE子句 87

5.3 STARTINGWITH子句 89

5.4 ORDERBY子句——把混乱变为有序 90

5.5 GROUPBY子句 95

5.6 HAVING子句 100

5.7 复合子句 104

5.10.2 练习 110

5.10.1 测验 110

5.8 小结 110

5.9 问与答 110

5.10 工作室 110

6.3 在单个SELECT语句中的多重表 111

6.2 介绍 111

第6章 连接表 111

6.1 目标 111

6.4 相等连接 116

6.3.1 寻找正确的列 116

6.5 不等连接 121

6.6 比较外部连接和内部连接 122

6.7 将表与自己连接 125

6.8 小结 126

6.10.1 测验 127

6.10 工作室 127

6.9 问与答 127

6.10.2 练习 128

7.2 建立一个子查询 129

7.1 目标 129

第7章 子查询:嵌入式SELECT语句 129

7.3 在子查询中使用聚集函数 134

7.4 嵌套子查询 135

7.5 相关子查询 139

7.6 使用EXISTS、ANY和ALL 142

7.9.1 测验 147

7.9 工作室 147

7.7 小结 147

7.8 问与答 147

7.9.2 练习 149

预习 150

第一篇 回顾 150

本篇综述 151

第二篇 概要 151

8.2 数据操作语句简介 152

8.1 目标 152

第8章 操作数据 152

8.3.1 INSERT...VALUES语句 153

8.3 INSERT语句 153

8.3.2 插入NULL值(空值) 155

8.3.4 INSERT...SELECT语句 156

8.3.3 插入唯一值 156

8.4 UPDATE语句 159

8.5 DELETE语句 161

8.6.1 MicrosoftAccess 165

8.6 从外部数据源输入和输出数据 165

8.6.3 PersonalOracle7 166

8.6.2 Microsoft和Sybase的SQLServer 166

8.8 问与答 167

8.7 小结 167

8.9.1 测验 168

8.9 工作室 168

8.9.2 练习 169

9.2 CREATEDATABASE语句 170

9.1 目标 170

第9章 创建和维护表 170

9.2.2 数据库设计 171

9.2.1 CREATEDATABASE选项 171

9.2.4 创建关键字段 172

9.2.3 创建数据字典 172

9.3.2 字段名 174

9.3.1 表名 174

9.3 CREATETABLE语句 174

9.3.3 字段的数据类型 175

9.3.5 从一个存在的表创建表 178

9.3.4 表的存储和尺寸 178

9.4 ALTERTABLE语句 179

9.5 DROPTABLE语句 180

9.6 DROPDATABASE语句 181

9.8 问与答 182

9.7 小结 182

9.9.2 练习 183

9.9.1 测验 183

9.9 工作室 183

10.1 目标 184

第10章 创建视图和索引 184

10.2 使用视图 185

10.2.1 简单视图 187

10.2.2 改列名 188

10.2.3 SQL视图处理 189

10.2.4 使用SELECT语句的限制 193

10.2.5 与使用视图修改数据有关的问题 195

10.2.8 用视图转换单位 196

10.2.7 视图和安全性 196

10.2.6 视图的一般应用 196

10.2.9 用视图简化复杂的查询 197

10.2.10 DROPVIEW语句 198

10.3.1 索引是什么 199

10.3 使用索引 199

10.3.3 在一个以上的字段建立索引 203

10.3.2 索引技巧 203

10.3.4 使用带有UNIQUE关键字的CREATEINDEX语句 205

10.3.5 索引与连接 207

10.4 小结 208

10.3.6 使用聚簇(Cluster) 208

10.6 工作室 209

10.5 问与答 209

10.6.2 练习 210

10.6.1 测验 210

11.2 事务控制 211

11.1 目标 211

第11章 事务控制 211

11.3 银行应用 212

11.4 开始一个事务 213

11.5 结束一个事务 215

11.6 撤消事务 217

11.7 使用事务保存点(SAVEPOINT) 219

11.9 问与答 222

11.8 小结 222

11.10.2 练习 223

11.10.1 测验 223

11.10 工作室 223

12.2 流行的数据库产品及其安全性 224

12.1 数据库管理员须知 224

第12章 数据库安全性 224

12.4 PersonalOracle7和安全性 225

12.3 如何确保数据库的安全性 225

12.4.1 创建用户 226

12.4.2 创建角色(Roles) 227

12.4.3 用户特权 228

12.4.4 用户访问视图 229

12.4.5 用视图实现安全性 234

12.4.6 使用同义词代替视图 235

12.4.7 使用WITHGRANTOPTION子句 237

12.7 工作室 238

12.6 问与答 238

12.5 小结 238

12.7.2 练习 239

12.7.1 测验 239

13.2 临时表 240

13.1 目标 240

第13章 高级SQL主题 240

13.3.1 创建游标 245

13.3 游标 245

13.3.3 滚动游标 246

13.3.2 打开游标 246

13.3.5 关闭游标 247

13.3.4 测试游标的状态 247

13.3.6 游标的使用范围 248

13.4 创建并使用存储过程 249

13.4.1 使用存储过程参数 251

13.4.2 删除存储过程 252

13.4.3 嵌套存储过程 253

13.5 设计和使用触发器 254

13.5.1 触发器和事务 255

13.5.2 使用触发器的限制 256

13.5.3 嵌套触发器 256

13.6.1 在执行之前测试SELECT语句 257

13.6 在UPDATE和DELETE语句中使用SELECT命令 257

13.7.1 静态和动态SQL语言 258

13.7 嵌入式SQL语言 258

13.10 问与答 260

13.9 小结 260

13.8 使用SQL编程 260

13.11.2 练习 261

1311.1 测验 261

13.11 工作室 261

14.2.2 PersonalOracle7 262

14.2.1 ODBC 262

第14章 SQL语言的动态使用 262

14.1 目标 262

14.2 快速浏览 262

14.2.5 Delphi 263

14.2.4 VisualC++++ 263

14.2.3 INTERBASESQL(ISQL) 263

14.4 创建数据库 264

14.3 开始 264

14.5 用MicrosoftQuery执行连接 268

14.6 使用VisualC++++和SQL 270

14.7 使用Delphi和SQL 275

14.8 小结 280

14.10.2 练习 281

14.10.1 测验 281

14.9 问与答 281

14.10 工作室 281

第二篇 回顾 282

运用SQL知识 283

第三篇 概要 283

15.2 增加SQL语句的可读性 284

15.1 目标 284

第15章 改进性能的优化执行SQL语句 284

15.3 扫描整个表 285

15.5 查询中各成分的安排 286

15.4 增加一个新索引 286

15.5.2 避免使用OR 288

15.5.1 过程 288

15.6.1 OLTP调整 289

15.6 联机分析处理(OLAP)与联机事务处理(OLTP) 289

15.7 成批装入与事务处理 290

15.6.2 OLAP调整 290

15.8 通过删除索引优化数据装载 291

15.10 在动态环境中重建表和索引 292

15.9 经常提交数据——保证系统正常运行的关键 292

15.11 调整数据库 294

15.12 影响数据库性能的因素 296

15.14 小结 297

15.13 内置调整工具 297

15.16.2 练习 298

15.16.1 测验 298

15.15 问与答 298

15.16 工作室 298

16.2 数据字典介绍 300

16.1 目标 300

第16章 使用视图从数据字典中检索有用信息 300

16.4.1 Oracle的数据字典 301

16.4 数据字典的内容 301

16.3 数据字典的用户 301

16.5.1 用户视图 302

16.5 Oracle数据字典的剖析 302

16.4.2 Sybase的数据字典 302

16.5.2 系统DBA视图 308

16.5.3 动态性能视图 318

16.6 小结 320

16.5.4 PLAN表 320

16.8.2 练习 321

16.8.1 测验 321

16.7 问与答 321

16.8 工作室 321

17.2 使用SQL语言生成SQL语句的目的 322

17.1 目标 322

第17章 使用SQL语言生成SQL语句 322

17.3.2 setfeedbackon/off 323

17.3.1 selechoon/off 323

17.3 几个SQL*Plus命令 323

17.4 统计所有表中的行数 324

17.3.4 spoo1filename/off 324

17.3.3 setheadingon/off 324

17.5 为多个用户授予系统权限 328

17.6 将表的权限授予其他用户 330

17.7 为装入数据而禁止对表的约束 331

17.8 在单个区域内创建大量的同义词 332

17.9 在表上创建视图 335

17.10 截断某一用户的所有表 336

17.11 使用SQL语句生成Shell脚本 338

17.14 问与答 339

17.13 小结 339

17.12 对表和索引进行逆向工程 339

17.15.2 练习 340

17.15.1 测验 340

17.15 工作室 340

18.3 Pl/SQL中的数据类型 342

18.2 介绍 342

第18章 Pl/SQL语言简介 342

18.1 目标 342

18.3.4 日期数据类型 343

18.3.3 二进制数据类型 343

18.3.1 字符串数据类型 343

18.3.2 数值数据类型 343

18.4.1 注解 344

18.4 Pl/SQL程序块结构 344

18.3.5 布尔型 344

18.3.6 行号(ROWID) 344

18.5.2 常量赋值 345

18.5.1 变量赋值 345

18.5 DECLARE部分 345

18.5.5 %ROWTYPE属性 346

18.5.4 %TYPE属性 346

18.5.3 游标的定义 346

18.6.2 游标控制命令 347

18.6.1 BEGIN...END语句 347

18.5.6 %ROWCOUNT属性 347

18.6 PROCEDURE部分 347

18.6.3 条件语句 349

18.7.2 异常事件处理程序的执行 352

18.7.1 异常事件的触发 352

18.7 EXCEPTION部分 352

18.7.4 为用户显示输出结果 353

18.7.3 PL/SQL程序块的执行 353

18.8 PL/SQL中的事务控制 354

18.9.1 样表和数据 355

18.9 PL/SQL程序的完整介绍 355

18.9.2 PL/SQL程序块实例 356

18.9.3 另一个实例 359

18.10.2 程序包样本 363

18.10.1 存储过程样本 363

18.10 存储过程、程序包和触发器 363

18.10.3 触发器样本 364

18.13.1 测验 366

18.13 工作室 366

18.11 小结 366

18.12 问与答 366

18.13.2 练习 367

19.3.1 Transact-SQL面向哪些用户 368

19.3 对ANSISQL语言的扩充 368

第19章 Transact-SQL介绍 368

19.1 目标 368

19.2 Transact-SQL概述 368

19.4.2 数值数据类型 369

19.4.1 字符串类型 369

19.3.2 Transact-SQL的基本构成 369

19.4 数据类型 369

19.5.1 BASEBALL数据库 370

19.5 使用Transact-SQL访问数据库 370

19.4.3 日期数据类型 370

19.4.4 货币数据类型 370

19.4.5 二进制串 370

19.4.6 位(bit)——一种逻辑数据类型 370

19.5.2 局部变量的声明 372

19.5.3 全局变量的声明 373

19.5.4 变量的使用 374

19.5.5 PRINT命令 375

19.6.2 IF...ELSE语句 376

19.6.1 BEGIN和END语句 376

19.6 程序流程控制 376

19.6.4 测试一个查询结果 378

19.6.3 EXISTS条件 378

19.6.6 BREAK命令 379

19.6.5 WHILE循环 379

19.6.7 CONTINUE命令 380

19.6.8 使用WHILE循环滚动访问一个表 381

19.9 日期转换 382

19.8 使用COMPUTE命令创建合计报表 382

19.7 Transact-SQL通配符 382

19.10 SQLServer的诊断工具——SET命令 383

19.13.1 测验 384

19.13 工作室 384

19.11 小结 384

19.12 问与答 384

19.13.2 练习 385

20.3 SQL*Plus缓冲区 386

20.2 介绍 386

第20章 SQL*Plus 386

20.1 目标 386

20.4 DESCRIBE命令 390

20.5 SHOW命令 391

20.6.1 SAVE、GET和EDIT命令 393

20.6 文件命令 393

20.6.2 执行一个SQL文件 394

20.6.3 存储查询结果 396

20.7 SET命令 397

20.8 LOGIN.SQL文件 400

20.10.1 TTITLE和BTITLE命令 401

20.10 格式化输出结果 401

20.9 CLEAR命令 401

20.10.2 格式化的列(列、标题、格式) 402

20.11.1 BREAKON 404

20.11 报表和分组合计 404

20.11.2 COMPUTE 405

20.12.1 替代变量(&) 407

20.12 在SQL*Plus中使用变量 407

20.12.2 DEFINE 408

20.12.3 ACCEPT 409

20.12.4 NEWVALUE 411

20.13 DUAL表 412

20.14 DECODE函数 413

20.15 日期转换 416

20.16 执行一系列SQL文件 418

20.17 在SQL脚本文件中增加注释 419

20.18 高级报表 420

20.20 问与答 421

20.19 小结 421

20.21.2 练习 422

20.21.1 测验 422

20.21 工作室 422

21.3.1 表或视图不存在 423

21.3 常见错误 423

第21章 SQL语言常见错误及解决方法 423

21.1 目标 423

21.2 介绍 423

21.3.2 无效的用户名或口令 424

21.3.4 不允许使用分组函数 425

21.3.3 没有FROM关键字 425

21.3.6 缺少关键字 426

21.3.5 无效的列名 426

21.3.8 缺少右括号 427

21.3.7 缺少左括号 427

21.3.9 缺少逗号 428

21.3.11 SQL命令没有正常结束 429

21.3.10 列名定义不明确 429

21.3.13 函数缺少参数 430

21.3.12 缺少表达式 430

21.3.15 完整性约束冲突——双亲主键没有找到 431

21.3.14 缺少数据值 431

21.3.17 向列中插入的数据太大 432

21.3.16 Oracle不能使用 432

21.3.20 语句中的无效字符——Escape字符 433

21.3.19 没有授权的权限 433

21.3.18 远程数据库服务器不能识别连接描述符中的系统ID号 433

21.4.1 在SQL语句中使用保留字 434

21.4 常见的逻辑错误 434

21.3.21 不能创建操作系统文件 434

21.4.3 删除不合适的表 435

21.4.2 在多个选择列上使用DISTINCT命令 435

21.4.5 可怕的组合爆炸 436

21.4.4 在多模式的数据库中公共同义词的使用 436

21.4.9 将数据库对象存储到系统表空间中 437

21.4.8 对于很大的表采用缺省的存储参数 437

21.4.6 数据输入质量不高 437

21.4.7 采用不合适的文件系统结构 437

21.5.1 在数据库中查找重复的记录 438

21.5 防止数据出现麻烦 438

21.4.10 大量的备份文件没有压缩 438

21.4.11 没有规划好系统资源的使用 438

21.8.2 练习 439

21.8.1 测验 439

21.6 小结 439

21.7 问与答 439

21.8 工作室 439

第三篇 回顾 441

附录A 常用SQL语句中的词汇 442

附录B 第14章中使用的C++++程序源代码清单 445

附录C 第14章中使用的Delphi程序源代码清单 460

附录D 参考文献 462

附录E ASCII字符表 464

附录F 测验和练习答案 468