Skip to main content

MySQL SELECT FROM语句

MySQL SELECT语句简介

SELECT语句允许您从一个或多个表中选择数据。要在MySQL中编写SELECT语句,可以使用以下语法:

SELECT select_list
FROM table_name;

在此语法中:

  • 首先,在select关键字之后指定一个或多个要从中选择数据的列。如果select_list有多个列,则需要用逗号(,)分隔它们。
  • 其次,在from关键字之后指定要从中选择数据的表的名称。

分号(;)是可选的。它表示一个语句的结束。如果有两个或多个语句,则需要使用分号(;)将它们分开,以便MySQL单独执行每个语句。

SELECT和FROM是关键字。一般来说,SQL关键字是大写的。但这不是强制性的。因为SQL不区分大小写,所以可以用小写、大写等形式编写SQL语句。例如:

select select_list
from table_name;

在执行SELECT语句时,MySQL在SELECT子句之前计算FROM子句。

MySQL SELECT语句示例

下面的例子将使用示例数据库中的employees表。

employees表有八列:employeeNumber、lastName、firstName、extension、email、officeCode、reportsTo和jobTitle。该表还有许多行,如下图所示:

A)使用MySQL SELECT语句从示例中查询某一列的数据

以下示例使用SELECT语句查询所有员工的姓氏:

SELECT lastName
FROM employees;

以下是部分输出:

+-----------+
| lastName |
+-----------+
| Murphy |
| Patterson |
| Firrelli |
| Patterson |
| Bondur |
| Bow |
| Jennings |
...

SELECT语句的查询结果称为结果集,因为查询结果是一系列数据行。

B)使用MySQL SELECT语句查询多列数据示例

以下示例使用SELECT语句获取员工的名字、姓氏和职务:

SELECT 
lastName,
firstName,
jobTitle
FROM
employees;

即使employees表有许多列,SELECT语句也会返回SELECT语句中指定的三列lastName、firstName和jobTitle的数据:

+-----------+-----------+----------------------+
| lastname | firstname | jobtitle |
+-----------+-----------+----------------------+
| Murphy | Diane | President |
| Patterson | Mary | VP Sales |
| Firrelli | Jeff | VP Marketing |
| Patterson | William | Sales Manager (APAC) |
| Bondur | Gerard | Sale Manager (EMEA) |
...

C)使用MySQL SELECT语句从所有列检索数据示例

如果要从employees表的所有列中选择数据,可以在select子句中指定所有列名,如下所示:

SELECT employeeNumber,
lastName,
firstName,
extension,
email,
officeCode,
reportsTo,
jobTitle
FROM employees;

或者,您可以使用星号(*),它是所有列的简写。例如:

SELECT * 
FROM employees;

该查询从employees表的所有列返回数据。

SELECT * 通常被称为"SELECT star"或"SELECT all",因为它从表的所有列中选择数据。平常我们只会查询自己能用到的列数据,所以一般不用SELECT *。

总结

  • 使用SELECT语句从表中选择数据。
  • 使用SELECT *从表的所有列中选择数据。