SQL入门教程第03课::什么是字段

职场   2024-10-01 08:45   福建  
HI,大家好,我是星光。

过去的两篇教程,给大家讲述了什么是SQL in Excel,什么是ADO,相比于Excel其它功能,这俩的优劣是什么。打个响指,从本章开始,给大家逐步分享SQL的基本语法和应用实例。

不过在这之前,还是需要对一些名词做出解释;这些名词是SQL语句释义中经常使用到的,不必理解,但务必了解。


 表和字段



1.1 数据库

数据库是按照数据结构来组织、储存和管理数据的仓库,例如ACCESS软件等。通常情况下,我们将一个Excel工作簿也视为一个数据库。是的,如您所知,Excel并不是数据库,但这并不妨碍我们把它看成一个数据库,进而使用SQL语言处理其中的数据。这就好比虽然男人不是女人,但一样可以织毛衣、做月嫂……不过,得承认,生孩子之类的就确实太富有挑战性了。

1.2数据表

数据表,或称之为表,是数据库最重要的组成部分之一,一个数据库由一个或一组数据表组成。如果我们把这句话的“数据库”,替换成“Excel工作簿”,就变成这样:表是Excel工作簿最重要的组成部分之一,一个Excel工作簿由一个或一组表组成,你看,同样也是成立的——因此,可以先将Excel工作表视为数据库中的“表”,至于异同,以后再聊。


1.3记录和字段

如上图所示,和Excel表格一样,数据库的表由行和列组成,只是不存在行号和列标,不存在单元格,相关值自然就不能使用A6、F4之类的单元格地址来表述。表的每一行描述实体的一个实例,称之为记录;每一列描述实体的一个特征或属性,称之为字段,列的标题称之为字段名或列标题,例如上图中的“姓名”。

主键和外键……以后用到再说。

没了。


 SELECT语句



SQL的数据查询和操纵语句包括SELECT、UPDATE、INSERT、DELETE等,也就是所谓的查改增删,其中最重要、使用最频繁的是SELECT查询语句。查询按照复杂性划分,可以从一个简单的语句返回所有表中所有的记录,到用一个语句链接多个表并定义多种搜索条件……

现在,就让我们从最简单的部分走起吧——走你,少年。


SELECT语法如下(简化版):

SELECT 字段名 FROM 表名

关键字SELECT指定需要查询的字段名称,关键字FROM指定需要获取字段信息的表的名称。

倘若数据源是Excel表格,需要在表名后增加美元符号$,并用中括号包起来,例如[Sheet1$]

另外需要说明的是,SQL语言对关键字大小写不敏感。SELECT、select、Select都可以使用,作用等同;基于书写规范化的原因,可能有些老师会要求关键字统一大写;嗯,我不是老师,我还小;我的意见是新手期你怎么喜欢怎么顺眼怎么来——你好就好,宠溺脸。



 字段的应用



分享一下SQL In Excel 常用字段查询语句以及常见问题的解决方法。

如下图所示,是一份Excel表格,表名为学生表,内容是一些看见星光之类小学生的信息数据。



3.1,单个字段查询

假设我们需要查询上图所示表格的姓名列的数据。语句如下:

SELECT 姓名 FROM [学生表$]

结果如下:


3.2,多个字段查询

假设我们需要查询字段为姓名/性别/爱好的记录,语句如下:

SELECT 姓名,性别,爱好 FROM [学生表$]

不同字段名之间使用英文逗号间隔,但最后一个字段名不用。另外需要格外注意的是,逗号是半角的,千万别写成中文逗号。当然,初学阶段,别说千万,亿万万也没办法阻止咱们错输中文逗号情况的发生……反复切换输入法的中英文状态真的是很烦的一匹……这里建议你直接在输入法中将中文状态下的标点设置为英文。


上述语句查询结果如下:


3.3,查询所有字段的快捷方式

如果我们需要提取所有字段的数据呢?一种方法是将所有字段名写入SELECT语句中:

SELECT ID,姓名,性别,年龄,爱好,得分 FROM [学生表$]

另外一种方法是,使用星号*选取所有列:

SELECT * FROM [学生表$]

两者的区别在于,前者只选取指定字段的数据,后者包括了表的所有数据。对于Excel表格而言,如果字段名确定,出于安全考虑,通常使用前者更靠谱点儿。

3.4,别名的使用

如果我们需要更改查询结果中的字段名称,例如我不喜欢字段名“爱好”,我想把它改成“特长”,可以使用关键字as,as是英文alias 的缩写,也就是“别名”的意思。语句如下:

SELECT 姓名,爱好 AS 特长 FROM [学生表$]


3.5,特殊字段名的处理

当字段名存在某些特殊字符,例如空格,或者当字段名存在SQL的保留字,例如AS,该字段名需要使用中括号括起来,避免因语法识别混乱,导致系统产生错误信息。


举个例子,如上图所示,Excel表名为调查表,该表字段名中有的存在空格(姓 名),有的使用了SQL的保留字as,如果需要查询该表格姓名和地址的信息,SQL语句如下:

select [姓 名] , [as]  from [调查表$]

查询结果如下:


3.6,无字段名情况的处理

之前讲过,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想学啥学啥

👀


本文由公众号“Excel星球”首发。
点击阅读原文系统学习Excel!

Excel星球
微软全球最有价值专家(Excel MVP),上千篇原创图文和视频教程随学随用,随用随查,建议常用Excel的职场人关注。
 最新文章