《SQL入门经典 第5版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)斯蒂芬森,(美)普劳,(美)琼斯著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115264077
  • 页数:349 页
图书介绍:本书用通俗易懂的语言,循序渐进地介绍了用SQL进行事务处理、构造数据库和面向对象程序设计。 本书在上一版的基础上,更新了代码、图表、练习和测验。在这一般中作者还使用了现在很流行的,基于开放源代码的数据库(如MYSQL)的例子。

第一部分SQL概念综述 3

第1章 欢迎来到SQL世界 3

1.1 SQL定义及历史 3

1.1.1什么是SQL 4

1.1.2什么是ANSI SQL 4

1.1.3新标准:SQL-2008 4

1.1.4什么是数据库 5

1.1.5关系型数据库 5

1.1.6客户端/服务器技术 6

1.1.7基于Web的数据库系统 7

1.1.8主流数据库厂商 7

1.2 SQL会话 7

1.2.1 CONNECT 8

1.2.2 DISCONNECT和EXIT 8

1.3 SQL命令的类型 8

1.3.1定义数据库结构 8

1.3.2操作数据 9

1.3.3选择数据 9

1.3.4数据控制语言 9

1.3.5数据管理命令 10

1.3.6事务控制命令 10

1.4本书使用的数据库 10

1.4.1表命名标准 11

1.4.2数据一瞥 11

1.4.3表的构成 13

1.4.4范例和练习 14

1.5小结 14

1.6问与答 14

1.7实践 15

1.7.1测验 15

1.7.2练习 15

第二部分 建立数据库 19

第2章 定义数据结构 19

2.1数据是什么 19

2.2基本数据类型 19

2.2.1定长字符串 20

2.2.2变长字符串 21

2.2.3大对象类型 21

2.2.4数值类型 21

2.2.5小数类型 22

2.2.6整数 22

2.2.7浮点数 23

2.2.8日期和时间类型 23

2.2.9直义字符串 23

2.2.10 NULL数据类型 24

2.2.11布尔值 24

2.2.12自定义类型 25

2.2.13域 25

2.3小结 25

2.4问与答 26

2.5实践 26

2.5.1测验 26

2.5.2练习 27

第3章 管理数据库对象 29

3.1什么是数据库对象 29

3.2什么是规划 29

3.3表:数据的主要存储方式 31

3.3.1列 31

3.3.2行 31

3.3.3 CREATE TABLE语句 32

3.3.4命名规范 33

3.3.5 ALTER TABLE命令 34

3.3.6从现有表新建另一个表 36

3.3.7删除表 37

3.4完整性约束 37

3.4.1主键约束 38

3.4.2唯一性约束 38

3.4.3外键约束 39

3.4.4 NOT NULL约束 40

3.4.5检查约束 40

3.4.6去除约束 41

3.5小结 41

3.6问与答 41

3.7实践 42

3.7.1测验 42

3.7.2练习 42

第4章 规格化过程 45

4.1规格化数据库 45

4.1.1原始数据库 45

4.1.2数据库逻辑设计 46

4.1.3规格形式 47

4.1.4命名规范 49

4.1.5规格化的优点 50

4.1.6规格化的缺点 50

4.2去规格化数据库 50

4.3小结 51

4.4问与答 51

4.5实践 51

4.5.1测验 52

4.5.2练习 52

第5章 操作数据 53

5.1数据操作概述 53

5.2用新数据填充表 53

5.2.1把数据插入到表 54

5.2.2给表里指定列插入数据 55

5.2.3从另一个表插入数据 56

5.2.4插入NULL值 57

5.3更新现有数据 58

5.3.1更新一列的数据 58

5.3.2更新一条或多记录里的多个字段 59

5.4从表里删除数据 59

5.5小结 60

5.6问与答 60

5.7实践 61

5.7.1测验 61

5.7.2练习 62

第6章 管理数据库事务 63

6.1什么是事务 63

6.2控制事务 63

6.2.1 COMMIT命令 64

6.2.2 ROLLBACK命令 66

6.2.3 SAVEPOINT命令 67

6.2.4 ROLLBACK TO SAVEPOINT命令 67

6.2.5 RELEASE SAVEPOINT命令 68

6.2.6 SET TRANSACTION命令 68

6.3事务控制与数据库性能 69

6.4小结 69

6.5问与答 69

6.6实践 70

