MySQL 查询通常编写一次,然后包装在类函数中以最大程度地减少代码重复。 本文列出了 MySQL 中最常用的 10 个查询。
查询本质上是对从数据库表或表组合中检索信息的请求。 可以编写许多查询语言来执行一系列简单到复杂的查询。 查询将根据请求查找的特定数据过滤某些标准。 它还可以自动执行数据管理任务并进行计算。 本指南讨论了 10 个最常见的 MySQL 查询。
让我们使用这些演示数据库来帮助我们进一步了解每个查询的功能。
全选
一个简单的 SELECT 查询用于获取和发回来自数据库的所有数据。 它的语法可以这样写;
代码:
SELECT * FROM Employees;
复制
结果:
1002 Webster W. Executive 1003 Lizzy S. Manager 1004 Oliver T. Software Engineer
复制
为了选择表中所有可用的列,您必须使用“*”表示您需要返回所有可能的信息。 其次,声明 FROM 关键字以便从数据库表中接收数据。 最后,永远记得用分号“;”结束你的陈述。 正确完成请求。
选择列
要从特定列而不是所有内容中获取数据,您只需声明字段名称而不是使用星号 (*)。
代码:
SELECT Title FROM Employees;
复制
结果:
Title Executive Manager Software Engineer
复制
从数据库中选择多个列时,它们应该用逗号分隔。 像这样:
SELECT Title, Name FROM Employees;
复制
WHERE 子句
在 SELECT 查询中使用 WHERE 子句时,将过滤数据记录,然后提取与条件匹配的记录作为结果。
代码:
SELECT * FROM Employees WHERE EmployeeID = 1004 ;
复制
结果:
1004 Oliver T. Software Engineer
复制
WHERE 子句可以有多个可以使用 AND 关键字分隔的条件。
创建表
此查询可用于使用您首选的列选择生成一个新表。 添加列名时,请务必指定其数据类型。
代码:
CREATE TABLE EmployeeInfo ( EmployeeId INT, Department VARCHAR(25), Age NUMBER );
复制
预期的表格结果:
运行 CREATE TABLE 命令并使用列标题填充它后,上述查询会在数据库中创建一个“EmployeeInfo”表。 本质上,每一列都会返回 NULL,因为我们没有插入任何特定的值。 这导致我们进入下一个查询,INSERT INTO。
插入查询
这是将值插入到表中的一行或多行新记录中的最常见查询。 我们能够用一些示例数据填充 EmployeeInfo 表;
代码:
INSERT INTO EmployeeInfo (EmployeeID,Department,Age) VALUES (1002, HR , 46), (1003, Finance , 28), (1004, IT , 39);
复制
表结果:
员工信息
编写 INSERT INTO 查询时,VALUES 命令必须是完整语句的一部分。
更新查询
此关键字用于更改表中的一个或多个现有列。 使用此查询将根据某些条件使用新数据更新表记录。
员工信息
代码:
UPDATE EmployeeInfo SET Age = 22 WHERE EmployeeID = 1003;
复制
表结果:
员工信息
在 UPDATE 命令之后,使用关键字 SET 始终指定您选择修改的列,然后准确说明您需要将更新的数据应用于何处。
从查询中删除
要根据一个或多个条件从表中删除记录,您需要使用 DELETE FROM 语句。 使用条件时,它会限制受查询影响的行数。
代码:
DELETE FROM Employees WHERE Name = ‘Lizzy’;
复制
表结果:
雇员
如文章前面所述; 使用 WHERE 条件可以准确确定您请求过滤和执行数据的位置。 该查询是从员工表中删除与名称“Lizzy”匹配的每条记录。
使用 GROUP BY, HAVING 子句
GROUP BY 子句通常与聚合函数一起使用。 使用此关键字将按一列或多列将结果集组合在一起。
HAVING 关键字用于过滤该结果集。 理想情况下,您会认为应该使用 WHERE 子句,但是,HAVING 子句引入了聚合条件。
员工信息
代码:
SELECT COUNT(Age), EmployeeID FROM EmployeeInfo GROUP BY EmployeeID HAVING COUNT(Age) > 21;
复制
结果:
COUNT(Age) EmployeeID 39 1004 36 1002
复制
聚合函数(SUM、AVG 和 COUNT)
有三个非常常见的聚合函数允许解释表中的数据或运行计算。
- COUNT:返回与指定列匹配的行数。
- AVG:返回一列的平均值
- SUM:返回选定列中所有值的总和。
员工信息
COUNT 的代码:
SELECT COUNT(Department) FROM EmployeeInfo;
复制
结果:
COUNT(Department): 3
复制
AVG 代码:
SELECT AVG(Age) FROM EmployeeInfo;
复制
结果:
AVG(Age): 32
复制
SUM 的代码
SELECT SUM(Age) FROM EmployeeInfo;
复制
结果:
SUM(Age): 96
复制
连接
连接用于根据表之间的相关列将来自至少两个表的行组合在一起。 最常见的连接做法是 INNER、FULL 和 LEFT。
- INNER Join – 如果连接条件为真,则合并来自不同表的行。
- FULL Join – 当左表或右表记录匹配时返回所有行。
- LEFT Join – 检索左表中的所有行和右表中的匹配记录。
员工 – 表 #1(左)
员工信息 – 表 #2(右)
内连接代码:
SELECT Employees.Title, EmployeeInfo.Department FROM Employees INNER JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
复制
结果:
Title Department Executive HR Manager Sales Software Engineer IT
复制
完全连接代码:
SELECT * FROM Employees FULL JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
复制
结果:
将从两个表中获取所有行和列,包括重复项,并将它们组合成一个完整的表。
左连接代码:
SELECT Employees.Name, EmployeeInfo.Age FROM Employees LEFT JOIN EmployeeInfo ON Employees.EmployeeID = Employees.EmployeeID;
复制
结果:
Name Age Webster W. 36 Lizzy S. 21 Oliver T. 39
复制
“Employee”表中的“EmployeeID”列指的是“EmployeeInfo”表中的“EmployeeID”,实质上是说EmployeeID列是两个表之间的关系。 在对较大的数据库进行排序时,连接可能会变得很棘手,但同时也非常有用。
用户和数据库能够通过本质上说相同的语言来成功地交换信息。 上面列出的查询是初学者和专家最常用的查询。 编写 MySQL 查询被认为是数据库管理领域中最常见的功能。
本文由 Kelsey Perkins 于 2022 年 4 月审查和更新。
原文标题:Top Common MySQL Queries
原文作者:Kelsey Perkins
原文地址:https://www.databasejournal.com/mysql/the-10-most-common-mysql-queries/#SELECT_Column