PostgreSQL - SELECT
PostgreSQL - SELECT 查询
Section titled “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 表
Section titled “示例:查询 employees 表”假设我们有一个名为 employees 的表,其中包含以下数据:
| id | name | age | department | salary |
|---|---|---|---|---|
| 1 | Alice | 32 | Engineering | 90000 |
| 2 | Bob | 25 | Marketing | 65000 |
| 3 | Charlie | 28 | Engineering | 85000 |
| 4 | Diana | 35 | HR | 75000 |
| 5 | Eve | 29 | Marketing | 70000 |
要获取所有员工的 id、name 和 salary,我们执行以下查询:
dev_db=> SELECT id, name, salary FROM employees;此查询产生以下结果集:
| id | name | salary |
|---|---|---|
| 1 | Alice | 90000 |
| 2 | Bob | 65000 |
| 3 | Charlie | 85000 |
| 4 | Diana | 75000 |
| 5 | Eve | 70000 |
如果你想获取所有员工的所有列,你可以使用:
dev_db=> SELECT * FROM employees;这将返回所有行和所有列,与上面显示的表相同。
SELECT 语句功能极其强大。在接下来的章节中,你将学习如何使用 WHERE、ORDER BY 和 GROUP BY 等子句来筛选、排序和分组数据。