《SQL结构化查询语言速学宝典 第2版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:周峰,张振东,张术强编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2012
  • ISBN:9787113135959
  • 页数:462 页
图书介绍:本书讲解SQL语句在数据库开发中的技术和技巧,每个实例都具有很强的实用性与可操作性。全书共分22章,分别讲解了数据库的运行环境及权限设置、SQL和数据库的基本概念、数据库、数据库表、SQL查询、SQL数据类型、SQL高级查询、SQL嵌套子查询、SQL多表连接查询、SQL数据处理、SQL流程控制、视图、存储过程、函数、游标、触发器、事务、安全性、SQL高级特性、数据库的维护、动态SQL和SQL高级查询。

第1篇SQL基础篇 2

第0章 数据库的运行环境及权限设置 2

0.1 SQL Server数据库的SQL代码运行环境 2

0.2 SQL Server数据库中的数据权限 3

0.2.1服务器角色 3

0.2.2数据库角色 3

0.2.3应用程序角色 4

0.3 Oracle数据库的SQL代码运行环境 4

0.4 Oracle数据库中的数据权限 4

0.4.1对象权限 4

0.4.2系统权限 5

0.4.3角色权限 5

0.5 MySQL数据库的SQL代码运行环境 6

0.6 MySQL数据库中的数据权限 7

0.6.1服务器检查是否允许用户连接 7

0.6.2检查登录用户的操作 7

第1章 数据库与SQL概述 9

1.1数据库概述 9

1.1.1数据库基本概念 9

1.1.2数据管理技术简史 11

1.2数据模型 12

1.2.1实体描述 13

1.2.2实体间联系及联系的种类 13

1.2.3概念模型的表示方法 13

1.2.4常用的3种数据模型 14

1.3关系数据库 15

1.3.1关系数据库的基本概念 15

1.3.2关系数据库的设计 16

1.3.3设计关系数据库的过程 16

1.3.4数据库规范化 16

1.3.5范式枚举 17

1.4 SQL概述 19

1.4.1 SQL简史 19

1.4.2 SQL的特点 20

1.4.3 SQL的约定和要求 20

1.5小结 21

第2章 创建、修改和删除数据库 22

2.1 SQL代码运行环境 22

2.2创建数据库的语法结构 23

2.3利用create database语句创建数据库 24

2.3.1创建默认数据库 24

2.3.2创建指定数据库文件位置的数据库 25

2.3.3创建多数据文件、多日志文件的数据库 26

2.3.4创建多个文件组的数据库 27

2.4修改数据库 28

2.4.1查看数据库的语法结构 28

2.4.2利用sp_ helpdb函数查看数据库 29

2.4.3重命名数据库的语法结构 30

2.4.4利用sp renamedb函数重命名数据库 30

2.4.5增加数据库的数据文件 31

2.4.6增加数据库的日志文件 32

2.4.7修改数据库文件 33

2.4.8删除数据库文件 34

2.5删除数据库 35

2.5.1利用SQL代码删除数据库 35

2.5.2利用IF和SQL语句动态删除数据库 36

2.6小结 37

第3章 创建和操作数据库表 38

3.1数据库表概述 38

3.2创建数据库表 38

3.2.1创建数据库表的语法结构 38

3.2.2创建普通数据库表 41

3.3创建临时数据库表 42

3.3.1创建局部临时表 42

3.3.2创建全局临时表 43

3.4创建含有列约束的数据库表 44

3.4.1创建含有不能为空字段的数据库表 44

3.4.2创建含有主键、唯一键字段的数据库表 45

3.4.3创建主键、外键关联的数据库表 46

3.4.4创建含有check约束字段的数据库表 47

3.5创建含有默认、计算字段的数据库表 48

3.5.1创建含有默认值字段的数据库表 48

3.5.2创建含有计算字段的数据库表 49

3.6创建含有自动编号、排序字段的数据库表 50

