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语句示例:
让我们了解 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、。在这里,我们将
SUM函数与 SELECT命令中的
HAVING 子句以获取员工姓名,城市和总工作时间。另外,它使用
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语句,该语句使用
内部联接查询:
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;
成功执行查询后,我们将获得如下输出: