暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

最常见的 MySQL 查询

原创 CiciLee 2022-08-26
437

MySQL 查询通常编写一次,然后包装在类函数中以最大程度地减少代码重复。 本文列出了 MySQL 中最常用的 10 个查询。

查询本质上是对从数据库表或表组合中检索信息的请求。 可以编写许多查询语言来执行一系列简单到复杂的查询。 查询将根据请求查找的特定数据过滤某些标准。 它还可以自动执行数据管理任务并进行计算。 本指南讨论了 10 个最常见的 MySQL 查询。

让我们使用这些演示数据库来帮助我们进一步了解每个查询的功能。
图片.png
图片.png

全选

一个简单的 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

);
复制

预期的表格结果:
图片.png

运行 CREATE TABLE 命令并使用列标题填充它后,上述查询会在数据库中创建一个“EmployeeInfo”表。 本质上,每一列都会返回 NULL,因为我们没有插入任何特定的值。 这导致我们进入下一个查询,INSERT INTO。

插入查询

这是将值插入到表中的一行或多行新记录中的最常见查询。 我们能够用一些示例数据填充 EmployeeInfo 表;

代码:

INSERT INTO EmployeeInfo (EmployeeID,Department,Age)
VALUES 
(1002, HR , 46),
(1003, Finance , 28),
(1004, IT , 39);
复制

表结果:

员工信息
图片.png

编写 INSERT INTO 查询时,VALUES 命令必须是完整语句的一部分。

更新查询

此关键字用于更改表中的一个或多个现有列。 使用此查询将根据某些条件使用新数据更新表记录。

员工信息
图片.png

代码:

UPDATE EmployeeInfo
SET Age = 22
WHERE EmployeeID = 1003;
复制

表结果:

员工信息
图片.png

在 UPDATE 命令之后,使用关键字 SET 始终指定您选择修改的列,然后准确说明您需要将更新的数据应用于何处。

从查询中删除

要根据一个或多个条件从表中删除记录,您需要使用 DELETE FROM 语句。 使用条件时,它会限制受查询影响的行数。

代码:

DELETE FROM Employees
WHERE Name = ‘Lizzy’;
复制

表结果:

雇员
图片.png

如文章前面所述; 使用 WHERE 条件可以准确确定您请求过滤和执行数据的位置。 该查询是从员工表中删除与名称“Lizzy”匹配的每条记录。

使用 GROUP BY, HAVING 子句

GROUP BY 子句通常与聚合函数一起使用。 使用此关键字将按一列或多列将结果集组合在一起。

HAVING 关键字用于过滤该结果集。 理想情况下,您会认为应该使用 WHERE 子句,但是,HAVING 子句引入了聚合条件。

员工信息
图片.png

代码:

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:返回选定列中所有值的总和。

员工信息
图片.png

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(左)
图片.png

员工信息 – 表 #2(右)
图片.png

内连接代码:

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论