Pythonではコネクションを開いた後、具体的なSQL文の実行にCursorオブジェクトを利用する。 「カーソルとか余計なものを使わわずに、シンプルに実行したい」と考えてもCursorオブジェクトを使え。 PythonのCursorはSQLで一般に言うカーソルとは別物である。 SQLの実行にはCursorオブジェクトが必要である。
コネクションのオブジェクトから直にSQLを実行できるかのようなメソッドが生えているが、
その実態はCursorを内部で新規作成し、そのCursorのexecute()
を呼び出しているだけである。
プログラム中で1度しかSQLを実行しないのであれば有効な書き方かもしれないが、
複数回実行するならCursorオブジェクトが都度生成されることを避けるため
Connection.cursor()
でCursorオブジェクトを生成して利用せよ。
sqlite3 --- SQLite データベースに対する DB-API 2.0 インターフェース — Python 3.10.12 ドキュメント