3.6.1创建含有自动编号字段的数据库表 50

3.6.2创建含有排序字段的数据库表 50

3.6.3动态判断数据库表是否存在 51

3.7修改数据库表 52

3.7.1查看数据库表的信息 52

3.7.2重命名数据库表 54

3.7.3增加数据库表的新字段 55

3.7.4修改数据库表的字段 55

3.7.5删除数据库表的字段 56

3.8删除数据库表 58

3.9 db business数据库的设计与实现 60

3.9.1创建db_business数据库表的E-R图 60

3.9.2创建db_usiness数据库 61

3.9.3创建仓库表并插入数据 61

3.9.4创建职工表并插入数据 63

3.9.5创建供应商表并插入数据 63

3.9.6创建订购单表并插入数据 64

3.10小结 65

第2篇SQL数据查询和处理篇 67

第4章SQL数据查询 67

4.1 SQL数据查询概述 67

4.2投影查询 68

4.2.1查询单列和多列 68

4.2.2查询所有列 69

4.2.3消除重复列 69

4.3列的计算 70

4.3.1显示职工的姓名、工资及奖金信息 70

4.3.2显示职工的姓名、工资、代扣税、奖金、应发工资信息 71

4.3.3显示职工的姓名、工资和职工评语信息 72

4.3.4连接列值 73

4.4 where条件查询 74

4.4.1等值查询 75

4.4.2不匹配查询 76

4.4.3 and运算符查询 78

4.4.4 or运算符查询 79

4.4.5 not运算符查询 80

4.4.6运算符的优先级 80

4.5 between…and区间查询 81

4.6 in运算符查询 82

4.7空值查询 83

4.8 like模糊查询 84

4.8.1%通配符在like模糊查询中的应用 85

4.8.2_通配符在like模糊查询中的应用 86

4.8.3[]通配符在like模糊查询中的应用 86

4.8.4[^]通配符在like模糊查询中的应用 87

4.8.5在多个字段中进行like模糊查询 88

4.9排序查询 88

4.9.1升序排序查询 88

4.9.2降序排序查询 89

4.9.3多列排序查询 90

4.9.4随机排序 91

4.9.5显示部分记录的排序 91

4.9.6计算字段排序 92

4.9.7按用户的需求对数据动态排序 93

4.10小结 93

第5章SQL数据类型 94

5.1 SQL数据类型概述 94

5.2数字类型 94

5.2.1精确数字 95

5.2.2近似数字 95

5.3字符串类型 97

5.4二进制字符串 97

5.4.1分割字符串类型数据 98

5.4.2转换字符串的大小写 98

5.5日期和时间类型 99

5.5.1转换日期和时间类型数据格式 100

5.5.2按时间查询数据 101

5.6 XML数据类型 102

5.7用户定义数据类型 102

5.8其他数据类型 103

5.9小结 103

第6章SQL高级查询 104

6.1聚合函数查询 104

6.1.1 count聚合函数的应用 104

6.1.2 sum聚合函数的应用 106

6.1.3 max和min聚合函数的应用 107

6.1.4 avg聚合函数的应用 108

6.1.5利用聚合函数产生虚拟字段 109

6.1.6聚合函数虚拟字段的排序 112

6.1.7聚合函数在where条件中的应用 114

6.2分组查询 115

6.2.1 group by简单分组查询 116

6.2.2带有虚拟字段的分组查询 117

6.2.3带有where条件的分组查询 117

6.2.4带有having条件的分组查询 118

6.2.5多列组合分组查询 119

6.2.6 all关键字在分组查询中的应用 121

6.2.7 cube关键字在分组查询中的应用 122

6.2.8 rollup关键字在分组查询中的应用 123

6.2.9分组查询的排序 125

6.2.10 compute by查询的应用 125

6.3小结 127

第7章SQL嵌套子查询 128

7.1 SQL嵌套子查询概述 128

7.2单行嵌套子查询 128

