18 数据查询之6.1 SELECT语句
在本章中,我们将深入探讨SQL查询的核心——SELECT语句。掌握SELECT语句是使用PostgreSQL进行数据操作的第一步。它允许我们从数据库中提取数据,这对于后续数据分析和处理至关重要。
6.1 SELECT语句的基本语法
SELECT语句的基本结构如下:
SELECT [列名1], [列名2], ...
FROM [表名]
SELECT后面跟随的是想要查询的列名,多个列名可以用逗号分隔。FROM后面指定了要查询数据的表名。
示例
假设我们有一个名为employees的表,其中存储了员工的信息。表的结构如下:
| id | name | position | salary |
|---|---|---|---|
| 1 | Alice | Manager | 70000 |
| 2 | Bob | Developer | 60000 |
| 3 | Charlie | Designer | 55000 |
我们可以使用以下SELECT语句来查询所有员工的姓名和职位:
SELECT name, position
FROM employees;
执行这条语句的结果如下:
| name | position |
|---|---|
| Alice | Manager |
| Bob | Developer |
| Charlie | Designer |
选择所有列
如果想要查询表中的所有列,可以使用*通配符:
SELECT *
FROM employees;
这将返回employees表中的所有信息。
6.1.1 DISTINCT关键字
在查询中,有时我们只希望得到唯一的结果,而不重复的数据。为了实现这一点,我们可以在SELECT语句中使用DISTINCT关键字。例如,如果我们想查询不同的职位,可以采取以下形式:
SELECT DISTINCT position
FROM employees;
这一查询将仅返回每种职位的一个实例,结果如下:
| position |
|---|
| Manager |
| Developer |
| Designer |
6.1.2 列的别名
在某些情况下,为了提高查询结果的可读性,我们可能需要给查询的列设置别名。这可以通过使用AS关键字来实现。例如,我们可以为salary列设置一个别名:
SELECT name AS employee_name, salary AS employee_salary
FROM employees;
结果将显示为:
| employee_name | employee_salary |
|---|---|
| Alice | 70000 |
| Bob | 60000 |
| Charlie | 55000 |
6.1.3 排序查询结果
有时我们希望按特定顺序查看查询结果。可以使用ORDER BY子句来实现这一点。以下是按照salary列从高到低排序的查询示例:
SELECT name, salary
FROM employees
ORDER BY salary DESC;
查询结果将是:
| name | salary |
|---|---|
| Alice | 70000 |
| Bob | 60000 |
| Charlie | 55000 |
6.1.4 限制查询结果的数量
在某些情况下,我们只希望得到查询的前几条记录。可以使用LIMIT子句来限制结果的数量。例如,获取薪水最高的两名员工:
SELECT name, salary
FROM employees
ORDER BY salary DESC
LIMIT 2;
执行结果为:
| name | salary |
|---|---|
| Alice | 70000 |
| Bob | 60000 |
6.1.5 组合多个查询
PostgreSQL允许使用联合查询(UNION)将多个SELECT查询的结果组合在一起。注意,联合的查询必须拥有相同数目和数据类型的列。例如,我们如果有两个不同的表(employees和contractors),可以将其姓名信息整合:
SELECT name FROM employees
UNION
SELECT name FROM contractors;
这个查询会返回employees和contractors表中所有唯一的姓名。
6.1.6 小结
在本节中,我们探讨了SELECT语句的基本用法,包括选择列、使用DISTINCT去重、设置别名、排序和限制结果数量等高级特性。SELECT语句是数据查询的基石,掌握其用法将使您在PostgreSQL的学习和使用中更加得心应手。
接下来的内容将进入WHERE条件的使用,帮助您在查询中添加更复杂的过滤条件,为数据提取提供更高的灵活性和精确度。请继续阅读下一节!
