---
title: "针对 SQL 专家：XPath 和 XQuery 教程 (视频)"
date: "2021-08-04"
categories: 
  - "sql"
  - "xpath"
  - "xquery"
tags: 
  - "altova-online-training"
  - "databasespy"
  - "sql"
  - "xmlspy"
  - "xpath"
  - "xquery"
description: 学习 XPath 和 XQuery 并不难——尤其是如果您已经熟悉 SQL。
---
Status: #blog

Tags:  #altova-online-training #databasespy #sql #xmlspy #xpath #xquery

Categories: [database + sql](/blog/zh/category/database-sql.md) | [xpath+xquery](/blog/zh/category/xpathxquery.md) | [xpath+xquery](/blog/zh/category/xpathxquery.md)
# 适用于 SQL 专家的 XPath 和 XQuery 教程 (视频)

在加入 Altova 之前，我对 XPath 和 XQuery 都没有任何经验。我接手的第一个任务是尽快学习这两种查询语言，并制作一个简短的视频，作为一份...（此处原文不完整，无法翻译完整） [XPath 教程和 XQuery 教程](https://www.youtube.com/watch?v=NUTvFwXGN-M). 了解这两种语言的特性和功能至关重要，因为它们在 MobileTogether 中进行应用程序开发以及在 XMLSpy 中查询数据都扮演着关键角色。我首先利用自己扎实的 SQL 基础，通过先在 SQL 中构建查询，然后再研究如何在两种查询语言中实现相同的功能，从而学习 XPath 和 XQuery。

![](/blog/images/shutterstock_70728256.jpg)

<!--more-->

# XPath 和 XQuery 基础培训

Altova 提供了一个全面的、免费的培训资源库，涵盖了 [XPath](https://www.altova.com/zh/training/xpath3/) 和 [XQuery](https://www.altova.com/zh/training/xquery3/)。我发现，仅仅通过阅读这些培训文档，并将基本概念应用于与 [XMLSpy](https://www.altova.com/zh/xmlspy-xml-editor) 提供的示例 XML 文件，就能对这两种查询语言建立扎实的理解。我发现，仅仅使用 XPath 就能立即查询大型 XML 文件，这非常令人惊叹。然而，当我开始为 XPath 教程编写更高级的用例时，我开始意识到，使用 XQuery 构建的查询通常更加简洁，并且更容易阅读和调试。

当我进一步阅读了[Altova的培训资料](https://www.altova.com/zh/training-tutorials)时，我注意到XQuery的FLWOR表达式的语法与SQL查询的语法非常相似。XPath和XQuery的核心功能是将数据集转换成更小的表格。它们都能够使用复杂的条件和转换函数进行过滤。此外，这两种语言还可以从多个来源查询数据，并将这些数据整合在一起，从而根据多个规范化数据源中的数据生成结果集。考虑到这些语言之间存在的相似性，我意识到学习XPath和XQuery最简单的方法是从SQL开始。掌握了这些知识后，我开始着手学习。

![XQuery 教程：XQuery 与 SQL 的比较](/blog/images/xquery-editor.png)

# 将各部分整合起来

[MobileTogether](https://www.altova.com/zh/mobiletogether) 包含一个名为 MyCar 的示例移动应用程序，它非常适合作为 XQuery 教程的基础。该应用程序演示了如何向用户询问他们梦想中的汽车。数据由数据库中定义的一组参数提供；它非常理想，因为它包含大量记录，并且每个记录包含多个数据点。该数据集本身以 MDB 文件形式提供，我使用 [DatabaseSpy](https://www.altova.com/zh/databasespy) 打开该文件，并将其导出为 XML 格式。我修改了导出的文件，更改了一些字段，以提高我将要编写的查询的可读性。

由于这两个数据集完全相同，我能够生成SQL、XQuery和XPath表达式，这些表达式都能产生相同的结果。这让我能够快速掌握XPath和XQuery。我发现，我可以在几个小时内编写出复杂的查询语句。最终，我制作了下面的视频。这个视频涵盖了八种常见的查询场景，展示了这三种语言中等效的查询语句。

![通过SQL示例学习XQuery](/blog/images/sql-export.png)

# XPath 和 XQuery 培训视频

以下链接包含视频中使用的所有示例查询和数据集。如果您想在内置的 XPath/XQuery 编辑窗口中进行实验，可以申请一个 [免费试用版](https://www.altova.com/zh/xmlspy-xml-editor/download) 的 XMLSpy。该软件支持 XML 和 [JSON](https://www.altova.com/zh/xmlspy-xml-editor/json_editor) 文件。

**[示例数据和查询](https://github.com/altova/XPath-XQuery-SQL-Tutorial)**

![](https://www.youtube.com/watch?v=NUTvFwXGN-M)
