《Excel 2010 SQL完全应用》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:林盘生,李懿,陈树青等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121140372
  • 页数:468 页
图书介绍:本书是“Excel疑难千寻千解”丛书之一,为读者展示了在Excel 2010中运用SQL语句解决疑难问题的实战技巧。本书包含SQL基础入门、运算符、常用函数、日期、排序、聚合函数、连接查询、子查询、SQL与数据透视表、SQL与VBA等方面的应用技巧,以及SQL语句的综合应用。本书包括200个疑难案例,每个疑难都包含一个或多个解决方案,并融入了一个或多个知识点的讲解。

第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