第1章SQL基础入门 1
1.1熟悉Excel的SQL语言编写环境 1
疑难1如何获取外部源数据 1
通过OLE DB接口获取外部数据源 3
使用Microsoft Query导入外部源数据 3
疑难2如何刷新导入的外部数据 7
刷新导入的外部数据源 8
疑难3在数据源移动后如何修改数据源的连接路径 9
根据弹出提示自动修改移动的文件路径 10
通过修改连接字符串来修改移动的文件路径 11
疑难4如何将混合类型的字段强制设置为文本字段 11
强制设置导入的外部数据源的字段为文本形式 13
SQL中的连接字符串详解 13
疑难5如何对外部数据进行安全设置 15
安全设置外部数据 15
1.2 SQL基础概念 17
疑难6如何从表中获取多列和多行 17
使用SQL语句获取行和列数据 17
什么是关系数据库中的表 18
一行在表中表示什么信息 18
一列在表中表示什么信息 19
疑难7如何通过唯一标识把两个表的数据连接在一起 19
如何理解主键标识 20
1.3 SQL语句入门 21
疑难8如何查询工作表中单列数据 21
使用SQL获取单列数据 22
什么是SELECT子句 22
疑难9如何查询工作表中多列数据 23
使用SQL语句获取多列数据 24
SQL列字段命名的限制 24
疑难10如何查询工作表中的所有列数据 25
如何理解SQL语句中的通配符 26
什么叫别名 26
疑难11如何使用列别名 26
如何使用列别名 27
疑难12如何使用DISTINCT查询工作表中不重复的记录 28
SQL语句中关键词DISTINCT的使用 29
疑难13如何查询百度豪华车排行榜中某日搜索量大于800的记录 30
SQL语句中WHERE子句的使用 31
疑难14如何在SQL中使用定义名称 31
定义名称在SQL语句中的应用 32
什么叫名称 33
疑难15 如何对学生的成绩进行降序排列 33
ORDER BY子句的使用 34
疑难16如何不借助源数据表使用SQL语句 34
什么情况下的SQL语句可以不使用FROM子句 35
疑难17如何把一条新记录添加到数据源中 35
INSERT INTO语句的使用 37
疑难18如何在Excel中更新数据 38
UPDATE语句的使用 39
疑难19如何提取带有合并单元格的数据 39
如何对包含合并单元格字段的工作表使用SQL语句 40
疑难20如何解决查询结果中有空白记录的问题 41
如何去除查询结果中出现的空白记录 41
1.4练习与思考 42
第2章SQL运算符使用 43
2.1比较运算符 43
疑难21如何查询报考某专业的考生 43
为SQL设置条件查询子句 44
不以第一行为起点的数据表示 44
等号运算符 45
疑难22如何查询字段值中包含双引号的数据 45
包含引号的数据表示 46
疑难23如何查询指定日期的出口数据 47
日期型数据表示 48
疑难24如何查询啤酒销量超过50kL的信息 49
带有括号的字段名表示方式 50
大于、小于等运算 50
疑难25如何查询某班外同学的考试成绩 51
不等号比较运算 52
2.2逻辑运算符 52
疑难26如何查询缺考同学的数据 52
NULL值的判断 53
疑难27如何查询同时参加两项比赛的人员名单 54
IN运算的妙用 55
NOT IN运算出现NULL值时的注意事项 55
疑难28如何查询2010年进入公司的员工名单 56
利用BETWEEN求某范围内的数据 57
疑难29如何查询姓“刘”的所有人员 57
运用LIKE进行模糊匹配 58
模糊匹配中不确定长度的字符表示 58
疑难30如何查询订单号第三、四位为指定文本的出库记录 59
模糊匹配中长度为1的字符表示 60
疑难31如何查询成绩为C以上的同学 60
模糊匹配中字符区间的表示 61
疑难32如何查询商品代号中带有数字的商品数据 62
模糊匹配中数字区间的表示 62
疑难33如何查询姓名两端没有方括号的所有员工 63
模糊匹配中特殊字符的表示 64
2.3连接运算符 64
疑难34如何对多个字段进行模糊查询 64
连接符(&)的妙用 65
疑难35如何查询同时满足申请租赁型经济适用房条件的人员 66
同时满足多个条件的查询 67
疑难36如何查询付款超过最后付款期限及尚未付款的客户 68
满足多个条件之一的查询 69
2.4算术运算符 69
疑难37如何查询语数外总分大于240分的同学名单和总成绩 69
字段的四则运算 70
日期与数字的关系和转换 71
疑难38如何计算员工社会保险缴纳金额 72
按照百分比例计算字段 73
Excel中数字的精度 73
疑难39如何根据点坐标计算距原点的距离 74
幂运算的妙用 74
2.5练习与思考 75
第3章SQL常见函数使用 76
3.1字符串函数 76
疑难40如何根据二代身份证号返回出生年份 76
四舍六入五单双的规则 79
MIDB函数的用法 80
字符与字节的关系 80
疑难41如何返回邮政机构所在行政区域 80
RIGHT函数与RIGHTB函数的区别 83
疑难42如何分离联系电话的区号与电话号码 83
LEFT函数与LEFTB函数的区别 85
疑难43如何替换字符串中的地名 85
REPLACE函数的使用 86
疑难44如何去除字符串首尾两侧的空格 89
TRIM与LTRIM、RTRIM 91
空格与不可见字符 91
疑难45如何返回字符串中某字符所在位置 92
INSTR函数的使用 94
疑难46如何比较两列数据是否相同 95
CBOOL函数与STRCOMP函数用法比较 98
疑难47如何查询有换行符字段的记录 100
处理换行符的方法 101
疑难48如何去除路径仅返回文件名 101
INSTRREV函数的使用 102
疑难49如何将英文歌曲名称转换为小写字母 104
STRCONV函数的使用 105
LCASE函数与UCASE函数的使用 109
3.2算术函数 111
疑难50如何将价格进位到角得到产品零售价 111
ROUND函数的使用 112
CINT函数的使用 115
疑难51如何求出阳台的圆弧长度 115
弧度计算说明 116
疑难52如何返回直角三角形斜边长度 117
弧度与角度的转换 118
SQL中可用的其他三角函数 118
疑难53如何将编码转换为十六进制数 118
HEX函数转换为十六进制的使用 119
二进制、八进制、十六进制介绍 120
进制转换方法简介 120
疑难54如何根据货物重量返回满载车数量 121
INT函数的使用 122
FIX函数的使用 122
3.3转换函数 123
疑难55如何统一项目起止的日期格式 123
CDATE函数的使用 124
FORMATDATETIME函数的使用 126
FORMAT函数将文本型日期转换为日期值 127
疑难56如何格式化出货量增长率 128
FORMATPERCENT函数的使用 129
FORMATNUMBER函数的使用 130
用ROUND函数配合“&”返回百分比 131
用FORMAT函数返回百分比 132
疑难57如何整理投票结果并返回读书数量 132
VAL函数返回数字 133
疑难58如何将数字转换为字符 133
CSTR函数的使用 134
CSTR函数与STR函数的区别 135
CVAR函数的使用 136
疑难59如何将字符转换成数字 136
CLNG函数的使用 137
CDBL函数、CSNG函数及CVAR函数用法比较 138
3.4其他函数 138
疑难60如何根据学生成绩返回等第成绩 138
SWITCH函数的使用 139
疑难61如何得到调整后的工资额 141
ISNULL函数的使用 142
ISNUMERIC函数 143
疑难62如何得到反转后的回文诗 143
STRREVERS函数的使用 144
疑难63如何按规定格式返回数字与文本混杂的数据 144
FORMAT函数返回相应格式使用 145
IIF函数的使用 153
纯小数前是否显示前导0 154
疑难64如何查看支出是否超出预算 154
CHOOSE函数的使用 157
疑难65如何根据二代身份证号码判断性别 158
用MOD函数配合IIF函数取性别 159
用INT+MID+ IIF函数取性别 162
3.5练习与思考 162
第4章SQL日期和时间函数使用 163
4.1获取日期 163
疑难66如何查询今天是星期几 163
DATE函数的使用 164
NOW函数的使用 164
WEEKDAY函数的使用 165
WEEKDAYNAME函数的使用 168
DATEPART函数的使用 171
关于星期的典型语句 175
疑难67如何用SQL语句得到当前月的剩余天数 176
DATEADD+DAY函数的使用 176
疑难68如何用SQL判断今年是平年还是闰年 178
DATESERIAL函数的使用 179
判断平年或闰年的语句 180
疑难69如何用SQL获取今年母亲节的日期 182
WEEKDAY+DATESERIAL+FORMAT函数的使用 182
疑难70如何用SQL计算员工的工龄工资 184
DATEDIFF函数的使用 185
疑难71如何用SQL计算食品到期日期 187
DATEADD函数返回到期日期 188
4.2格式化日期 188
疑难72如何将日期和时间转换为系统标准格式 188
利用FORMAT函数转换日期 190
疑难73如何获取合同签订的英文日期 190
利用FORMAT函数转换为英文日期 191
利用函数复合运用转换为英文日期 191
疑难74如何将日期转换为报表所需格式 192
获取当月总天数的技巧 193
4.3时间段查询 193
疑难75如何返回第一季度中的销售记录 193
DATEPART函数忽略年份获取日期所在的季度 194
疑难76如何提取合同即将到期的员工及最迟续订期限 194
利用WEEKDAY函数获取工作日信息 196
疑难77如何获取所有职员的星座 196
不同年份查询相同月份、日期所在区间 197
笛卡儿积的概念 197
疑难78如何找出销售额最高的月份 198
利用MONTHNAME函数获取月份的完整表示 199
疑难79如何查询库存中某日的出入库情况汇总 199
日期和时间的关系 200
4.4练习与思考 200
第5章SQL排序查询 201
5.1单列数据排序 201
疑难80如何提取某区域的销售记录并按销售额降序排列 201
利用ORDER BY子句对记录进行排序 202
SQL查询机制步骤详解 202
疑难81如何找出考试成绩总分前5名的同学 203
利用TOP谓词查询前几条记录 204
TOP PERCENT保留记录规律 204
疑难82如何查询百米赛跑项目第5~8名的运动员 205
伪时间排序技巧 206
查找排名中间的记录的技巧 206
TOP谓词出现重复记录的查询规律 207
疑难83如何将考生姓名进行随机排序 207
随机排序技巧 208
伪随机数概念 208
5.2多列数据排序 209
疑难84如何将员工名单按照多级部门进行排序 209
多列排序技巧及规律 210
疑难85如何从总分前10名中找出语文成绩最差的3名同学 210
在排序结果中查找指定记录的技巧 211
疑难86如何得到足球比赛小组赛的出线名单 212
指定不同排序方法的多列排序 213
利用数学计算方法进行多列排序 213
5.3练习与思考 214
第6章 聚合函数与分组统计 215
6.1聚合函数的应用 215
疑难87如何求某公司的总销售量及总销售额 215
SUM函数在SQL语句中的使用 216
疑难88如何求某班学生的各科平均成绩 216
AV G函数在SQL中的使用 217
疑难89如何统计订单号不重复的数目 217
DISTINCT+COUNT统计不重复的记录数 218
疑难90如何获取学生年龄的最大值及最小值 219
MAX函数及MIN函数在SQL语句中的使用 220
疑难91如何剔除最大值及最小值后求均值 220
SUM+MAX+MIN+COUNT函数综合使用 221
疑难92如何获得入网套餐终端补贴起始月份及终止月份 221
FIRST函数及LAST函数的使用 222
疑难93如何估计货运运费的标准偏差及标准差 222
STDEV函数及STDEVP函数的使用 223
疑难94如何求某组学生口语测验成绩的方差 224
VAR函数及VARP函数的使用 224
疑难95如何计算某列中空值的数目 225
NULL在SQL语句中的使用 226
疑难96如何计算不同日期的数量 226
COUNT+FORMAT函数的使用 227
6.2域聚合函数的应用 227
疑难97如何按商品编码统计累计销售额 227
DSUM函数在SQL语句中的使用 229
疑难98如何求每位学生得分最高两科的所有记录 229
DCOUNT函数在SQL语句中的使用 230
疑难99如何求指定条件的货款额均值 231
DAVG函数在SQL语句中的使用 232
疑难100如何查询指定条件的人员的姓名 233
DLOOKUP函数在SQL语句中的使用 234
疑难101如何求指定条件的营业厅的最高分及最低分 234
DMAX函数及DMIN在SQL语句中的使用 235
疑难102如何求指定条件的第一个值及最后一个值 236
DFIRST函数及DLAST在SQL语句中的使用 237
疑难103如何求指定条件的方差 238
DVAR函数及DVARP在SQL语句中的使用 238
疑难104如何求指定条件的标准偏差标准差 239
DSTDEV函数及DSTDEVP在SQL语句中的使用 240
6.3分组统计 240
疑难105如何汇总同一物品的数量及价格 241
GROUP BY子句的使用 241
疑难106如何分组汇总多列数据 242
使用多个分组列的GROUPBY子句 243
疑难107如何查询销售数量大于15台的手机品牌及销售金额 243
HAVING子句的使用 244
疑难108如何查询平均成绩大于60分同学的学号、姓名和平均成绩 245
使用HAVING子句提取平均成绩大于60分的记录 246
疑难109如何统计姓“林”的员工人数 246
HAVING子句结合 LEFT函数统计某姓氏的人数 247
疑难110如何求某车间的机器在每分钟内的平均速度 248
通过GROUP BY子句结合FORMAT函数对时间段进行分组 249
疑难111如何查询材料编号重复出现2次或2次以上的记录 249
GROUP BY子句+HAVING子句+WHERE子句提取重复出现2次及 2次以上的记录 250
疑难112如何查询只出现1次编码的记录 251
GROUPBY子句+HAVING子句提取只出现1次的记录 251
WHERE子句=1提取只出现1次的记录 252
疑难113如何查询“不重复且价格最低”的记录 252
GROUPBY子句+MIN函数获取最低单价的记录 253
疑难114如何计算每个得分范围内的数量 253
GROUP BY+IIF函数的使用 254
GROUP BY+CHOOSE函数的使用 255
GROUP BY+PARTITION函数的使用 256
疑难115 如何将多行的享受月份转化为一行起止的享受月份 256
GROUP BY+FIRST函数+LAST函数的使用 257
疑难116如何实现表格行列转置 257
TRANSFORM语句的使用 258
疑难117如何得到每个人的成绩表 259
TRANSFORM的交叉表及GROUP BY子句汇总求和 260
疑难118如何生成列合计的交叉表 260
TRANSFORM+GROUP BY子句+UNION ALL求带有小计及合计行的结果表 261
6.4练习与思考 264
第7章 连接查询 265
7.1内连接查询 265
疑难119如何查询水果所对应的颜色 265
一对一连接两个工作表 266
疑难120如何查询每条成绩表记录所对应的学生信息 266
公共字段连接两个工作表 267
疑难121如何理解连接中的多对多关系 268
笛卡儿积导致数据虚增的原因 269
疑难122如何进行两个或者两个以上表的连接 270
多个工作表连接 271
AND在多个工作表连接中的使用 271
疑难123如何根据测评分数给学生评定等级 271
使用BETWEEN AND连接工作表 272
疑难124如何得到各城市满意度大小比较关系图 273
使用大于条件连接工作表 274
疑难125如何进行字母之间大小的对比 274
通过字母大小比较连接工作表 275
疑难126如何处理比赛对阵表 275
使用行函数连接工作表 276
疑难127如何使用INNER JOIN连接三个表 276
使用INNER JOIN连接工作表 277
7.2外连接查询 277
疑难128如何使用左外连接 278
使用LEFT OUTER JOIN进行左连接 279
疑难129如何使用右外连接 279
使用RIGHT OUTER JOIN进行右连接 280
疑难130如何使用全外连接 281
使用全外连接 281
疑难131如何对超过两个或两个以上的表进行左外连接 282
多个工作表进行左连接 283
7.3连接查询的高级应用 284
疑难132如何把两个工作表的资料合并在一起 284
UNION ALL的使用 285
UNION ALL与UNION的区别 285
疑难133如何把列数不等的两个工作表合并起来 286
列数不等的工作表进行连接 287
疑难134如何查询指定条件的职工资料 288
剔除指定记录进行内连接 289
疑难135如何查询各组长管理的组员记录 289
内连接及WHERE子句的使用 290
疑难136如何获取每一户对应的户主姓名 291
左外连接的高级使用 293
疑难137如何查询所有学生的学号、姓名、选课数及总成绩 293
ISNULL+IIF+左外连接的使用 294
疑难138如何查询学过“002”和“003”课程的学生的学号、姓名 295
内连接+WHERE子句+GROUPBY子句+HAVING子句的综合应用 296
疑难139如何生成排列组合 297
什么叫交叉连接 298
疑难140如何生成0~999的数字 298
交叉连接生成一组数 299
7.4练习与思考 299
第8章 子查询 300
8.1简单子查询 300
疑难141如何查询销售数量大于平均销售量的数据 300
大于平均值的子查询 301
疑难142如何查询“王双”所在部门的所有员工的销售情况 302
带有IN的子查询 303
疑难143如何输出每个学生在必修表中未修的课程 304
带有NOT IN的子查询 305
疑难144如何查询选修了课程名为“大学数学”的学生学号及姓名 306
带有IN的子查询 307
疑难145如何查询出每家户口所在地不同的记录 309
使用EXISTS谓词进行子查询 310
疑难146如何查询数学成绩大于80分的学生的相关记录 310
使用NOT EXISTS谓词进行子查询 311
疑难147如何查询销售数量大于北京分公司所有产品销售数量的品种、 分公司、数量、金额 312
使用ALL进行子查询 313
疑难148如何查询高于某些店销售数量的信息 314
使用ANY进行子查询 315
疑难149如何查询两门以上不及格课程的学生姓名、学号及其平均成绩 316
多条件获取符合条件的学号进行子查询 317
疑难150如何查询大于平均年龄的员工姓名、年龄及学历 318
使用HAVING子句进行子查询 319
8.2复杂的子查询 319
疑难151如何返回所在系平均年龄在系平均年龄以上的教师相关信息 319
使用比较表达式进行子查询 320
疑难152如何求各城市各月销售数量之间的排名 320
使用1+COUNT(*)产生排名的子查询 321
疑难153如何对考生的成绩进行排名 322
使用多个1+COUNT(*)进行子查询 323
疑难154如何汇总各个国家获得两块以上的金牌记录 323
使用SUM(1)进行子查询 324
疑难155如何查询进价相同及进价不同的商品 325
结合FIRST+LAST+IN的子查询 327
疑难156如何实现在分类汇总行中对某字段进行计数统计 327
带有“总计”的综合子查询 328
疑难157如何统计各大区域各省份的历年项目数小计并在所在区域内进行排名 329
多层嵌套综合子查询 331
疑难158如何根据各城市销售数量给其增加自动编号列 331
嵌套子查询及1+COUNT(*)形成排名 333
8.3练习与思考 333
第9章SQL与数据透视表 334
9.1数据透视表基础 334
疑难159如何汇总各供应商的供货总数及总金额 334
“数据透视表字段列表”窗格说明 335
疑难160如何统计各班某科成绩的总体情况 336
数据透视表汇总方式介绍 338
疑难161如何在数据透视表中使用鼠标拖放 338
启用经典数据透视表布局 339
疑难162如何设置合并单元格标志 339
设置数据透视表合并单元格标志 340
疑难163如何添加计算字段来计算销售金额提成 340
数据透视表计算字段介绍 341
疑难164如何添加计算项获取同比值 342
数据透视表计算项介绍 343
疑难165如何按年月汇总销售额 343
数据透视表日期字段分组组合 344
疑难166如何创建年份的单页字段数据透视表 345
创建数据透视表自定义页字段 347
9.2 SQL与数据透视表 347
疑难167如何创建动态的数据透视表 347
使用SQL语句创建动态的数据透视表 349
疑难168如何汇总同一个工作簿中的所有数据 349
使用SQL语句连接同一个工作簿内所有的工作表创建动态的数据透视表 351
疑难169如何汇总同一个工作簿中不同区域的数据 351
使用SQL语句连接同一个工作簿内不同工作表中的不同区域创建数据透视表 353
疑难170如何汇总不同工作簿中不同工作表的数据 353
使用SQL语句连接不同工作簿中不同工作表的所有数据创建动态的数据透视表 356
疑难171如何对列数不等的工作表创建数据透视表 357
使用SQL语句连接列数不等的工作表创建动态的数据透视表 359
疑难172如何分别统计各部门不同性别、学历、职位的人数 359
使用SQL语句对源数据进行结构转换创建动态的数据透视表 361
疑难173如何创建当月销量及累计销量的数据透视表 362
使用SQL语句创建带有当月统计及累计的动态数据透视表 364
9.3练习与思考 365
第10章SQL和VBA 366
10.1 VBA基础 366
疑难174如何输入和修改VBA代码并保存 366
VBA编样环境及VBA代码的编写和运行 368
启用宏的工作簿在Exce12003与Exce12007及以上版本的区别 369
疑难175如何设置SQL所需的VBA环境 369
引用ADO组件设置SQL编程环境 369
10.2利用ADO组件进行数据库连接 370
疑难176如何创建数据库连接实现简单的SQL查询 370
利用ADO连接数据库 371
利用ADO执行SQL查询,并在Excel中输出结果 371
ADO连接不同的数据库 371
疑难177如何使用VBA实现多数据库查询 373
同时查询多个不同的数据库 374
疑难178如何让用户选择数据库进行查询 374
利用VBA选择数据库路径 376
Excel自定义文档属性的概念 377
10.3利用ADO组件进行表的操作 377
疑难179如何使用VBA在数据库中新建一个表 377
用CREATE语句新建数据表 378
用SQL语句新建Excel工作表 379
疑难180如何使用VBA删除数据库中的表 379
DROP语句删除表 380
疑难181如何使用VBA创建新的字段 381
新建数据表中的字段 382
删除数据表中的字段 382
疑难182如何使用VBA修改表中现有的字段类型 382
修改数据表中的字段名及类型 383
疑难183如何使用VBA将某个表复制到其他数据库中 383
整个数据表的复制 385
10.4数据操作 385
疑难184如何使用VBA向表中添加新的记录 385
INSERT INTO语句实现数据的添加 387
疑难185如何使用VBA将满足条件的记录添加到表中 388
INSERT INTO语句实现数据的批量添加 389
疑难186如何使用VBA修改某个特定记录 390
UPDATE语句实现数据的批量修改更新 391
UPDATE语句实现跨数据表的更新 392
疑难187如何使用VBA批量更新记录 392
DELETE语句实现数据的批量删除 394
数据表的删除和清空 394
疑难188如何使用VBA将SQL查询结果用于数据透视表 394
创建数据透视表的数据源 396
疑难189如何使用VBA获取某几行记录 397
用GetRows方法实现将查询结果转换为数组 398
记录集的指针 398
疑难190如何使用VBA进行多表汇总 399
多表的汇总查询 401
OpenSchema实现数据库中结构的获取 401
疑难191如何使用VBA进行文件的上传和下载 402
将SQL查询结果存放于记录集对象 405
AddNew实现记录的添加 405
附件数据类型的应用 407
10.5练习与思考 408
第11章 综合应用 409
11.1销售报表分析 409
疑难192如何获取2010年各月销售总数量及总金额 409
使用SQL语句对多个工作表进行分组汇总 411
疑难193如何获取2010年销量前10位客户各月销售数量明细表 411
使用SQL语句结合数据透视表获取销量前10位的客户明细 411
疑难194如何获取各客户在2010年各个产品分类的销售总量及销售总金额 414
获取各产品销售总量及销售总金额 414
疑难195如何获取各销售经理所负责客户的销售总量及总金额 416
获取各客户销售总量及销售总金额 416
疑难196如何获取各个区域的销售总量及销售总金额 417
获取各区域销售总量及销售总金额 417
疑难197如何汇总各业务员的销售总量及销售总金额 418
获取各业务员的销售总量及销售总金额 419
11.2利用VBA结合SQL设计微型系统 420
疑难198如何设计通讯录 421
疑难199如何设计通用汇总程序 430
疑难200如何设计工资管理系统 447