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