7.2.1等值单行嵌套子查询 128

7.2.2不匹配单行嵌套子查询 129

7.2.3区间单行嵌套子查询 130

7.2.4多表单行嵌套子查询 132

7.3多行嵌套子查询 133

7.3.1 in运算符在嵌套子查询中的运用 133

7.3.2 exists运算符在嵌套子查询中的运用 136

7.3.3 any运算符在嵌套子查询中的运用 137

7.3.4 all运算符在嵌套子查询中的运用 139

7.4产生虚拟字段的嵌套子查询 140

7.4.1单表产生虚拟字段的嵌套子查询 141

7.4.2多表产生虚拟字段的嵌套子查询 142

7.5产生虚拟表的嵌套子查询 143

7.6 group by分组在嵌套子查询中的应用 144

7.6.1利用group by产生虚拟表嵌套子查询 144

7.6.2 group by在where条件中的应用 145

7.7内外层嵌套子查询 146

7.8小结 148

第8章SQL多表连接查询 149

8.1 SQL多表连接查询概述 149

8.2笛卡儿积 149

8.3简单的多表连接查询 151

8.3.1带有比较运算符的多表连接查询 151

8.3.2带有模糊运算的多表连接查询 152

8.3.3带有排序的多表连接查询 153

8.4复杂的多表连接查询 154

8.4.1带有虚拟计算字段的多表连接查询 154

8.4.2带有复杂条件的多表连接查询 155

8.5带有保存功能的多表连接查询 156

8.6超连接查询 159

8.6.1内连接查询 159

8.6.2左连接查询 160

8.6.3右连接查询 162

8.6.4全连接查询 163

8.6.5超连接查询的综合应用 164

8.7集合的并、交、差运算查询 165

8.7.1集合的并运算 165

8.7.2集合的交运算 168

8.7.3集合的差运算 168

8.8小结 170

第9章SQL数据处理 171

9.1 SQL数据处理概述 171

9.2插入数据 171

9.3插入单行数据记录 172

9.3.1通过指定所有列插入记录 172

9.3.2通过指定部分列插入记录 175

9.3.3通过默认值插入记录 176

9.4插入多行数据记录 177

9.4.1利用values插入多行数据记录 177

9.4.2利用union all插入多行数据记录 178

9.4.3利用insert select插入多行数据记录 179

9.5更新数据 181

9.5.1更新一行中的一列数据信息 181

9.5.2更新多行中的一列数据信息 182

9.5.3利用嵌套查询更新数据信息 184

9.5.4更新多列中的数据信息 185

9.5.5更新所有行中的数据信息 187

9.6删除数据 188

9.6.1删除单行数据信息 188

9.6.2删除多行数据信息 189

9.6.3利用嵌套查询删除数据信息 190

9.6.4删除表中的所有记录 191

9.7小结 192

第10章SQL流程控制 193

10.1 SQL流程控制概述 193

10.2变量 193

10.2.1局部变量的声明 193

10.2.2局部变量的赋值 194

10.2.3局部变量的声明、赋值与输出 194

10.2.4利用局部变量动态查询数据表中的数据信息 196

10.2.5全部变量概述 196

10.2.6全局变量的应用 197

10.3注释符和常用运算符 198

10.4程序流程控制 199

10.5顺序结构与分支结构 199

10.6 if…else语句 199

10.6.1 if…else语句的应用 200

10.6.2 if…else语句在数据表查询中的应用 200

10.7 if…else if…else语句 202

10.7.1 if…else if…else语句的应用 202

10.7.2 if…else if…else语句在数据表中的应用 203

10.8 case语句 205

10.8.1 case语句的应用 206

10.8.2 case语句在数据表查询中的应用 207

10.9循环结构的语法结构 207

10.10 while语句的应用 208

10.11跳转语句 209

10.11.1 break语句 209

10.11.2 continue语句 210

10.11.3 goto语句 212

10.11.4 return语句 212