6.6.1测验 70

6.6.2练习 70

第三部分从查询中获得有效的结果 73

第7章 数据库查询 73

7.1什么是查询 73

7.2 SELECT语句 73

7.2.1 SELECT语句 74

7.2.2 FROM子句 75

7.2.3 WHERE子句 76

7.2.4 ORDER BY子句 77

7.2.5大小写敏感性 79

7.3简单查询的范例 79

7.3.1统计表里的记录数量 81

7.3.2从另一个用户表里选择数据 81

7.3.3使用字段别名 82

7.4小结 82

7.5问与答 83

7.6实践 83

7.6.1测验 83

7.6.2练习 84

第8章 使用操作符对数据进行分类 85

8.1什么是SQL里的操作符 85

8.2比较操作符 85

8.2.1相等 86

8.2.2不等于 86

8.2.3小于和大于 87

8.2.4比较操作符的组合 88

8.3逻辑操作符 88

8.3.1 IS NULL 89

8.3.2 BETWEEN 89

8.3.3 IN 90

8.3.4 LIKE 90

8.3.5 EXISTS 91

8.3.6 ALL、SOME和ANY操作符 92

8.4连接操作符 93

8.4.1 AND 93

8.4.2 OR 94

8.5求反操作符 95

8.5.1不相等 96

8.5.2 NOT BETWEEN 96

8.5.3 NOT IN 97

8.5.4 NOT LIKE 97

8.5.5 IS NOT NULL 98

8.5.6 NOT EXISTS 98

8.6算术操作符 98

8.6.1加法 99

8.6.2减法 99

8.6.3乘法 99

8.6.4除法 100

8.6.5算术操作符的组合 100

8.7小结 101

8.8问与答 101

8.9实践 101

8.9.1测验 102

8.9.2练习 102

第9章 汇总查询得到的数据 104

9.1什么是汇总函数 104

9.1.1 COUNT函数 105

9.1.2 SUM函数 107

9.1.3 AVG函数 108

9.1.4 MAX函数 108

9.1.5 MIN函数 109

9.2小结 110

9.3问与答 110

9.4实践 111

9.4.1测验 111

9.4.2练习 111

第10章 数据排序与分组 113

10.1为什么要对数据进行分组 113

10.2 GROUP BY子句 114

10.2.1分组函数 114

10.2.2对选中的数据进行分组 114

10.2.3创建分组和使用汇总函数 115

10.2.4以整数代表字段名称 117

10.3 GROUP BY与ORDER BY 117

10.4 CUBE和ROLLUP语句 119

10.5 HAVING子句 121

10.6小结 122

10.7问与答 122

10.8实践 123

10.8.1测验 123

10.8.2练习 123

第11章 调整数据的外观 125

11.1 ANSI字符函数 125

11.2常用字符函数 126

11.2.1串接函数 126

11.2.2 TRANSLATE函数 127

11.2.3 REPLACE 128

11.2.4 UPPER 128

11.2.5 LOWER 129

11.2.6 SUBSTR 129

11.2.7 INSTR 130

11.2.8 LTRIM 131

11.2.9 RTRIM 131

11.2.10 DECODE 132

11.3其他字符函数 132

11.3.1 LENGTH 132

11.3.2 IFNULL(检查NULL值) 133

11.3.3 COALESCE 133

11.3.4 LPAD 134

11.3.5 RPAD 134

11.3.6 ASCII 135

11.4算术函数 135

11.5转换函数 136

11.5.1字符串转换为数字 136

11.5.2数字转换为字符串 137

11.6字符函数的组合使用 137

11.7小结 138

11.8问与答 138

11.9实践 139

11.9.1 测验 139

11.9.2练习 139

第12章 日期和时间 141

12.1日期是如何存储的 141

12.1.1日期和时间的标准数据类型 141

12.1.2 DATETIME元素 142

12.1.3不同实现的日期类型 142

12.2日期函数 143

12.2.1当前日期 143

12.2.2时区 144

12.2.3时间与日期相加 144

12.2.4其他日期函数 146

12.3日期转换 146

12.3.1日期描述 147

12.3.2日期转换为字符串 149

12.3.3字符串转换为日期 149

12.4小结 150

12.5问与答 150

12.6实践 150

12.6.1测验 151

12.6.2练习 151

第四部分 建立复杂的数据库查询 155

