介绍
在这个实验中,我们将探索 PostgreSQL 中的基本数据操作。主要目标是学习如何使用基本的 SQL 命令来操作 PostgreSQL 数据库中的数据。
我们将从连接到数据库并创建一个包含 ID、姓名和部门列的 employees 表开始。然后,我们将学习如何使用 INSERT INTO 语句将数据插入到表中。接下来,我们将介绍如何使用 SELECT 查询数据、更新现有记录以及删除记录。这个实验提供了 PostgreSQL 中基本数据管理技术的实践介绍。
将数据插入到表中
在这一步中,我们将学习如何在 PostgreSQL 中将数据插入到表中。插入数据是使用信息填充数据库的基本操作。我们将介绍基本语法,并提供示例来帮助你理解这个过程。
在我们开始之前,请确保你已经安装并运行了 PostgreSQL。你可以使用 psql 命令行工具连接到你的 PostgreSQL 服务器。
首先,让我们连接到数据库。打开你的终端并执行以下命令:
sudo -u postgres psql
现在我们已经连接到数据库,让我们创建一个名为 employees 的简单表(如果它还不存在)。这个表将存储有关员工的信息,例如他们的 ID、姓名和部门。
CREATE TABLE IF NOT EXISTS employees (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50)
);
这个 SQL 语句创建了一个名为 employees 的表,其中包含三列:
id:一个整数,它随着每个新记录自动递增(使用SERIAL)。它也是表的主键(primary key)。name:一个字符串(最多 50 个字符),用于存储员工的姓名。department:一个字符串(最多 50 个字符),用于存储员工的部门。
现在,让我们将一些数据插入到 employees 表中。我们将插入三个员工记录。
INSERT INTO employees (name, department) VALUES ('Alice Smith', 'Sales');
INSERT INTO employees (name, department) VALUES ('Bob Johnson', 'Marketing');
INSERT INTO employees (name, department) VALUES ('Charlie Brown', 'Engineering');
每个 INSERT INTO 语句都会向 employees 表添加一个新行。我们指定表名 (employees) 和我们要将数据插入的列 (name、department)。 VALUES 关键字后跟我们要插入的实际数据,用括号括起来。
为了验证数据是否已正确插入,我们可以使用 SELECT 语句查询 employees 表。
SELECT * FROM employees;
这将显示 employees 表中的所有行和列。你应该看到我们刚刚插入的三个员工记录。输出应该类似于这样:
id | name | department
----+---------------+------------
1 | Alice Smith | Sales
2 | Bob Johnson | Marketing
3 | Charlie Brown | Engineering
(3 rows)

你现在已经成功地将数据插入到 PostgreSQL 表中。你可以根据需要继续插入更多记录。
最后,通过键入以下内容退出 psql shell:
\q
这将使你返回到终端。
使用 SELECT 查询数据
在这一步中,我们将学习如何使用 SELECT 语句从 PostgreSQL 的表中查询数据。 SELECT 语句是从数据库中检索信息的基础。我们将介绍基本语法、过滤和排序,以帮助你掌握数据检索。
首先,确保你已连接到数据库。如果你尚未连接,请打开终端并执行以下命令:
sudo -u postgres psql
让我们学习如何选择特定的列。假设我们只想检索 name 和 department 列。
SELECT name, department FROM employees;
这个语句将只返回 employees 表中所有行的 name 和 department 列。输出应该类似于这样:
name | department
---------------+------------
Alice Smith | Sales
Bob Johnson | Marketing
Charlie Brown | Engineering
(3 rows)
现在,让我们添加一个 WHERE 子句来过滤结果。假设我们只想检索在 'Sales' 部门工作的员工。
SELECT name, department FROM employees WHERE department = 'Sales';
WHERE 子句指定了一个条件,只有满足该条件的行才会被包含在结果集中。在这种情况下,我们只选择 department 列等于 'Sales' 的行。输出应该是:
name | department
---------------+------------
Alice Smith | Sales
(1 row)
最后,让我们学习如何使用 ORDER BY 子句对结果进行排序。假设我们要检索所有员工,并按姓名升序排列。
SELECT name, department FROM employees ORDER BY name;
这个语句将返回 employees 表中的所有行,但结果将按 name 列的字母顺序排序。输出应该是:
name | department
---------------+------------
Alice Smith | Sales
Bob Johnson | Marketing
Charlie Brown | Engineering
(3 rows)
要按降序排列结果,你可以在列名后添加 DESC 关键字。
SELECT name, department FROM employees ORDER BY name DESC;
这将按反字母顺序对结果进行排序。
你现在已经学会了如何使用 SELECT 语句从 PostgreSQL 表中查询数据,包括如何选择特定列、使用 WHERE 子句过滤结果以及使用 ORDER BY 子句对结果进行排序。

