避免光标在 Python

Avoid Cursor In Python

我是 python 和 mysql 的新人。我正在尝试了解如何连接到 mysql 数据库。到目前为止,我知道我可以使用 pymysql 并创建一个游标对象。但是我真的想不通光标的位置。所以我有三个问题。
游标到底是什么,我为什么要使用它?
我听说最好避免光标。为什么?
mysql没有游标的数据库怎么用?(我搜索了没找到,我想是因为我不知道应该搜索什么)

您的问题相当宽泛,但确实提出了语言上的重要区别。 Python(以及其他与数据库交互的语言)使用游标的方式与 "avoid using cursors" 的含义不同。

当您 运行 一个 SELECT 查询时,结果集需要以某种方式返回给调用应用程序。许多接口为该结果集提供游标接口。那也行。这只是结果集的接口。

反对使用游标的警告是当您继续使用游标进行数据处理(除了格式化目的之外的任何目的)时。一个特别糟糕的情况是当你有多个游标进行处理的循环时。这种处理有一个缩写:RBAR,代表"row by agonizing row".

在Python中,您不需要游标界面进入数据库。您还可以直接将数据加载到数据结构中,例如使用 pandas/numpy 或其他模块的数据框。

如果你的目的是学习Python,那么Pandas/Numpy很好学。如果您的目的是学习 SQL,那么游标接口或加载到数据框中的模块可能都可以。