什么是查询?数据库查询解释

what-is-a-query.webp

在标准英语中,查询query意味着对信息的请求。在计算机编程中,它指的是同一件事,只是信息是从数据库中检索的。

但是,编写查询需要一组预定义的代码才能使数据库理解指令。这个概念也被称为查询语言。

虽然数据库管理的标准语言是结构化查询语言 (SQL),但其他简化数据库通信的查询语言包括AQLDatalogDMX

重要的!请注意,SQL与MySQL不同——前者是查询语言,而后者是使用该语言的软件。

本文将解释查询的工作原理、查询示例,并介绍将它们写入数据库的步骤。

什么是查询?

数据库查询是对来自数据库的数据的请求。请求应该来自数据库表或使用称为查询语言的代码的表组合。这样,系统可以相应地理解和处理查询。

查询如何工作?

假设您想在咖啡店点一份美式咖啡。你提出请求时说:“我可以来一杯美式咖啡吗?”。咖啡师会理解您要求并给您订购的物品。

查询的工作方式相同——它为代码增加了意义,允许系统相应地理解和执行操作。无论是 SQL 还是任何其他查询语言,只要用户和数据库使用相同的语言,就可以交换信息。

同时,设计良好的数据库将数据存储在多个表中。它们由保存数据属性的列以及信息行或记录组成。然后,查询有助于从不同的表中检索数据,排列它们,并根据命令显示它们。

查询可以是选择、操作或两者的组合。选择查询可以从数据源中检索信息,而操作查询用于数据操作,例如添加、更改或删除数据。

高级用户还可以使用查询命令来执行各种编程任务,从创建MySQL用户和授予权限到更改MySQL数据库中的WordPress URL

以下是一些最常见的查询命令及其功能:

  • SELECT – 从数据库中获取数据。它是最流行的命令之一,因为每个请求都以选择查询开始。
  • AND – 组合来自一个或多个表的数据。
  • CREATE TABLE – 构建不同的表并指定其中每列的名称。
  • ORDER BY – 按数字或字母顺序对数据结果进行排序。
  • SUM – 汇总特定列中的数据。
  • UPDATE – 修改表中的现有行。
  • INSERT – 向现有表中添加新数据或行。
  • WHERE——过滤数据并根据设定的条件获取其值。

如需更多变体,请结合上面的一些命令。例如,将SELECT查询与ANDSUM等其他命令配对以聚合数据或组合结果。

除了使用查询语言从数据库中请求信息外,其他方法包括:

  • 使用可用参数。默认情况下,数据库软件具有用户可以根据需要定义的参数列表。这些参数处理用户定义函数 (UDF)存储过程 (SP)之间的信息交换。
  • 示例查询 (QBE)。关系数据库使用图形查询语言。系统将显示一个代码模板,您可以在其中编写和指定数据的字段和值。因此,用户可以填写空白区域,而不是编写完整的SQL语句。
  • 安装数据库插件。初学者的理想解决方案 – 插件让用户只需单击几下即可执行各种数据库任务,包括查询。此外,一些插件带有优化功能,以确保最佳性能。

除了数据库,搜索引擎还可以查询和检索信息。但是,这两种技术中的术语查询不同。

网络搜索查询是指用户在搜索引擎中键入的关键字,而数据库查询是请求信息的特定动作。

现在您已经了解了查询的基本原理,让我们研究一下您在查询数据库时可能会遇到的几个标准术语:

  • 查询字符串– URL的一部分,用于将请求从Web传递到数据库。
  • 查询参数– 附加到URL末尾的元素,用于指定对数据库的特定查询。
  • 查询折叠– 是指启用Power Query以转换复杂计算以进行查询优化的过程。
  • 查询包含——当一个查询包含在另一个查询中时发生,如果它独立于存储的数据值。

查询语言

如前所述,在处理查询时选择数据库及其语言至关重要。除了SQL之外,还有另一种类型的数据库,称为NoSQL(Not Only Structured Query Language)。两者的主要区别在于数据结构。

SQL数据库是关系型数据库,并使用需要您指定数据结构的预定义模式。另一方面,NoSQL数据库是非关系型的,并且具有用于非结构化数据的动态模式。

无论如何,SQL和NoSQL都提供了适用的选项。SQL数据库是符合ACID的数据结构的绝佳选择。相反,如果您有非结构化文档、键值或图形,那么NoSQL数据库可能是理想的选择。

查询示例

在深入研究示例之前,以下是使用查询的主要好处:

  • 同时查看多个表中的数据。
  • 过滤仅包含某些字段和某些条件的记录。
  • 自动执行数据管理任务并执行计算。

现在,假设您从调查中收集了一些数据。以下是您的数据片段。请注意,对于此示例,我们将使用SQL数据库。

数据来源:参与者(表名)

ID 姓名 性别 年龄 职业
1 约翰 男性 17 学生
2 彼得 男性 26 失业者
3 玛格丽特 女性 34 老师
4 莉亚 女性 34 失业者

从“参与者”表中仅选择“姓名”和“职业”列

此示例向您展示如何创建仅返回NameOccupation值的选择查询。SQL语句应如下所示:

SELECT Name, Occupation FROM Participant

上面的语句过滤表中的特定数据。它将生成以下结果表:

姓名 职业
约翰 学生
彼得 失业者
玛格丽特 老师
莉亚 失业者

要从表中选择其他类型的数据,请相应地更改变量。

删除失业受访者的数据

DELETE查询用于从特定表中删除现有记录。在此示例中,我们将使用以下语句删除失业记录:

DELETE FROM Participant WHERE Occupation = ‘Unemployed’

点击回车,这将删除相应的记录并返回以下输出:

ID 姓名 性别 年龄 职业
1 约翰 男性 17 学生
3 玛格丽特 女性 34 老师

插入包含名为Mario的参与者的新行

在更广泛的场景中,INSERT INTO查询通过MySQLiPHP Data Object将数据插入MySQL数据库。但是,此示例将展示如何使用查询向数据库表中添加新行。

有两种不同的方法可以合并此SQL语句:

  1. 如果要添加新值和字段,请指定所有元素。因此,该语句将如下所示:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  1. 如果您只是向所有现有列添加新值,请使用以下语句:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

将玛格丽特的职业改为“校长”

要修改表中的现有记录,请使用UPDATE查询。同时,要指定要更新的行,请使用WHERE查询。

在这种情况下,我们将把Margareth的职业编辑为Headmaster。因此,SQL语句将是:

UPDATE Participant SET Occupation = ‘Headmaster’ WHERE ID = ‘3’

运行查询以将第3行更新为指定值并显示以下输出:

ID 姓名 性别 年龄 职业
1 约翰 男性 17 学生
2 彼得 男性 26 失业者
3 玛格丽特 女性 34 校长
4 莉亚 女性 34 失业者

小结

查询可以是选择查询或操作查询——选择查询选择部分数据,而操作查询操作检索到的数据。

查询还可以结合使用这两种操作来执行更多不同的任务,例如,查看、插入、修改或删除数据,以及计算和组合来自多个表的数据。

数据库查询表明,操作数据并不一定很复杂。大多数查询语言都很直观,一旦您了解了一些基本规则,就很容易学习。对于那些不喜欢编码的人,您可以使用数据库插件或Query by example作为替代方案。

我们希望这篇文章对数据库查询及其工作原理有更多的了解。

评论留言