10.12小结 214

第3篇SQL常用对象技术篇 216

第11章 视图管理 216

11.1视图概述 216

11.1.1视图的优点 216

11.1.2视图的缺点 216

11.2创建视图 217

11.2.1单表视图 217

11.2.2多表视图 219

11.2.3带有聚合函数的视图 220

11.2.4基于视图的视图 221

11.2.5创建带有分组功能的视图 225

11.2.6创建与数据表字段不同的视图 227

11.2.7创建加密视图 228

11.3修改视图 228

11.4删除视图 229

11.4.1利用SQL代码删除视图 230

11.4.2带有判断条件的删除视图 230

11.5视图数据的查询 231

11.5.1查询视图中的数据与查询数据表中的数据对比 231

11.5.2排序视图中的数据信息 232

11.5.3分组查询视图中的数据信息 233

11.6通过视图添加、更新和删除数据 234

11.6.1通过视图添加数据 235

11.6.2通过视图更新数据 236

11.6.3通过视图删除数据 236

11.7小结 237

第12章 存储过程 238

12.1存储过程概述 238

12.1.1系统存储过程 238

12.1.2自定义存储过程 238

12.1.3存储过程的优点 239

12.2创建并执行存储过程 239

12.2.1不带参数的存储过程 240

12.2.2数据查询功能的不带参数的存储过程 241

12.2.3带有输入参数的存储过程 243

12.2.4带有输入参数的数据查询功能的存储过程 245

12.2.5带有输入和输出参数的存储过程 246

12.2.6带有登录判断功能的存储过程 247

12.2.7带有判断条件的插入功能的存储过程 248

12.2.8带有判断条件的删除功能的存储过程 250

12.2.9带有判断条件的更新功能的存储过程 251

12.2.10创建加密存储过程 252

12.3修改存储过程 253

12.3.1查看存储过程的属性和功能代码信息 253

12.3.2修改存储过程的功能代码 255

12.3.3重命名存储过程 256

12.4删除存储过程 256

12.4.1删除存储过程 257

12.4.2带有判断条件的删除存储过程 257

12.5存储过程的自动执行和监控 258

12.5.1存储过程的自动执行 259

12.5.2监控存储过程 259

12.6小结 260

第13章 函数 261

13.1 SQL函数概述 261

13.2聚合函数 261

13.2.1统计标准偏差stdev()函数的语法格式 261

13.2.2统计标准偏差函数stdev()的应用 262

13.2.3总体标准偏差stdevp() 262

13.2.4统计方差var() 263

13.2.5总体变异方差varp() 263

13.2.6其他统计函数的应用 263

13.3算术函数 265

13.3.1三角函数与反三角函数的应用 266

13.3.2符号函数的应用 267

13.3.3幂函数的应用 268

13.3.4取近似值函数的应用 269

13.3.5随机函数的应用 270

13.3.6利用随机函数与取近似值函数实现彩票30选7 271

13.4字符串函数 272

13.4.1字符转换函数的语法结构 273

13.4.2字符转换函数的应用 273

13.4.3循环输出26个小写英文字母及其ASCII码 274

13.4.4字符长度函数及去空格函数 275

13.4.5取子串函数 276

13.4.6字符串操作函数的分类 278

13.4.7字符串操作函数的应用 279

13.4.8利用字符串操作函数绘制菱形美元图案 280

13.5数据类型转换函数 281

13.6日期时间函数 281

13.6.1显示当前日期 282

13.6.2显示时间 283

13.6.3显示星期 284

13.6.4日期时间函数在查询语句中的应用 284

13.7自定义函数 285

13.7.1创建并调用函数的语法结构 285

13.7.2标量值函数的创建与调用 285

13.7.3表值函数的创建与调用 288

13.7.4查看函数的属性和功能代码信息 289

13.7.5修改函数的功能代码 291

13.7.6重命名函数 293

13.7.7删除自定义函数 294

