第1章 数据库的使用 1
1.1什么是SQL 2
1.2程序语言或数据库 3
1.3 SQL Server概述 5
1.4 Oracle概述 7
第2章SELECT查询语句 9
2.1基本SELECT子句 10
2.2字段选择(SELECT) 12
2.3指定数据源(FROM) 14
2.4指定查询限定条件(WHERE) 15
2.4.1比较运算符 15
2.4.2以逻辑运算符组合多个条件 17
2.4.3列举项目(IN / NOT IN) 19
2.4.4 NULL选取 20
2.4.5范围限制(OBETWEEN...AND) 21
2.4.6字符模糊匹配 22
2.5查询结果的排序(ORDER BY) 23
2.6数据分组(GROUP BY) 26
第3章 基本SQL用法 29
3.1 SQL编写风格 30
3.2数据表连接的使用 33
3.2.1内连接 34
3.2.2外连接 37
3.2.3交叉连接 39
3.3子查询 41
3.3.1嵌套子查询 42
3.3.2相关子查询 43
3.4集合的使用 45
3.4.1并集(UNION) 47
3.4.2交集(INTERSECT) 49
3.4.3差集(MINUS) 49
3.5 CASE表达式 51
3.5.1简单型CASE子句 51
3.5.2搜索式CASE子句 52
3.6 HAVING子句的使用 55
3.7 DISTINCT语法的使用 57
3.8特殊SQL排序法 59
3.8.1 CASE表达式 60
3.8.2字符串位置函数(INSTR、CHARINDEX) 67
3.8.3 COUNT函数(聚合函数) 68
3.9如何取得两数据集中非重复的数据 69
3.9.1 FULL OUTER JOIN 71
3.9.2区域去除 72
3.10如何避免除零错误(Avoid Diving by Zero) 76
第4章 数据变更处理 79
4.1新增—INSERT 80
4.1.1数据输入(INSERT...VALUES) 80
4.1.2数据来自其他表(INSERT...SELECT) 82
4.2序列值的使用 83
4.3取得当前自动编号值 89
4.3.1 SCOPE IDENTITY() 89
4.3.2 OUTPUT 91
4.3.3 RETURNING 92
4.4更新数据—UPDATE 93
4.5删除数据—DELETE 96
4.5.1删除特定数据 96
4.5.2使用连接删除数据(DELETE With JOIN) 97
4.5.3删除重复的数据 98
4.5.4删除大量数据 100
4.5.5清空数据表(TRUNCATE TABLE) 101
第5章 数据类型 103
5.1基本数据类型 104
5.1.1字符类型 104
5.1.2数值类型 106
5.1.3日期类型 111
5.2数据类型的选择 113
5.3类型转换 115
5.4 NULL概述 116
第6章 字符串函数的使用 121
6.1字符串函数介绍 123
6.1.1字符串连接 123
6.1.2截取子串 124
6.1.3字符位置 127
6.1.4获取字符串长度(字符个数) 128
6.1.5删除空格(特定字符) 129
6.1.6字符串替换 130
6.1.7字符串填补 134
6.1.8变换字符/字符ASCII码 135
6.1.9变换大小写 136
6.2字符串模糊比较 136
6.3是否为数值字符串 141
6.4中文字判断 143
6.5筛选特定字符串前缀—以半导体实验生产批号为例 146
6.6固定长度字符串—以特定字符补足长度 148
6.7特定字符出现次数—以面板检测结果为例 149
第7章 日期函数的使用 155
7.1格式转换 157
7.2取得部分日期信息 161
7.3日期运算的概念 164
7.4日期加减运算 168
7.5取得两个日期/时间的差 174
7.6取得特定日期 176
7.7找出下个周五 181
第8章 数值函数的使用 185
8.1数值函数 186
8.1.1余数(MOD)和商数 187
8.1.2常用的数值运算函数 187
8.1.3次方、平方根、自然对数、对数、EXP(e) 191
8.1.4圆周率(PI)、三角函数(Sin、 Cos、 Tan) 192
8.2转换函数 193
8.3 SQL Server数学运算时的注意事项 198
8.4判断是否为整数—余数的应用 203
8.5判断两个日期前后顺序—SIGN函数的应用 204
第9章SQL用法进阶 207
9.1数据行转置—Row To Column 210
9.1.1通过SQL命令实现转置 210
9.1.2使用PIVOT命令实现转置 214
9.2数据列转置—Column To Row 220
9.3员工专长明细 227
9.4累计汇总 230
9.5汇总数据 238
9.6数据记录的排序——传回各种书籍订单订购数量排名 249
9.7每个部门中薪水最高的员工 253
9.8机群分组合并状态 257
9.9个税计算 266
9.10商品组合 270
9.11求职网 279
9.12 Defect Overlap—缺陷重叠分析 284
9.13职务代理关系表/系统异常处理人员顺序表 289
9.14组织图—树型结构展开 294
第10章 日期区间报表 307
10.1日报 309
10.1.1日期类型 309
10.1.2字符类型 312
10.2月报 314
10.2.1日期类型 314
10.2.2字符类型 317
10.3周报 318
10.3.1周的特殊定义 319
10.3.2运算差异分析 321
10.4小时区间报表 323
10.4.1 3小时区间报表 324
10.4.2 5小时区间报表 328
10.4.3利用序列产生报表 332
10.5科学园区四二轮报表 334
10.5.1四二轮报表—日报 337
10.5.2四二轮报表—月报 340
10.5.3四二轮报表—周报 345
10.5.4综合日期报表 349
10.6完整日期区间报表 361
10.6.1完整日期报表—未转置 362
10.6.2完整日期报表—以产品转置 365
10.6.3完整日期报表—以日期转置 368
第11章 存储过程 371
11.1存储过程 373
11.1.1程序 373
11.1.2函数 377
11.1.3错误来源 380
11.1.4加密 381
11.2触发器 383
11.3游标的使用 394
11.4程序包 403
11.5用户自定义聚合函数 407
第12章 异质数据源 421
12.1分布式查询—Database Link 422
12.2 SQL Server串联其他数据源 438
12.2.1查询 439
12.2.2 INSERT/UPDATE 441
12.2.3对象及查询命令的差异 441
12.2.4结合异质数据 443
12.3 SQLLoader(SQLLDR) 446
第13章 特殊应用 453
13.1 Oracle CONNECT BY命令特殊应用 454
13.1.1序列产生 455
13.1.2 Column To Row(UNPIVOT) 456
13.1.3分组字符串合并 458
13.1.4解析CSV字符串 461
13.2通用表表达式的使用—CTE 462
13.2.1非递归的运用—查询暂存 463
13.2.2递归的运用 464
13.3序列数据表的应用 468
13.4随机数 469
13.5 IN-LIST的使用 475
13.6制程能力指标 478
13.7系统数据表的使用 482
13.8在SQL Server中进行字符串分组串联—FOR XML应用 486