在标准英语中,查询query意味着对信息的请求。在计算机编程中,它指的是同一件事,只是信息是从数据库中检索的。
但是,编写查询需要一组预定义的代码才能使数据库理解指令。这个概念也被称为查询语言。
虽然数据库管理的标准语言是结构化查询语言 (SQL),但其他简化数据库通信的查询语言包括AQL、Datalog和DMX。
重要的!请注意,SQL与MySQL不同——前者是查询语言,而后者是使用该语言的软件。
本文将解释查询的工作原理、查询示例,并介绍将它们写入数据库的步骤。
什么是查询?
数据库查询是对来自数据库的数据的请求。请求应该来自数据库表或使用称为查询语言的代码的表组合。这样,系统可以相应地理解和处理查询。
查询如何工作?
假设您想在咖啡店点一份美式咖啡。你提出请求时说:“我可以来一杯美式咖啡吗?”。咖啡师会理解您的要求并给您订购的物品。
查询的工作方式相同——它为代码增加了意义,允许系统相应地理解和执行操作。无论是 SQL 还是任何其他查询语言,只要用户和数据库使用相同的语言,就可以交换信息。
同时,设计良好的数据库将数据存储在多个表中。它们由保存数据属性的列以及信息行或记录组成。然后,查询有助于从不同的表中检索数据,排列它们,并根据命令显示它们。
查询可以是选择、操作或两者的组合。选择查询可以从数据源中检索信息,而操作查询用于数据操作,例如添加、更改或删除数据。
高级用户还可以使用查询命令来执行各种编程任务,从创建MySQL用户和授予权限到更改MySQL数据库中的WordPress URL。
以下是一些最常见的查询命令及其功能:
- SELECT – 从数据库中获取数据。它是最流行的命令之一,因为每个请求都以选择查询开始。
- AND – 组合来自一个或多个表的数据。
- CREATE TABLE – 构建不同的表并指定其中每列的名称。
- ORDER BY – 按数字或字母顺序对数据结果进行排序。
- SUM – 汇总特定列中的数据。
- UPDATE – 修改表中的现有行。
- INSERT – 向现有表中添加新数据或行。
- WHERE——过滤数据并根据设定的条件获取其值。
如需更多变体,请结合上面的一些命令。例如,将SELECT查询与AND或SUM等其他命令配对以聚合数据或组合结果。
除了使用查询语言从数据库中请求信息外,其他方法包括:
- 使用可用参数。默认情况下,数据库软件具有用户可以根据需要定义的参数列表。这些参数处理用户定义函数 (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 | 失业者 |
从“参与者”表中仅选择“姓名”和“职业”列
此示例向您展示如何创建仅返回Name和Occupation值的选择查询。SQL语句应如下所示:
SELECT Name, Occupation FROM Participant
上面的语句过滤表中的特定数据。它将生成以下结果表:
姓名 | 职业 |
约翰 | 学生 |
彼得 | 失业者 |
玛格丽特 | 老师 |
莉亚 | 失业者 |
要从表中选择其他类型的数据,请相应地更改变量。
删除失业受访者的数据
DELETE查询用于从特定表中删除现有记录。在此示例中,我们将使用以下语句删除失业记录:
DELETE FROM Participant WHERE Occupation = ‘Unemployed’
点击回车,这将删除相应的记录并返回以下输出:
ID | 姓名 | 性别 | 年龄 | 职业 |
1 | 约翰 | 男性 | 17 | 学生 |
3 | 玛格丽特 | 女性 | 34 | 老师 |
插入包含名为Mario的参与者的新行
在更广泛的场景中,INSERT INTO查询通过MySQLi和PHP Data Object将数据插入MySQL数据库。但是,此示例将展示如何使用查询向数据库表中添加新行。
有两种不同的方法可以合并此SQL语句:
1. 如果要添加新值和字段,请指定所有元素。因此,该语句将如下所示:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
2. 如果您只是向所有现有列添加新值,请使用以下语句:
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作为替代方案。
我们希望这篇文章对数据库查询及其工作原理有更多的了解。