13.8小结 295

第14章 游标 296

14.1游标概述 296

14.1.1游标的优点 296

14.1.2实现游标的方法 296

14.2游标的类型 297

14.3游标的基本构成 298

14.3.1声明游标 298

14.3.2打开游标 300

14.3.3读取游标中的数据 300

14.3.4游标的关闭和释放 301

14.4游标的基本操作 301

14.4.1游标的声明、打开、读取和关闭 301

14.4.2利用变量输出游标中的字段值 302

14.4.3利用游标修改数据表中的数据记录 303

14.4.4利用游标删除数据表中的数据记录 303

14.4.5利用游标判断记录是否存在 304

14.4.6利用游标逐条显示数据表中的数据记录 304

14.4.7在存储过程中使用游标 305

14.5游标的管理 306

14.5.1 sp cursor_ list()系统存储过程的语法格式 307

14.5.2使用sp_ cursor_list()系统存储过程管理游标 308

14.5.3 sp_ describe_cursor()系统存储过程 309

14.5.4使用sp describe_cursor()系统存储过程管理游标 310

14.5.5 sp_ describe_cursor_columns()系统存储过程的语法格式 310

14.5.6使用sp describe_cursor_columns()系统存储过程管理游标 312

14.5.7 sp_ describe_ cursor_tables()系统存储过程的语法格式 313

14.5.8使用sp describe_ cursor_tables()系统存储过程管理游标 314

14.6小结 315

第15章 触发器 316

15.1触发器概述 316

15.1.1触发器的作用 316

15.1.2触发器的分类 317

15.2创建与执行事后触发器 318

15.3创建与执行替代触发器 320

15.4查看触发器的属性和功能代码信息 323

15.5修改触发器的功能代码 325

15.6重命名触发器 326

15.7删除触发器 327

15.7.1删除无判断条件的触发器 327

15.7.2删除带有判断条件的触发器 328

15.8禁用与启用触发器 328

15.9 DDL触发器 329

15.10创建与执行DDL触发器 330

15.10.1保护数据表不被修改和删除的DDL触发器 330

15.10.2保护数据库不能被删除的DDL触发器 331

15.10.3 记录数据库修改状态的DDL触发器 332

15.11修改和删除DDL触发器 334

15.12触发器的使用 335

15.12.1删除功能触发器 336

15.12.2插入功能触发器 337

15.12.3更新功能触发器 338

15.12.4嵌套触发器 339

15.13小结 340

第4篇SQL高级性能篇 342

第16章SQL事务处理 342

16.1 SQL事务概述 342

16.1.1事务的作用 342

16.1.2事务的属性 342

16.1.3数据一致性问题 343

16.2锁机制 344

16.2.1锁的粒度 344

16.2.2锁的类型 344

16.3事务的隔离级别 345

16.4事务的控制 345

16.4.1启动事务 346

16.4.2结束事务 346

16.4.3利用API函数控制事务 346

16.5事务的错误处理 346

16.5.1事务的设置及提交 346

16.5.2回滚事务 347

16.6事务保存点机制 349

16.6.1创建事务保存点的语法格式 349

16.6.2事务保存点的应用 349

16.7死锁 352

16.7.1避免与降低死锁的方法 352

16.7.2事务中锁的应用 352

16.7.3 SQL中的死锁 353

16.8调试事务 354

16.8.1利用dbcc opentran查看事务信息 354

16.8.2利用sp who查看活动进程信息 356

16.8.3利用dbcc inputbuffer获取进程中的SQL语句 358

16.8.4利用kill终止进程 359

16.9孤立事务 360

16.9.1孤立事务的产生 360

16.9.2利用if条件语句解决孤立事务 361

16.10事务设计原则和注意事项 361

16.11小结 362

第17章SQL安全性控制 363

17.1 SQL安全性概述 363

17.1.1服务器认证 363

17.1.2数据库认证 363

17.1.3设置服务器身份验证模式 364

