过去的两篇教程,给大家讲述了什么是SQL in Excel,什么是ADO,相比于Excel其它功能,这俩的优劣是什么。打个响指,从本章开始,给大家逐步分享SQL的基本语法和应用实例。不过在这之前,还是需要对一些名词做出解释;这些名词是SQL语句释义中经常使用到的,不必理解,但务必了解。▎ 表和字段
数据库是按照数据结构来组织、储存和管理数据的仓库,例如ACCESS软件等。通常情况下,我们将一个Excel工作簿也视为一个数据库。是的,如您所知,Excel并不是数据库,但这并不妨碍我们把它看成一个数据库,进而使用SQL语言处理其中的数据。这就好比虽然男人不是女人,但一样可以织毛衣、做月嫂……不过,得承认,生孩子之类的就确实太富有挑战性了。数据表,或称之为表,是数据库最重要的组成部分之一,一个数据库由一个或一组数据表组成。如果我们把这句话的“数据库”,替换成“Excel工作簿”,就变成这样:表是Excel工作簿最重要的组成部分之一,一个Excel工作簿由一个或一组表组成,你看,同样也是成立的——因此,可以先将Excel工作表视为数据库中的“表”,至于异同,以后再聊。如上图所示,和Excel表格一样,数据库的表由行和列组成,只是不存在行号和列标,不存在单元格,相关值自然就不能使用A6、F4之类的单元格地址来表述。表的每一行描述实体的一个实例,称之为记录;每一列描述实体的一个特征或属性,称之为字段,列的标题称之为字段名或列标题,例如上图中的“姓名”。▎ SELECT语句
SQL的数据查询和操纵语句包括SELECT、UPDATE、INSERT、DELETE等,也就是所谓的查改增删,其中最重要、使用最频繁的是SELECT查询语句。查询按照复杂性划分,可以从一个简单的语句返回所有表中所有的记录,到用一个语句链接多个表并定义多种搜索条件……
现在,就让我们从最简单的部分走起吧——走你,少年。
关键字SELECT指定需要查询的字段名称,关键字FROM指定需要获取字段信息的表的名称。倘若数据源是Excel表格,需要在表名后增加美元符号$,并用中括号包起来,例如[Sheet1$]。另外需要说明的是,SQL语言对关键字大小写不敏感。SELECT、select、Select都可以使用,作用等同;基于书写规范化的原因,可能有些老师会要求关键字统一大写;嗯,我不是老师,我还小;我的意见是新手期你怎么喜欢怎么顺眼怎么来——你好就好,宠溺脸。▎ 字段的应用
分享一下SQL In Excel 常用字段查询语句以及常见问题的解决方法。如下图所示,是一份Excel表格,表名为学生表,内容是一些看见星光之类小学生的信息数据。假设我们需要查询上图所示表格的姓名列的数据。语句如下:假设我们需要查询字段为姓名/性别/爱好的记录,语句如下:SELECT 姓名,性别,爱好 FROM [学生表$]不同字段名之间使用英文逗号间隔,但最后一个字段名不用。另外需要格外注意的是,逗号是半角的,千万别写成中文逗号。当然,初学阶段,别说千万,亿万万也没办法阻止咱们错输中文逗号情况的发生……反复切换输入法的中英文状态真的是很烦的一匹……这里建议你直接在输入法中将中文状态下的标点设置为英文。如果我们需要提取所有字段的数据呢?一种方法是将所有字段名写入SELECT语句中:SELECT ID,姓名,性别,年龄,爱好,得分 FROM [学生表$]两者的区别在于,前者只选取指定字段的数据,后者包括了表的所有数据。对于Excel表格而言,如果字段名确定,出于安全考虑,通常使用前者更靠谱点儿。如果我们需要更改查询结果中的字段名称,例如我不喜欢字段名“爱好”,我想把它改成“特长”,可以使用关键字as,as是英文alias 的缩写,也就是“别名”的意思。语句如下:SELECT 姓名,爱好 AS 特长 FROM [学生表$]当字段名存在某些特殊字符,例如空格,或者当字段名存在SQL的保留字,例如AS,该字段名需要使用中括号括起来,避免因语法识别混乱,导致系统产生错误信息。举个例子,如上图所示,Excel表名为调查表,该表字段名中有的存在空格(姓 名),有的使用了SQL的保留字as,如果需要查询该表格姓名和地址的信息,SQL语句如下:select [姓 名] , [as] from [调查表$]之前讲过,Excel并不是数据库,对数据结构并没有强制性要求,因为这样的缘故,在使用SQL处理数据时,难免会碰上各种有趣的现象。例如,数据表纯数据没有标题行,再或者,标题行存在合并单元格等,以致于字段名无法使用。此时,倘若需要获取字段数据,对字段名通常使用f加序列号表示,f是英文field(字段)的缩写,引用表的第1列字段名就是f1,第2列字段名是f2,其余依次类推。如上图所示,该表格没有标题栏,如果我们需要查询姓名和性别,代码如下:
select f2 as 姓名,f3 as 性别 from [学生表$]还记得大明湖畔使用VBA+ADO执行SQL语句时,如果引用表不存在标题栏,需要修改链接字符串的哪个参数的项吗?——如果不记得的话,那就出门右拐请重看第2章吧~今就聊这吧,上一章聊的太多了。所以今就简单点,说话的方式简单点。看我小眼神,我是一个态度严谨气质活泼组织放心……省略一千字……的五有好少年,所以——不给个赞,你良心真的不会痛吗?
⏩需要系统学习Excel,却找不到优质教程?学习Excel的过程中遇到疑难问题,却找不到人及时作出解答?
加入我的付费社群,学习+训练+答疑,与6000+在线会员一起,同微软最有价值专家MVP同行,全面精进Excel之道
🚂>>~
加入我的付费会员,全面学习Excel
透视表 函数 图表 VBA PQ想学啥学啥
👀