最后,通过键入以下内容退出 psql shell:
\q
更新现有记录
在这一步中,我们将学习如何使用 UPDATE 语句更新 PostgreSQL 表中的现有记录。更新数据对于保持数据库信息的最新和准确至关重要。我们将介绍基本语法,并提供示例来帮助你理解这个过程。
首先,确保你已连接到数据库。如果你尚未连接,请打开终端并执行以下命令:
sudo -u postgres psql
让我们将 'Alice Smith' 的部门更新为 'Human Resources'(人力资源)。
UPDATE employees SET department = 'Human Resources' WHERE name = 'Alice Smith';
UPDATE 语句修改表中的现有行。 SET 子句指定要更新的列及其新值。 WHERE 子句指定要更新的行。在这种情况下,我们将 name 列等于 'Alice Smith' 的行的 department 列更新为 'Human Resources'。
为了验证更新是否成功,我们可以查询 employees 表。
SELECT * FROM employees WHERE name = 'Alice Smith';
这将显示 'Alice Smith' 的行,你应该看到 department 列已更新为 'Human Resources'。输出应该类似于这样:
id | name | department
----+---------------+------------------
1 | Alice Smith | Human Resources
(1 row)
你也可以一次更新多个列。例如,让我们将 Bob Johnson 的部门更新为 'Sales',并将他的姓名更新为 'Robert Johnson'。
UPDATE employees SET department = 'Sales', name = 'Robert Johnson' WHERE name = 'Bob Johnson';
这个语句更新了 name 列等于 'Bob Johnson' 的行的 department 和 name 列。
要验证更新,请再次查询 employees 表。
SELECT * FROM employees WHERE name = 'Robert Johnson';
输出应该是:
id | name | department
----+----------------+------------
2 | Robert Johnson | Sales
(1 row)
在使用 UPDATE 语句时要小心,尤其是在省略 WHERE 子句时。如果你省略 WHERE 子句,UPDATE 语句将更新表中的所有行。例如:
UPDATE employees SET department = 'Unknown';
这个语句会将 employees 表中每一行的 department 列设置为 'Unknown'。执行这样的语句时要非常小心。

你现在已经学会了如何使用 UPDATE 语句更新 PostgreSQL 表中的现有记录。
最后,通过键入以下内容退出 psql shell:
\q
删除记录
在这一步中,我们将学习如何使用 DELETE 语句从 PostgreSQL 表中删除记录。删除数据是从数据库中移除过时或不正确信息的重要操作。我们将介绍基本语法,并提供示例来帮助你理解这个过程。
首先,确保你已连接到数据库。如果你尚未连接,请打开终端并执行以下命令:
sudo -u postgres psql
让我们从 employees 表中删除 'Charlie Brown' 的记录。
DELETE FROM employees WHERE name = 'Charlie Brown';
DELETE FROM 语句从表中删除行。 WHERE 子句指定要删除的行。在这种情况下,我们删除 name 列等于 'Charlie Brown' 的行。
为了验证删除是否成功,我们可以查询 employees 表。
SELECT * FROM employees WHERE name = 'Charlie Brown';
这应该不返回任何行,表明 'Charlie Brown' 的记录已被删除。输出应该是:
id | name | department
----+------+------------
(0 rows)
你还可以通过使用更复杂的 WHERE 子句一次删除多行。例如,如果 'Marketing'(市场营销)部门有多个员工,你可以使用一个语句删除所有这些员工:
DELETE FROM employees WHERE department = 'Marketing';
在使用 DELETE 语句时,务必格外小心,尤其是在省略 WHERE 子句时。如果你省略 WHERE 子句,DELETE 语句将删除表中的所有行。例如:
DELETE FROM employees;
这个语句会删除 employees 表中的每一行,从而有效地清空该表。在执行这样的语句之前,请绝对确定你要删除所有行。
你现在已经学会了如何使用 DELETE 语句从 PostgreSQL 表中删除记录。

检查 employees 表以验证删除是否成功。
SELECT * FROM employees;
输出应该是:
id | name | department
----+------+------------
(0 rows)
最后,通过键入以下内容退出 psql shell:
\q
总结
在这个实验中,我们介绍了 PostgreSQL 中的基本数据操作,重点是将数据插入到表中。我们首先使用 psql 命令行工具连接到数据库。然后,我们创建了一个 employees 表,其中包含 id、name 和 department 列,并将 id 指定为主键,并具有自动递增功能。
最后,我们使用 INSERT INTO 语句将三个员工记录插入到 employees 表中,指定表名和要插入数据的列,以及每个记录的相应值。这演示了使用数据填充 PostgreSQL 表的基本语法。


