MySQL Select记录

MySQL 中的 SELECT 语句用于从一个或多个表中获取数据。我们可以使用该语句检索所有字段或符合指定条件的指定字段的记录。它还可以使用各种脚本语言,例如PHP、Ruby等等。

一、MySQL  SELECT语句的 语法

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];  

参数说明

参数名称 说明
field_name(s) 或 * 用于指定要在结果集中返回的一列或多列。星号 (*) 返回表的所有字段。
table_name 我们要从中获取数据的表的名称。
where 一个可选子句。它指定返回结果集中匹配记录的条件。
group by 可选的。它从多条记录中收集数据,并按一列或多列对它们进行分组。
having 可选的。它与 GROUP BY 子句一起使用,只返回条件为 TRUE 的行。
order by 可选的。它用于对结果集中的记录进行排序。
offset 可选的。它指定首先返回到哪一行。默认情况下,它从零开始。
limit 可选的。它用于限制结果集中返回的记录数。

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

二、MySQL  SELECT语句的 示例

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

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

mysql> SELECT Name FROM employee_detail;  

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

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

mysql> SELECT Name, Email, City FROM employee_detail;  

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

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

mysql> SELECT * FROM employee_detail;  

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

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

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

它将给出以下输出:

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

customer表:

orders表:

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

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

热门文章

优秀文章