Skip to content

PostgreSQL - SELECT

PostgreSQL 的 SELECT 语句是数据检索的基石。它用于从一个或多个数据库表中获取数据。SELECT 查询的结果以临时表的形式返回,这个临时表被称为结果集(result-set)。

SELECT 语句的基本语法如下:

SELECT column1, column2, ...
FROM table_name;

其中:

  • column1, column2, ... 是你希望从中检索数据的表中的列名。
  • 要获取所有可用列而不单独列出它们,你可以使用星号 * 通配符:
SELECT *
FROM table_name;

最佳实践:避免在应用代码中使用 SELECT *

Section titled “最佳实践:避免在应用代码中使用 SELECT *”

虽然 SELECT * 对于交互式探索(例如,使用 psql)很方便,但在应用代码中它被认为是一种糟糕的实践,原因如下:

  • 性能: 你可能会获取比应用程序所需更多的数据,增加网络流量和内存使用。
  • 稳定性: 如果表模式发生变化(例如,添加或删除列),你的代码可能会因为期望特定数量或顺序的列而中断。
  • 清晰性: 显式列出列使你的查询具有自文档化特性,并更容易让其他开发者理解。

假设我们有一个名为 employees 的表,其中包含以下数据:

idnameagedepartmentsalary
1Alice32Engineering90000
2Bob25Marketing65000
3Charlie28Engineering85000
4Diana35HR75000
5Eve29Marketing70000

要获取所有员工的 id、name 和 salary,我们执行以下查询:

dev_db=> SELECT id, name, salary FROM employees;

此查询产生以下结果集:

idnamesalary
1Alice90000
2Bob65000
3Charlie85000
4Diana75000
5Eve70000

如果你想获取所有员工的所有列,你可以使用:

dev_db=> SELECT * FROM employees;

这将返回所有行和所有列,与上面显示的表相同。

SELECT 语句功能极其强大。在接下来的章节中,你将学习如何使用 WHERE、ORDER BY 和 GROUP BY 等子句来筛选、排序和分组数据。