程序员社区

MySQL系列教程 --- 35、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) or * 它用于指定要在结果集中返回的一列或多列。星号 (*) 返回表的所有字段。
table_name(s) 它是我们要从中获取数据的表的名称。
WHERE 它是一个可选条款。它指定返回结果集中匹配记录的条件。
GROUP BY 它是可选的。它从多条记录中收集数据,并按一列或多列对它们进行分组。
HAVING 它是可选的。它与 GROUP BY 子句一起使用并仅返回条件为 TRUE 的那些行。
ORDER BY 它是可选的。它用于对结果集中的记录进行排序。
OFFSET 它是可选的。它指定首先返回到哪一行。默认情况下,它从零开始。
LIMIT 它是可选的。它用于限制结果集中返回的记录数。

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

MySQL SELECT 语句示例:

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

file

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

mysql> SELECT Name FROM employee_detail;  

我们将得到以下输出,其中我们只能看到一列记录。

file

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

mysql> SELECT Name, Email, City FROM employee_detail;  

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

file

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

mysql> SELECT * FROM employee_detail;  

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

file

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

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

它将给出以下输出:

file

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

表:customer

file

表:orders

file

执行以下 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;  

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

file

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 35、MySQL SELECT(查询) 语句详解

一个分享Java & Python知识的社区