ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ctp_119

[原创] 跟我学SQL in Excel

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-18 13:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:SQL应用
本帖最后由 ctp_119 于 2013-10-18 14:27 编辑

实例二:别名
    查询语句:select品名 as 商品名称,单价 as 销售价 from [北京$]
    解析: as后面是别名,别名分为字段别名和表别名。字段别名有翻译和说明作用,尤其是对英文标题字段时更能突显其作用;而表别名有简化书写和限制作用,本例没有用表别名,后面的例子将会应用。
    延伸:as作为别名的关键字,字段别名和表别名有何区别?是否可以省略AS?看懂并理解下列查询语句
Select a.商品编码,a.商品名称,a.数量 as 销售数量,b.单价 as 销售价,a.数量*b.单价 as 销售额 from [商品销售$]a,[售价表$]b where a.商品名称=b.商品名称
如图所示:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.jpg
    实例三:去重复(distinct)
    查询语句:selectdistinct 业务员 from [北京$]
    解析:从北京这张表中提取有哪些业务员。关键字distinct的作用是去重复。
延伸①:selectdistinct * from [北京$]      这条语句得出什么样的结果?分析并深刻理解DISTINCT的作用。
延伸②:selecttop 3 * from (select 业务员,sum([金额/元]) as 销售额 from [北京$] groupby 业务员) order by 销售额 desc
延伸③:selecttop 60 percent 学生编号,姓名,学科,分数 from [成绩表$] where学科='语文' order by 分数 desc
结果如图所示:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image003.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-18 14:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 ctp_119 于 2013-10-18 14:28 编辑

    实例四:where条件查询
    查询语句:select* from [北京$] where 业务员='刘冰'
    解析:查询业务员刘冰的所有销售记录。当比较运算符=为文本时,一定要加上引号(双引号"或单引号')且为英文状态下半角字符。如是日期,在excel中,一定要在日期两端“#”。
    延伸①:select* from [北京$] where 业务员 like"%"   (“%”和“_”的区别,如“*”和“?”)
    延伸②:select* from [北京$] where 日期 between#2004/1/1# and #2004/1/31#
    延伸③:select* from [北京$] where 业务员 in("刘冰","小虎")
    延伸④:select* from [成绩表$] where 分数 is notnull
    延伸⑤:select* from [成绩表$] where 学生编号 like'10000[1-5]'
以上条件查询代码一定要好好理解变通,一一测试。
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.jpg结果如图所示
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image004.gif条件运算符归纳与总结:
    实例五:groupby 分组
    查询语句:select业务员,品名,sum(数量) as 销售量,SUM([金额/]) as 销售额 from [北京$] groupby 业务员,品名
    解析:对业务员按品名进行分类汇总。
    延伸①:比较“select业务员 from [北京$] groupby 业务员”和“select distinct 业务员 from [北京$]”语句的用法和功能,以此加深理解group by的运用。
    延伸②:select 业务员,品名,sum(数量) as 销售量,SUM([金额/]) as 销售额 from [北京$] groupby 业务员,品名 having 业务员='刘冰'
注意having条件和where条件加以联系和比较,以掌握它们的用法。
结果如图所示:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image006.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-18 14:14 | 显示全部楼层
本帖最后由 ctp_119 于 2013-10-18 14:29 编辑

    实例六:orderby (ASC|DESC)排序
    查询语句:select* from [成绩表$] order by 学生编号
    解析:对于orderby子句而言,如果不加指定,即省略ASC,系统默认ASC为升序,相反,则必须指定关键字DESC,表示降序。本句select语句的意思是选取所有记录并以学生编号进行升序排列。
延伸:select *from [成绩表$] where 分数 is notnull order by 学生编号,分数 desc
示例结果如图所示:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.jpg
    通过以上6个实例以及拓展延伸,想必大家已经基本了解简单的SQL中最常用的SELECT用法了,但要真正掌握并进行实战,还必须多加操练,以加深理解。
不知大家有没有发现,是否落下什么没有讲解?我们不妨回头去看看select语句的语法格式,你会发现,JION表连接没有讲解;而我们到现在为止,讲解的也都是一个表中的查询操作,如果要进行多表之间查询,又该如何操作呢?下面我们就来重点讲解几种表连接,以解决我们的疑惑。
    连接方式有如下几种:
    1.内连接
2.外连接
    Excel毕竟是excel,不是真正意义上的数据库,很多查询不适合excel,如自连接查询,自然连接查询等其他一些查询都难以在excel中来完成。有兴趣的可以查看相关资料深层次的学习。
    实例七:内连接查询
    查询语句:Selecta.商品编码,a.商品名称,a.数量 as 销售数量,b.单价 as 销售价,a.数量*b.单价 as 销售额 from [商品销售$]ainner join [售价表$]b on a.商品名称=b.商品名称
    解析:注意内连接查询和实例二中的延伸中的查询(Select a.商品编码,a.商品名称,a.数量 as 销售数量,b.单价 as 销售价,a.数量*b.单价 as 销售额 from [商品销售$]a,[售价表$]b where a.商品名称=b.商品名称)做个比较,你会发现实现的功能完全相同,查询语句略有不同。
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image004.jpg延伸:改变查询条件,不等值查询试试效果,想想为什么?
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image005.jpg
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image006.jpg
at���p���> having 业务员='刘冰'
注意having条件和where条件加以联系和比较,以掌握它们的用法。
结果如图所示:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image006.jpg

TA的精华主题

TA的得分主题

发表于 2013-10-18 14:23 | 显示全部楼层
学习学习,嘻嘻

补充内容 (2013-11-15 17:02):
学习小结:开头有点雾——思路越来越清晰——结合实例操作实践——套用——理解——再应用

TA的精华主题

TA的得分主题

发表于 2013-10-18 14:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
{:soso_e160:}收藏了

TA的精华主题

TA的得分主题

发表于 2013-10-18 14:57 | 显示全部楼层
哈哈 老大 先学习了 谢谢!{:soso_e113:}

TA的精华主题

TA的得分主题

发表于 2013-10-18 18:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
程总87C6,火钳刘明!!!!

点评

87C6,火钳刘明!是啥意思呀?  发表于 2013-10-18 18:58

TA的精华主题

TA的得分主题

发表于 2013-10-19 17:35 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-10-19 23:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
37724861 发表于 2013-10-18 18:46
程总87C6,火钳刘明!!!!

火前留名。。。。哈哈

TA的精华主题

TA的得分主题

发表于 2013-10-20 16:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ctp_119 发表于 2013-10-18 13:55
实例二:别名    查询语句:select品名 as 商品名称,单价 as 销售价 from [北京$]    解析: as后面是别名,别 ...

版主,您好.有几楼的图片看不到,麻烦检查更新一下。

点评

下载,word版本是完好的,谢谢关注。  发表于 2013-10-21 07:57
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 12:14 , Processed in 0.050452 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表