趋近智
GROUP BY 进行数据分组虽然使用 SELECT *(我们将在后续章节讲解)从表中获取所有数据对于初步查看可能有用,但对于特定任务而言,这通常效率不高且没必要。通常,您只需要可用列中的一部分数据。例如,如果您有一个包含客户信息的表,您可能只需要他们的姓名和电子邮件地址用于邮件列表,而不需要他们的完整地址或购买记录。
SQL 允许您精确指定要在查询结果中获取哪些列。这会使您的查询更有效率(获取更少数据),并且结果也更易于使用,因为它们只包含与您当前目的相关的信息。
要选择特定列,您需要在 SELECT 关键字后列出它们的名称,用逗号分隔。基本结构如下:
SELECT column_name1, column_name2, column_name3
FROM table_name;
我们来分解一下:
SELECT: 获取数据的每个查询都以该关键字开始。column_name1, column_name2, column_name3: 您希望从中获取数据的列名。每个列名必须用逗号分隔。您可以列出所需数量的列。FROM table_name: 指定要从中获取这些列的表。;: 分号表示SQL语句的结束。虽然并非所有SQL工具都严格要求,但这是一个标准约定和良好习惯。假设我们有一个 Customers 表,结构如下:
| customer_id | first_name | last_name | city | |
|---|---|---|---|---|
| 1 | Anya | Petrova | [email protected] | Springfield |
| 2 | Ben | Carter | [email protected] | Rivertown |
| 3 | Chloe | Davis | [email protected] | Mapleton |
| 4 | David | Evans | [email protected] | Springfield |
如果只想获取所有客户的名字和电子邮件地址,我们可以编写以下查询:
SELECT first_name, email
FROM Customers;
执行此查询将生成一个只包含这两列的结果集:
| first_name | |
|---|---|
| Anya | [email protected] |
| Ben | [email protected] |
| Chloe | [email protected] |
| David | [email protected] |
您在 SELECT 语句中列出列的顺序决定了它们在输出中出现的顺序。如果希望电子邮件地址出现在名字之前,只需在查询中颠倒它们的顺序即可:
SELECT email, first_name
FROM Customers;
这将产生:
| first_name | |
|---|---|
| [email protected] | Anya |
| [email protected] | Ben |
| [email protected] | Chloe |
| [email protected] | David |
SELECT 和 FROM 通常不区分大小写(所以 select、Select 或 SELECT 都可以)。然而,表名和列名(Customers、first_name)的大小写敏感性通常取决于具体的数据库系统(如PostgreSQL、MySQL、SQL Server)及其配置。最佳做法是与定义表时使用的精确大小写保持一致。选择特定列是您在进行数据分析时经常使用的基本方法。它允许您让数据获取精确符合所需,为后续更复杂的筛选、聚合和连接操作构成基础。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造