第13章 在查询里结合表 155

13.1从多个表获取数据 155

13.2结合的类型 156

13.2.1结合条件的位置 156

13.2.2等值结合 156

13.2.3使用表的别名 157

13.2.4不等值结合 158

13.2.5外部结合 159

13.2.6自结合 161

13.2.7结合多个主键 162

13.3需要考虑的事项 163

13.3.1使用基表 163

13.3.2笛卡尔积 164

13.4小结 166

13.5问与答 166

13.6实践 167

13.6.1测验 167

13.6.2练习 167

第14章 使用子查询定义未确定数据 169

14.1什么是子查询 169

14.1.1子查询与SELECT语句 170

14.1.2子查询与INSERT语句 171

14.1.3子查询与UPDATE语句 172

14.1.4子查询与DELETE语句 173

14.2嵌套的子查询 173

14.3关联子查询 175

14.4子查询的效率 176

14.5小结 176

14.6问与答 176

14.7实践 177

14.7.1测验 177

14.7.2练习 178

第15章 组合多个查询 179

15.1单查询与组合查询 179

15.2组合查询操作符 180

15.2.1 UNION 180

15.2.2 UNION ALL 182

15.2.3 INTERSECT 183

15.2.4 EXCEPT 184

15.3组合查询里使用ORDER BY 184

15.4组合查询里使用GROUP BY 186

15.5获取准确的数据 187

15.6小结 187

15.7问与答 187

15.8实践 188

15.8.1测验 188

15.8.2练习 189

第五部分 SQL性能调整 193

第16章 利用索引改善性能 193

16.1什么是索引 193

16.2索引是如何工作的 194

16.3 CREATE INDEX命令 194

16.4索引的类型 195

16.4.1单字段索引 195

16.4.2唯一索引 195

16.4.3组合索引 196

16.4.4隐含索引 196

16.5何时考虑使用索引 196

16.6何时应该避免使用索引 197

16.7修改索引 198

16.8删除索引 198

16.9小结 199

16.10问与答 199

16.11实践 199

16.11.1测验 199

16.11.2练习 200

第17章 改善数据库性能 201

17.1什么是SQL语句调整 201

17.2数据库调整与SQL语句调整 202

17.3格式化SQL语句 202

17.3.1为提高可读性格式化SQL语句 202

17.3.2 FROM子句里的表 204

17.3.3结合条件的次序 204

17.3.4最严格条件 205

17.4全表扫描 206

17.5其他性能考虑 207

17.5.1使用LIKE操作符和通配符 207

17.5.2避免使用OR操作符 208

17.5.3避免使用HAVING子句 208

17.5.4避免大规模排序操作 209

17.5.5使用存储过程 209

17.5.6在批加载时关闭索引 209

17.6基于成本的优化 210

17.7性能工具 210

17.8小结 210

17.9问与答 211

17.10实践 211

17.10.1测验 211

17.10.2练习 211

第六部分 使用SQL管理用户和安全 215

第18章 管理数据库用户 215

18.1数据库的用户管理 215

18.1.1用户的类型 216

18.1.2谁管理用户 216

18.1.3用户在数据库里的位置 216

18.1.4不同规划里的用户 217

18.2管理过程 217

18.2.1创建用户 217

18.2.2创建规划 219

18.2.3删除规划 220

18.2.4调整用户 221

18.2.5用户会话 222

18.2.6禁止用户访问 222

18.3数据库用户使用的工具 222

18.4小结 223

18.5问与答 223

18.6实践 223

18.6.1测验 224

18.6.2练习 224

第19章 管理数据库安全 225

19.1什么是数据库安全 225

19.2什么是权限 226

19.2.1系统权限 226

19.2.2对象权限 227

19.2.3谁负责授予和撤销权限 228

19.3控制用户访问 228

19.3.1 GRANT命令 228

19.3.2 REVOKE命令 229

19.3.3控制对单独字段的访问 230

19.3.4数据库账户PUBLIC 230

19.3.5权限组 230

19.4通过角色控制权限 231

19.4.1 CREATE ROLE语句 232

19.4.2 DROP ROLE语句 232

19.4.3 SET ROLE语句 232

19.5小结 233

19.6问与答 233

19.7实践 233

19.7.1测验 234

19.7.2练习 234

第七部分 摘要数据结构 237

第20章 创建和使用视图及异名 237

