

# 了解如何从 SQL 转向 NoSQL
<a name="SQLtoNoSQL"></a>

如果您是应用程序开发人员，则可能在使用关系数据库管理系统 (RDBMS) 和结构化查询语言 (SQL) 方面有一些经验。在您开始使用 Amazon DynamoDB 时，您既会遇到许多相似之处，也会遇到许多不同之处。*NoSQL* 是一个术语，用于描述高度可用的、可扩展的并且已针对高性能进行优化的非关系数据库系统。有别于关系模型，NoSQL 数据库（如 DynamoDB）使用替代模型进行数据管理，例如键-值对或文档存储。有关更多信息，请参阅 [NoSQL 是什么?](https://aws.amazon.com/nosql)。

Amazon DynamoDB 支持 [PartiQL](https://partiql.org/)，后者一种与 SQL 兼容的开源查询语言，使您可以轻松、高效地查询数据，无论数据存储在何处或以何种格式存储。使用 PartiQL，您可以轻松处理关系数据库中的结构化数据、采用开放数据格式的半结构化和嵌套数据，甚至可以处理允许不同行中使用不同属性的 NoSQL 或文档数据库中的无模式数据。有关更多信息，请参阅 [PartiQL 查询语言](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html)。

下节介绍常见数据库任务，并将 SQL 语句与其等效 DynamoDB 操作进行比较和对比。

**注意**  
本部分中的 SQL 示例可与 MySQL RDBMS 兼容。  
本节中的 DynamoDB 示例显示 DynamoDB 操作的名称以及该操作的参数（采用 JSON 格式）。

**Topics**
+ [在关系（SQL）和 NoSQL 之间进行选择](SQLtoNoSQL.WhyDynamoDB.md)
+ [关系（SQL）数据库和 DynamoDB 在访问方式方面的差异](SQLtoNoSQL.Accessing.md)
+ [关系（SQL）数据库和 DynamoDB 在创建表方面的差异](SQLtoNoSQL.CreateTable.md)
+ [从关系（SQL）数据库与从 DynamoDB 获取表信息方面的差异](SQLtoNoSQL.GetTableInfo.md)
+ [关系（SQL）数据库和 DynamoDB 在向表写入数据方面的差异](SQLtoNoSQL.WriteData.md)
+ [关系（SQL）数据库和 DynamoDB 在从表中读取数据方面的差异](SQLtoNoSQL.ReadData.md)
+ [关系（SQL）数据库和 DynamoDB 在管理索引方面的差异](SQLtoNoSQL.Indexes.md)
+ [关系（SQL）数据库和 DynamoDB 在修改表中的数据方面的差异](SQLtoNoSQL.UpdateData.md)
+ [关系（SQL）数据库和 DynamoDB 在从表中删除数据方面的差异](SQLtoNoSQL.DeleteData.md)
+ [关系（SQL）数据库和 DynamoDB 在删除表方面的差异](SQLtoNoSQL.RemoveTable.md)