http://club.excelhome.net/thread-1061487-1-1.html
学习SQL一步一步开始,跟着本文的脚印带你走向SQL方向。本分先分别介绍Microsoft Query 方法书写SQL语句,和VBA方法书写SQL语句。(注:VBA语句中只需修改其中的SQL语句即可,其他只需要复制粘贴即可)。
下面先上图:
进入VBA界面
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132233xjoo9dgycoyx11g1.jpg)
2.插入模块
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132251iaizffqxgeqqmhj3.jpg)
3.双击模块
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132312xz28b1l77oj9xg7x.jpg)
4.在代码区码
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132312xfx0v0s7cy5f66j5.jpg)
写入VBA代码
代码如下:
介绍Microsoft Query的方法
1.从数据---自其他来源--来自Microsoft Query
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132927c5um6zmdcaasqkkk.jpg)
2.选择Excel类型
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132929ozklugvrori2u71b.jpg)
3.选择工作簿(文件)
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132929byeam2obava7ybva.jpg)
4.选择工作表
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132930j2olmaxogdgxi1z2.jpg)
5.选择需求数据的列
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132931pwt5yseyswrr6ydp.jpg)
6.筛选条件,本例只接选下一步
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/1329317i11hwm45osoo55h.jpg)
7.排序方法,本教程也直接下一步
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/1329312kkyi8ykriwwkoer.jpg)
8.返回工作表或Microsoft Query编辑器。(本例选 Microsoft Query,以便以编写SQL语句)
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/132931wkkitrso1kr2t1ks.jpg)
9.编写SQL语句窗口。
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/1329333d7csccjdjjf9qf9.jpg)
通过以上二种方法,能知道SQL书写到什么地方。
接下来,可以开始学习SQL语句语法。
1.基于一张工作表的查询语法
格式: select[DISTINCT] [TOP<数值> [PERCENT] <列标题>[[as]]<别名列标题>]
from <表或查询1>[AS]<别名1>],<表或查询2>[AS]<别名2>],
[where<筛选条件>][order by<排序项>[asc ▏desc]]
说明: 1、<>表示必选项,"[]"表示可选项,"▏"表示多选一。
2、 DISTINCT:消除取重复的行
3、 TOP 数值:显示前几条记录
4、 TOP 数值 percent:显示前面分之多少条记录
5、 <列标题>[[as]]<别名列标题>:给标题列重新命一个新名称
6、 where<筛选条件>:条件语句
7、排序,如果要按两个或两个以上字段,那么字段与字段之间用豆号隔开,asc升序,为默认值,desc降序。
显示所有字段的记录(全部列的内容)
语句:
语句1:
语句2:
这二个语句具有同样的功能,出来的结果都是一样的。
语句1中的*号是代表全部列,语句 2中,是写上全部列字段的名称。
如果工作表没有列标题,用F1,F2,F3,F4.....这样代替
先看原表
使用SQL语句出来的结果:
Microsoft Query方法:
将结果返回工作表:
返回工作表后样式:
Microsoft Query方法返回工作表后修改SQL语句方法:
“数据”选项卡---属性---连接属性--定义---命令文本
补充说明vba启用宏方法:
1.调出开“发工具栏”
2.在自定义功能区,勾选“开发工具栏”
3.设置宏安全性
4.启用宏
5.进入VBA界面2
6.运行子过程,把光标放于代码中间任意行,按F5执行,或绿色小三角执行。
按F8是逐步执行,是学VBA中重要的调试技术。
格式: select[DISTINCT] [TOP<数值> [PERCENT] <列标题>[[as]]<别名列标题>]
from <表或查询1>[AS]<别名1>],<表或查询2>[AS]<别名2>],
[where<筛选条件>][order by<排序项>[asc ▏desc]]
说明: 1、<>表示必选项,"[]"表示可选项,"▏"表示多选一。
2、 DISTINCT:消除取重复的行
3、 TOP 数值:显示前几条记录
4、 TOP 数值 percent:显示前面分之多少条记录
5、 <列标题>[[as]]<别名列标题>:给标题列重新命一个新名称
6、 where<筛选条件>:条件语句
7、排序,如果要按两个或两个以上字段,那么字段与字段之间用豆号隔开,asc升序,为默认值,desc降序。
显示所有字段的记录(全部列的内容)
语句:
语句1:
语句2:
这二个语句具有同样的功能,出来的结果都是一样的。
语句1中的*号是代表全部列,语句 2中,是写上全部列字段的名称。
如果工作表没有列标题,用F1,F2,F3,F4.....这样代替
先看原表
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/135612gaagivlgbm3agq35.jpg)
使用SQL语句出来的结果:
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/135611pmzemmc2632qs7cn.jpg)
Microsoft Query方法:
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/142758xqb7q717e9qeycsq.jpg)
将结果返回工作表:
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/142757zjwzj2oh7oq8hoo6.jpg)
返回工作表后样式:
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/1427565azk985nxlhll9z9.jpg)
Microsoft Query方法返回工作表后修改SQL语句方法:
“数据”选项卡---属性---连接属性--定义---命令文本
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/144232oa8t2aa3zsvgga8c.jpg)
补充说明vba启用宏方法:
1.调出开“发工具栏”
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/141011ecujefdswz978v8f.jpg)
2.在自定义功能区,勾选“开发工具栏”
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/1410142u4tggy1y7dp4tpz.jpg)
3.设置宏安全性
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/141016uknr68u2uzc06ime.jpg)
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/14101592e0l9h2rwe9q2ij.jpg)
4.启用宏
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/141018avo0bm0pvcm0oo98.jpg)
5.进入VBA界面2
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/141016ud39wtjooz390egd.jpg)
6.运行子过程,把光标放于代码中间任意行,按F5执行,或绿色小三角执行。
按F8是逐步执行,是学VBA中重要的调试技术。
![从零开始学习SQL(图文教程) - CMMI - CMMI的博客 从零开始学习SQL(图文教程) - CMMI - CMMI的博客](http://files.c.excelhome.net/forum/201310/09/141010fa5apuq55933o4z5.jpg)
本帖最后由 335081548 于 2013-10-9 20:52 编辑 使用SQL语句获取多列数据,及别名的使用 在Excel中所使用的SQL语句具体语法结构如下: 在本例 中SELECT子句后列出查询的字段即可查询出结果,如输入以下的SQL语句: ![]() 使用SQL语句后结果如下图: ![]() 使用别名 1.字段别名 本例中SQL语句如下: 2.工作表别名 本例中SQL语句如下: 所有字段列表 可能到这里就有人会问,你这不是多此一举吗? 2楼不是介绍了 就行了吗?还整这么复杂干什么? 其实(原来)SQL的代码是应该这样写的,上面的是简写。或者说只有一个表的情况,以后介绍多表的情况会用到表的别名。所以就在此一次把别名介绍了。 实际中SQL语句应该如下: 这样的使用环境中,使用表名,就太大缩短SQL语句的字符和书写方便。 注意事项: 1.在SQL语句中SQL语句英文不区分大小写,但标点符号必须是英文半角状态下输入,字段名也必须跟原来的一样。 2.使用SQL语句的时候,必须避免列字段中使用下面的特殊字符: 空格、双引号(")、撇(')、数字标记(#)、百分号(%)、大于号(>)、小于号(<)、叹号(!)、句号(.)、方括号([或])、星号(*)、美元符号($)、分号(;)、脱字号(^)、圆括号((或))、加号(+)、反斜杠(\或/)。 如果在源数据表的列字段使用了这些特殊字符,那么在使用SQL语句列出各字段的数据时,就会发生错误。为了规范使用SQL语句,在对数据源字段命名时,尽量避免使用这些特殊字符。
|