2016-09-11 15 views
1

私はpythonとmysqlの新機能です。私はmysqlデータベースに接続する方法を理解しようとしています。これまでのところ、私はpymysqlを使用してカーソルオブジェクトを作成できることを知っています。しかし、私は本当にカーソルのポイントを把握することはできません。だから私は3つの質問があります。
カーソルは正確に何であり、なぜそれを使用する必要がありますか?
カーソルを避ける方が良いと聞いています。どうして?
どうすればカーソルなしでMySQLデータベースを使用することができますか?(私が検索し、何も見つからなかっました。私はその理由は私が検索すべきかわからないということだと思います)Pythonでカーソルを避ける

+1

http://stackoverflow.com/questions/6318126/why-do-you-need-to-create-a-cursor-when-querying-a-sqlite-database – iScrE4m

答えて

4

あなたの質問はかなり広いですが、それはありません言語の重要な違いを生み出します。 Python(データベースとインターフェースする他の言語と同様に)がカーソルを使用する方法と、「カーソルの使用を避ける」ことが意味するものには違いがあります。

SELECTクエリを実行すると、結果セットは何らかの形で呼び出し側アプリケーションに返される必要があります。多くのインタフェースは、この結果セットにカーソルインタフェースを提供します。それは結構です。これは単に結果セットへのインタフェースです。

カーソルを使用することに対する警告は、カーソルを使用してデータ処理(フォーマット以外の目的で)を続ける場合です。特に悪い状況は、複数のカーソルが処理されているループがある場合です。この種の処理には頭字語があります。RBARは「行を苦労させる行」を表します。

Pythonでは、データベースへのカーソルインタフェースは必要ありません。また、pandas/numpyなどのモジュールを使用してデータフレームなどのデータ構造にデータを直接ロードすることもできます。

あなたの目的がPythonを学ぶことであれば、Pandas/Numpyは学ぶのが良いです。あなたの目的がSQLを学ぶことであれば、カーソル・インターフェースか、データ・フレームにロードするモジュールのいずれかが問題ないでしょう。

+0

あなたが知っているsql、あなたの目的は、Pythonでデータベースを使用するより良い方法を学ぶことです、それはsqlalchemyを学ぶことは良いでしょう。 – zvone

関連する問題