MySQL SELECT 语句

MySQL SELECT 语句

MySQL 中的 SELECT 语句用于从一个或多个表中获取数据。 我们可以使用这个语句检索所有字段或指定的字段,并匹配指定的条件。 该语句还可以与各种脚本语言一起使用,例如 PHP 和 Ruby 等等。

SELECT 语句语法

这是最常用的 SQL 查询。从表中提取数据的通用语法如下所示:

SELECT field_name1, field_name 2,... field_nameN 
FROM table_name1, table_name2...
[WHERE condition]
[GROUP BY field_name(s)]
[HAVING condition] 
[ORDER BY field_name(s)]
[OFFSET M ][LIMIT N];

所有字段的语法:

SELECT * FROM tables [WHERE conditions]
[GROUP BY fieldName(s)]
[HAVING condition] 
[ORDER BY fieldName(s)]
[OFFSET M ][LIMIT N];

参数解释

SELECT语句使用以下参数:

参数名称 描述
field_name(s) 或 * 用于指定要在结果集中返回的一个或多个列。* 返回表的所有字段。
table_name(s) 我们希望提取数据的表的名称。
WHERE 可选语句。它指定了在结果集中返回匹配记录的条件。
GROUP BY 可选语句。它从多个记录中收集数据,并按一个或多个列进行分组。
HAVING 可选语句。它与 GROUP BY 子句配合使用,仅返回满足条件的行。
ORDER BY 可选语句。用于对结果集中的记录进行排序。
OFFSET 可选语句。指定从哪一行开始返回。默认情况下,从零开始。
LIMIT 可选语句。用于限制返回的记录数。

注意:需要注意的是,MySQL总是先评估FROM子句,然后再评估SELECT子句。

MySQL SELECT语句示例:

让我们通过各种示例来了解SELECT命令在MySQL中的工作原理。假设我们有一个名为 employee_detail 的表,其中包含以下数据:

MySQL SELECT 语句

1. 如果我们想从表中检索 单个列 ,我们需要执行以下查询:

mysql> SELECT Name FROM employee_detail;

我们将获得如下输出,可以看到只有一列记录。

MySQL SELECT 语句

2. 如果我们想要查询表中的多列数据,我们需要执行以下查询:

mysql> SELECT Name, Email, City FROM employee_detail;

我们将获得以下输出,可以看到员工的姓名、电子邮件和城市。

MySQL SELECT 语句

3. 如果我们想要从表的 所有列 中获取数据,我们需要使用带有select语句的所有列名。指定所有列名对用户来说不方便,所以MySQL使用 星号 (*)来检索所有列数据,如下所示:

mysql> SELECT * FROM employee_detail;

我们将获得以下输出,在这里我们可以看到表格的所有列。

MySQL SELECT 语句

4. 在这里,我们使用具有 SUM函数HAVING 子句的SELECT命令来获取员工姓名、城市和总工作小时数。此外,它还使用 GROUP BY 子句按Name列对它们进行分组。

SELECT Name, City, SUM(working_hours) AS "Total working hours"  
FROM employee_detail  
GROUP BY Name  
HAVING SUM(working_hours) > 5;

它将产生以下输出:

MySQL SELECT 语句

5. MySQL SELECT语句还可以通过使用 JOIN语句 从多个表中检索记录。假设我们有一个名为 “customer”“orders” 的表,包含以下数据:

表:customer

MySQL SELECT 语句

表格:订单

MySQL SELECT 语句

执行以下SQL语句,使用 INNER JOIN 查询, 返回两个表中匹配的记录:

SELECT cust_name, city, order_num, order_date
FROM customer INNER JOIN orders 
ON customer.cust_id = orders.order_id
WHERE order_date < '2020-04-30'
ORDER BY cust_name;

查询成功执行后,我们将得到以下输出:

MySQL SELECT 语句

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程