技术文章和资源

技术文章(时间排序)

热门类别

Python PHP MySQL JDBC Linux

常见的 MySQL 查询

dbmsmysqldata analysis

为了减少代码冗余,MySQL 查询通常只编写一次,然后包装到类函数中。本文列出了前 10 个 MySQL 查询。

本质上,查询是从数据库表或数据库集合中检索数据的请求。可以编写各种查询语言来处理从简单到复杂的问题。根据需要查找的精确数据,查询将过滤特定参数。它还可以进行计算并自动化数据管理操作。本文介绍了 10 个最常用的 MySQL 查询。

让我们利用这些测试数据库来了解有关每个查询如何工作的更多信息。

EmployeeID

Name

Title

001

Hardik

CEO

002

Naman

CTO

003

Aadish

CFO

EmployeeID

Department

Age

001

Finance

19

002

Accounts

18

003

ERP

29

SELECT All

要从数据库检索并返回所有数据,请执行简单的 SELECT 查询。其语法可以表达如下;

SELECT *
FROM Employees;

Result

001

Hardik

CEO

002

Naman

CTO

003

Aadish

CFO

使用"*"指定您希望提供所有信息,以便选择表中存在的每一列。其次,要从数据库表中获取数据,请使用 FROM 关键字。最后,为了正确完成请求,请务必记住以分号";"结束句子。

SELECT Column

如果您只是希望从特定列而不是所有列中获取数据,则应使用字段名称代替星号 (*)。

代码

SELECT Title
FROM Employees;

Result

Title

CEO

CTO

CFO

从数据库中选择多个列时,应使用逗号分隔。相同;

SELECT Title, Name
FROM Employees;

WHERE 子句

在 SELECT 查询中使用 WHERE 子句时,将过滤数据记录,然后将符合条件的记录作为结果提取。

代码

SELECT *
FROM Employees
WHERE EmployeeID = 001;

Result

001

Hardik

CEO

AND 关键字可用于分隔 WHERE 子句中的多个条件。

CREATE TABLE

此查询可用于创建一个包含您选择的列的全新表。添加名称时,请务必包含每列的数据类型。

代码

CREATE TABLE EmployeeInfo (

   EmployeeId INT,
   Department VARCHAR(25),
   Age NUMBER
);

预期的表结果

EmployeeID

Department

Department

NULL

NULL

NULL

执行 CREATE TABLE 命令并用列标题填充时,上述查询会在数据库中生成一个"EmployeeInfo"表。由于我们没有输入任何特定值,因此每列基本上都会返回 NULL。这将我们引向下一个查询,INSERT INTO。

INSERT INTO 查询

向数据库中一行或多行全新条目添加值的最典型查询就是这个。我们可以向 EmployeeInfo 数据库添加一些示例数据;

代码

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

表结果

EmployeeInfo

EmployeeID

Department

Age

1002

HR

46

1003

Finance

28

1004

IT

39

构建 INSERT INTO 查询时,VALUES 命令必须是整个语句的一部分。

UPDATE QUERY

可以使用此术语更改表中的当前列。此查询将根据条件向表记录添加新数据。

EmployeeInfo

EmployeeID

Department

Age

1002

HR

36

1003

Sales

21

1004

IT

39

代码

UPDATE EmployeeInfo
SET Age = 22
WHERE EmployeeID = 1003

表结果

EmployeeInfo

EmployeeID

Department

Age

1002

HR

36

1003

Sales

22

1004

IT

39

在 UPDATE 命令后使用术语 SET 始终指示要更改的列,然后准确指定要应用修改后的数据的位置。

DELETE FROM 查询

使用 DELETE FROM 命令根据一个或多个条件从数据库中删除记录。使用条件时,查询可以影响的行数会受到限制。

代码

DELETE FROM Employees
WHERE Name ="Naman";

表结果

Employees

EmployeeID

Name

Title

1002

HR

Executive

1004

Aadish

Software Engineer

使用 WHERE 条件允许您精确指定要过滤和执行数据的位置,如本文前面所述。此查询的目标是删除所有包含名称"Naman"的员工表记录。

使用 GROUP BY、HAVING 子句

聚合函数几乎通常使用 GROUP BY 子句。通过使用此术语,结果集将按一个或多个列分组。

使用关键字 HAVING 过滤结果集。在理想情况下,将使用 WHERE 子句,但 HAVING 子句对聚合施加了限制。

EmployeeInfo

EmployeeID

Department

Age

1002

HR

36

1003

Sales

21

1004

IT

39

代码

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 − 提供所选列中所有值的总和。

EmployeeInfo

EmployeeID

Department

Age

1002

HR

36

1003

Sales

21

1004

IT

39

COUNT 代码

SELECT 
COUNT(Department)
FROM EmployeeInfo;

结果

COUNT(Department)

3

AVG 代码

SELECT AVG(Age)
FROM EmployeeInfo;
Results:

AVG(Age)

32

SUM 代码

SELECT SUM(Age)
FROM EmployeeInfo;
Results:

SUM(Age)

96

连接

当表之间存在链接列时,使用连接将至少两个表中的行组合在一起。INNER、FULL 和 LEFT 连接是最常用的连接。

如果连接条件为真,则使用 INNER 连接来整合来自多个表的行。

当左表或右表的记录中有匹配项时,FULL 连接选项将返回所有行。

使用 LEFT 连接时,将检索左表中的所有行以及右表中的任何匹配记录。

Employees - 表 #1(左)

EmployeeID

Name

Title

1002

Hardik

Executive

1003

Naman

Manager

1004

Aadish

Software Engineer

EmployeeInfo – 表 #2(右)

EmployeeID

Department

Age

1002

HR

36

1003

Sales

21

1004

IT

39

INNER JOIN 代码

SELECT Employees.Title, EmployeeInfo.Department
FROM Employees 
INNER JOIN EmployeeInfo 
ON Employees.EmployeeID = Employees.EmployeeID;

结果

Title          Department
Executive      HR     
Manager        Sales     
Software       Engineer IT

FULL JOIN 代码

SELECT * 
FROM Employees  
FULL JOIN EmployeeInfo  
ON Employees.EmployeeID = Employees.EmployeeID;

LEFT JOIN 代码

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 查询是最常执行的数据库管理任务。

结论

在本部分中,我们了解了 SQL 中使用的不同查询,以减少代码冗余并使体验更加用户友好。下表总结了一些常用的查询

查询

语法

函数

SELECT ALL

SELECT *

要从数据库检索并返回所有数据,请执行简单的 SELECT 查询

SELECT COLUMN

SELECT Title

如果您只希望从特定列而不是所有列中获取数据,则应使用字段名称。

WHERE 子句

WHERE EmployeeID = 001;

在 SELECT 查询中使用 WHERE 子句时,将过滤数据记录,然后将提取符合条件的记录作为结果。

CREATE TABLE

CREATE TABLE

EmployeeInfo (XYZ);

此查询可用于创建一个包含您选择的列的全新表。

INSERT INTO

INSERT INTO EmployeeInfo

(EmployeeID, Department,Age)

VALUES

(XYZ),

(ABC);

向数据库中一行或多行全新条目添加值的最典型查询是此查询。

UPDATE

UPDATE EmployeeInfo

SET M=XX

WHERE EmployeeID=XXXX;

此查询将根据条件向表记录添加新数据。


相关文章