- Excel2019高级进阶:SQL应用
- 肖鹏
- 7字
- 2021-12-24 17:40:04
3.2 查询表中的列
3.2.1 查询一列或多列数据
查询一个表中的一列或者多列数据时,要使用SELECT子句来指定这些列。选择列时一定要有指向的表,指定表要用FROM子句,因此一个简单的查询需要SELECT子句和FROM子句搭配使用。在有些SQL语句的使用环境中,SELECT子句是可以单独使用的,一般用来直接进行数值运算或用函数返回一个值,本书不做赘述。
(1)查询一列数据
现有如图3.1所示“生鲜销售表.xlsx”,记录了某超市在一个月内生鲜产品的买进价格、买进数量、卖出价格和卖出数量,并使用公式计算出了当月的销售额和毛利润。如要查询产品的销售额,即只查询表中的“销售额”一列,应如何用SQL语句来实现?步骤如下。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image31.jpeg?sign=1739345454-pkb20IZ2NSylk9gDIB0W9NcuyEzrkneN-0-9cb852b246edf6761f99cac08eb473e2)
图3.1 生鲜销售表
步骤1:在“生鲜销售表.xlsx”工作簿中新建一个表,命名为“查询一列”,如图3.2所示。选中表中的A1单元格,将要查询到的数据插入到表中的这个位置。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image32.jpeg?sign=1739345454-59muvOoXoC8bBkefFmMR9x3SvWEgAe2O-0-490b6ee06422e0ce4754bfbe39948ada)
图3.2 新建“查询一列”工作表
步骤2:点击“数据”菜单,在“获取和转换数据”组中选择“现有连接”按钮,在打开的“现有连接”窗口中点击“浏览更多…”按钮。此时会弹出“选取数据源”窗口,在“选取数据源”窗口中找到“生鲜销售表.xlsx”所在的目录,并选择此文件,然后点击“打开”按钮。因为在“生鲜销售表.xlsx”工作簿中存在两个工作表,因此在弹出的“选择表格”窗口中会出现“生鲜销售表$”和“查询一列$”两个选项,如图3.3所示。此处选择“生鲜销售表$”,然后点击“确定”按钮。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image33.jpeg?sign=1739345454-0NSJd9x2gBqCQQ62UmKDWISXtjizppaI-0-a58645afb1a59e23f3711a34ba4bf55e)
图3.3 “选择表格”窗口
步骤3:在弹出的“导入数据”窗口中点击“属性”按钮,其他选项保持默认选项。如图3.4所示。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image34.jpeg?sign=1739345454-LEqRG1Tntmnoj3dWopgOkQzUXNvWBrsO-0-6acacdc55cb9e9f5e1728f6ff8e214ae)
图3.4 “导入数据”窗口
步骤4:点选“属性”按钮之后会弹出“连接属性”窗口,在此窗口中选择“定义”选项卡,如图3.5所示。清空“命令文本”框,键入如下SQL语句后点击“确定”按钮。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image35.jpeg?sign=1739345454-V3fVbkXd1GsCletLIZCP3W4dN4QZzm5t-0-c3609f5f95c7d3dfd1686132fbbaacbd)
图3.5 “连接属性”窗口
SELECT 销售额
FROM [生鲜销售表$]
步骤5:点击“确定”后将会回到图3.4所示的窗口,再次点击“确定”按钮,此时查询后的数据将会导入到“查询一列”表中,如图3.6所示。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image36.jpeg?sign=1739345454-OSQpZ2CG7t4jFs5LMcJBYYN0GZKHp0aT-0-7a0912de78fe8a8ca42d124122d507e9)
图3.6 查询结果
通过以上步骤可以查询出表中的一列数据。在“连接属性”窗口,查询一列数据的语法格式为:
SELECT 列名
FROM [表名$]
(2)查询多列数据
对于如图3.1所示的“生鲜销售表.xlsx”,除了可以查询其中的任意一列,还可以查询表中的多列数据,例如要查询“产品编号”“产品名称”和“销售额”三列,可使用以下步骤实现。
步骤1:在“生鲜销售表.xlsx”工作簿中增加一个新的工作表“查询多列”,如图3.7所示,并选中A1单元格。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image37.png?sign=1739345454-WpHzsR3lnScJx2tpXkwGF4gzWrLBwhrh-0-9e83d1ded94d2f74578964fdf7bdea59)
图3.7 新建“查询多列”工作表
步骤2:重复上例的步骤,点击“数据”菜单,在“获取和转换数据”组中选择“现有连接”按钮,在打开的“现有连接”窗口中点击“浏览更多…”按钮,在弹出的“选取数据源”窗口中选择“生鲜销售表.xlsx”所在的目录,并选择此文件,然后点击“打开”按钮。在弹出的“选择表格”窗口中选择“生鲜销售表$”后点击“确定”按钮,如图3.8所示。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image38.jpeg?sign=1739345454-tNNgdfBrj2g0eCwvsPFsG58u810eoubx-0-6700ef554f74b7d34d52ad21074ecedc)
图3.8 “选择表格”窗口
步骤3:在弹出的“导入数据”窗口中点击“属性”按钮,在此窗口中选择“定义”选项卡,如图3.9所示。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image39.jpeg?sign=1739345454-spnJRZyhFPCC0x4WFvHRQV8xupCU6hoI-0-b43221588e08107871b29afba64a8600)
图3.9 “连接属性”窗口
步骤4:清空“命令文本”框,键入如下SQL语句后点击“确定”按钮。
SELECT 产品编号,产品名称,销售额
FROM [生鲜销售表$]
步骤5:点击“确定”后将会回到“导入数据”窗口,点击“确定”按钮后,查询后的数据将会导入到“查询多列”表中。如图3.10所示。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image40.jpeg?sign=1739345454-ojC4pG6HwUrsmPEUpoDfKlblmSxZSWK3-0-4feee5b8c8b8c93b721162c9dfe4a32b)
图3.10 查询结果
通过以上步骤,可以实现对表中多列数据的查询。在“连接属性”窗口,查询多列数据的语法格式为:
SELECT 列名1,列名2,列名3,……
FROM [表名$]
需要注意的是,在查询多列时,各列之间要用逗号隔开,逗号必须要使用半角逗号,即要在英文状态下输入。
(3)查询列名中含有特殊字符的列
按照SQL的语法规则,列名中应尽量不要使用特殊字符,但是如果列名中已经存在特殊字符,对于这样的列名,需要做特殊处理。仍以图3.1的“生鲜销售表.xlsx”为例,表中有一列为“毛利润/月”,含有特殊字符斜杠(/)。那么,查询这样的列时应如何书写SQL语句呢?
步骤1:在“生鲜销售表.xlsx”工作簿中增加一个新的工作表“特殊列名”,如图3.11所示,并选中A1单元格。
步骤2:点击“数据”菜单,在“获取和转换数据”组中选择“现有连接”按钮,在打开的“现有连接”窗口中点击“浏览更多…”按钮,在弹出的“选取数据源”窗口中选取“生鲜销售表.xlsx”所在的目录,并选择此文件,然后点击“打开”按钮。在弹出的“选择表格”窗口中选择“生鲜销售表$”后点击“确定”按钮,在弹出的“导入数据”窗口中点击“属性”按钮,在弹出的“连接属性”窗口中选择“定义”选项卡,清空“命令文本”框并输入如下SQL语句:
SELECT 产品编号,产品名称,销售额,[毛利润/月]
FROM [生鲜销售表$]
步骤3:在“连接属性”窗口中点击“确定”后返回到“导入数据”窗口,点击“确定”按钮后,查询后的数据将会导入到“特殊列名”表中。如图3.11所示。
![](https://epubservercos.yuewen.com/930799/21838960008317806/epubprivate/OEBPS/Images/image41.jpeg?sign=1739345454-2vWc1t1QQKGIzyDGSRMLx9lmBWAzzwEz-0-d6ee7fff7f472d6eb351f90bbc80a912)
图3.11 查询结果
小结
当查询含有特殊字符的列时,列名要用“[]”或者“`”(重音符号)括起来,其语法格式为:
SELECT [列名1],[列名2],[列名3],……
FROM [表名$]
或者
SELECT `列名1`,`列名2`,`列名3`,……
FROM [表名$]
因此上例中的SQL语句也可以改写成:
SELECT 产品编号,产品名称,销售额,`毛利润/月`
FROM [生鲜销售表$]