20.1什么是视图 237

20.1.1使用视图来简化数据访问 238

20.1.2 使用视图作为一种安全形式 238

20.1.3使用视图维护摘要数据 239

20.2创建视图 239

20.2.1从一个表创建视图 239

20.2.2从多个表创建视图 241

20.2.3从视图创建视图 241

20.3 WITH CHECK OPTION 242

20.4从视图创建表 243

20.5视图与ORDER BY子句 244

20.6通过视图更新数据 244

20.7删除视图 244

20.8嵌套视图对性能的影响 245

20.9什么是异名 245

20.9.1创建异名 245

20.9.2删除异名 246

20.10小结 246

20.11问与答 247

20.12实践 247

20.12.1测验 247

20.12.2练习 247

第21章 使用系统目录 248

21.1什么是系统目录 248

21.2如何创建系统目录 249

21.3系统目录里包含什么内容 249

21.3.1用户数据 250

21.3.2安全信息 250

21.3.3数据库设计信息 250

21.3.4性能统计 250

21.4不同实现里的系统目录表格 250

21.5查询系统目录 251

21.6更新系统目录对象 253

21.7小结 253

21.8问与答 253

21.9实践 254

21.9.1测验 254

21.9.2练习 254

第八部分 在实际工作中应用SQL知识 257

第22章 高级SQL主题 257

22.1光标 257

22.1.1打开光标 258

22.1.2从光标获取数据 258

22.1.3关闭光标 260

22.2存储过程和函数 260

22.3触发器 262

22.3.1 CREATE TRIGGER语句 262

22.3.2 DROP TRIGGER语句 263

22.3.3 FOR EACH ROW语句 264

22.4动态SQL 264

22.5调用级接口 264

22.6使用SQL生成SQL 265

22.7直接SQL与嵌入SQL 265

22.8窗口表格函数 266

22.9使用XML 266

22.10小结 267

22.11问与答 267

22.12实践 267

22.12.1测验 267

22.12.2练习 268

第23章SQL扩展到企业、互联网和内部网 269

23.1 SQL与企业 269

23.1.1后台程序 269

23.1.2前台程序 270

23.2访问远程数据库 270

23.2.1 ODBC 271

23.2.2 JDBC 271

23.2.3 OLE DB 271

23.2.4厂商连接产品 272

23.2.5通过Web接口访问远程数据库 272

23.3 SQL与互联网 273

23.3.1让数据可以被全世界的顾客使用 273

23.3.2向雇员和授权顾客提供数据 273

23.4 SQL与内部网 273

23.5小结 274

23.6问与答 274

23.7实践 275

23.7.1 测验 275

23.7.2练习 275

第24章 标准SQL的扩展 276

24.1各种实现 276

24.1.1不同实现之间的区别 276

24.1.2遵循ANSI SQL 277

24.1.3 SQL的扩展 278

24.2扩展范例 278

24.2.1 Transact-SQL 279

24.2.2 PL/SQL 279

24.2.3 MySQL 280

24.3交互SQL语句 280

24.4小结 281

24.5问与答 281

24.6实践 282

24.6.1测验 282

24.6.2练习 282

第九部分 附录 285

附录A常用SQL命令 285

A.1 SQL语句 285

A.2 SQL子句 288

附录B使用数据库进行练习 290

B.1在Windows操作系统中安装MySQL的指令 290

B.2在Windows操作系统中安装Oracle的指令 292

B.3在Windows操作系统中安装Microsoft SQL Server的指令 293

附录C测验和练习的答案 295

附录D本书范例的CREATE TABLE语句 333

D.1 MySQL 333

D.2 Oracle和SQL Server 334

附录E书中范例所涉数据的INSERT语句 336

E.1 MySQL和SQL Server 336

E.1.1 EMPLOYEE_TBL 336

E.1.2 EMPLOYEE_PAY_TBL 336

E.1.3 CUSTOMER_TBL 337

E.1.4 ORDERS_TBL 338

E.1.5 PRODUCTS_TBL 338

E.2 Oracle 339

E.2.1 EMPLOYEE_TBL 339

E.2.2 EMPLOYEE_PAY_TBL 339

E.2.3 CUSTOMER_TBL 340

E.2.4 ORDERS_TBL 341

E.2.5 PRODUCTS_TBL 341

附录F额外练习 342

术语表 347