17.2角色 365

17.2.1服务器角色 365

17.2.2数据库角色 366

17.2.3应用程序角色 367

17.3登录账号的管理 367

17.3.1登录账号的管理的语法格式 367

17.3.2登录账号管理的应用 367

17.4数据库用户的管理 370

17.4.1数据库用户管理的语法格式 370

17.4.2数据库用户管理的应用 370

17.5服务器角色 372

17.6数据库角色 373

17.7应用程序角色 375

17.8权限的管理 377

17.9小结 379

第18章SQL高级特性 380

18.1 SQL规则 380

18.1.1创建规则 380

18.1.2创建规则绑定 382

18.1.3解除规则绑定 384

18.1.4删除规则 385

18.2索引概述 386

18.2.1索引的优点 386

18.2.2索引的缺点 387

18.2.3索引的分类 387

18.3创建索引 387

18.3.1创建普通索引 388

18.3.2创建唯一索引和簇索引 389

18.4修改索引 389

18.4.1重命名和查看索引 390

18.4.2维护索引 390

18.4.3重构索引 391

18.5删除索引 392

18.6约束完整性 393

18.6.1约束完整性的分类 393

18.6.2约束完整性的实现方法 394

18.7 SQL查询优化 394

18.7.1避免使用or、 not和distinct运算符 394

18.7.2简化连接条件 396

18.8小结 397

第19章 数据库的维护 398

19.1压缩数据库 398

19.1.1压缩数据库的语法格式 398

19.1.2压缩数据库的应用 399

19.1.3压缩数据库的指定数据文件或日志文件 400

19.2备份数据库 401

19.2.1备份和定时备份数据库 402

19.2.2备份数据库的日志文件 402

19.2.3备份数据库的文件和文件组 403

19.2.4检查备份集 404

19.3恢复数据库 404

19.4数据库的分离和附加 405

19.4.1利用sp_ detach_db分离数据库 406

19.4.2利用sp_ attach db附加数据库 406

19.5小结 407

第20章 动态SQL 408

20.1动态SQL概述 408

20.1.1嵌入式SQL 408

20.1.2动态SQL与静态SQL的区别 409

20.2 ODBC和OLE DB 409

20.2.1开放式数据库连接ODBC 409

20.2.2数据库对象链接和嵌入OLE DB 409

20.3 ADO.NET接口 410

20.4 C#调用SQL语句创建各种数据对象 411

20.4.1 C#调用SQL语句创建数据库 411

20.4.2 C#调用SQL语句创建数据库表 414

20.5 C#调用SQL语句处理数据表中的数据 417

20.5.1 C#调用SQL语句插入数据记录 417

20.5.2 C#调用SQL语句更新数据记录 420

20.5.3 C#调用SQL语句删除数据记录 425

20.6 C#调用SQL语句查询数据库中的数据信息 427

20.6.1 C#调用SQL语句显示不同数据表中的数据信息 427

20.6.2 C#调用SQL语句动态查询多表信息 429

20.6.3 C#调用SQL语句统计职工工资信息 430

20.6.4 C#调用SQL语句排序视图中的数据信息 431

20.7 C#中存储过程和触发器的应用 435

20.7.1 C#调用存储过程显示视图中的数据信息 435

20.7.2利用触发器实现同时删除仓库备份表和职工备份表中的数据信息 437

20.8 ASP.NET与SQL 440

20.8.1 ASP.NET调用SQL语句显示数据库连接信息 440

20.8.2 ASP.NET调用SQL自定义函数实现工资评语 442

20.9小结 445

第21章SQL的未来 446

21.1 SQL展望 446

21.2 OLAP和商业智能 446

21.2.1报表的创建及美化 447

21.2.2动态上传和下载文件 452

21.2.3发送电子邮件 456

21.2.4备份数据库 457

21.3 SQL的LINQ 459

21.4面向对象的数据库 462

21.5小结 462