SQL 基础教程
SQL 连接
SQL 高级教程
SQL 参考资料

SQL SELECT 语句

在本教程中,您将学习如何使用 SQL 从数据库表中选择记录。

从表中选择数据

在上一章中,我们学习了如何在数据库表中插入数据。 现在是时候使用 SQL 查询从现有表中选择数据了。

SELECT 语句用于从一个或多个表中选择或检索数据。 您可以使用此语句一次性检索表中的所有行,也可以仅检索满足某个条件或条件组合的那些行。

语法

从表中选择数据的基本语法可以通过以下方式给出:

SELECT column1_name, column2_name, columnN_name FROM table_name;

这里,column1_name, column2_name, ... 是您要获取其值的数据库表的列或字段的名称。 但是,如果要获取表中所有可用列的值,只需使用以下语法:

SELECT * FROM table_name;

让我们将这些陈述付诸实际使用。 假设我们的数据库中有一个名为 employees 的表,其中包含以下记录:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

从表中选择所有行

以下语句将返回 employees 表中的所有行。

SELECT * FROM employees;

执行后,输出将如下所示:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

如您所见,它返回 employees 表中的所有行和列。

提示:星号 (*) 是一个通配符,表示一切。 例如,上面示例的 SELECT 语句中的星号字符是 employees 表中所有列的简写替代。

从表中选择列

如果您不需要所有数据,则可以选择特定列,如下所示:

SELECT emp_id, emp_name, hire_date, salary
FROM employees;

执行上述语句后,您将获得如下输出:

+--------+--------------+------------+--------+
| emp_id | emp_name     | hire_date  | salary |
+--------+--------------+------------+--------+
|      1 | Ethan Hunt   | 1995-10-30 |   5000 |
|      2 | Tony Montana | 1990-07-15 |   6500 |
|      3 | Sarah Connor | 2011-04-13 |   5600 |
|      4 | Rick Deckard | 2005-10-18 |   7200 |
|      5 | Martin Blank | 1996-05-24 |   8000 |
+--------+--------------+------------+--------+

正如您所看到的,这次结果集中没有 dept_id 列。 在下一章中,我们将学习如何根据条件从表中选择记录。

Advertisements