ホームページ >バックエンド開発 >Python チュートリアル >Pythonを使用したSqliteの紹介
sqlite3
sqlite3
注:開始する前に、SQLに精通するのが最善です。あなたがそれに慣れていない場合は、単にSQL学習を参照できます。 コアポイント
sqlite3
モジュールは、挿入、更新、削除、またはステートメントの交換を実行する前に、トランザクションを開始します。ユーザーは、トランザクション中に行われた変更を保存するためにsqlite3
を設定することにより、トランザクションを明示的に処理できます。 commit()
isolation_level
None
sqliteとは何ですか? sqliteは、次の状況でうまく機能します
モジュールはSQLインターフェイスを提供し、少なくともSQLite 3.7.15が必要です。 sqlite3
sqlite3
sqlite3
1行目では、
ライブラリをインポートします。次に、<code class="language-python">import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()</code>コードブロックで、
を呼び出して、データベースへの接続を初期化します。すべてがうまくいかない場合、sqlite3
はtry/except
オブジェクトのインスタンスになります。 sqlite3.connect()
が失敗した場合、受信した例外を印刷し、データベースへの接続を閉じます。公式ドキュメントに記載されているように、各オープンSQLiteデータベースはconn
オブジェクトで表されます。 SQLコマンドを実行する必要があるたびに、Connection
オブジェクトにはtry
と呼ばれるメソッドがあります。データベーステクノロジーでは、カーソルはデータベース内のレコードを通過できる制御構造です。 Connection
Connection
さて、このコードを実行する場合、次の出力を取得する必要があります。
cursor()
という名前の新しいファイルが表示されます。このファイルは、
によって自動的に作成されます。<code>> Database created!</code>
レコードを作成、読み取り、変更database.db
この時点で、新しいテーブルを作成し、最初のエントリを追加し、Select、更新、ドロップなどのSQLコマンドを実行する準備ができています。 sqlite3
print("Database created!")
行の後、次のことを追加します
<code class="language-python">import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()</code>テーブルを作成し、
メソッドを呼び出します。これは、単一のSQLステートメントを実行するときに使用されます。 cursor.execute()
に電話して、保留中のトランザクションをデータベースに送信します。 conn.commit()
メソッドが呼び出されない場合、データベースの保留中の変更が失われます。最後に、commit()
メソッドを呼び出すことにより、データベースへの接続を閉じます。 conn.close()
の結果をcursor.execute()
:records
に変数に保存しましょう。
<code>> Database created!</code>これを行うと、すべてのレコード出力が標準出力に表示されます。
この時点で、
<code class="language-python"># 创建操作 create_query = '''CREATE TABLE IF NOT EXISTS student( id INTEGER PRIMARY KEY, name TEXT NOT NULL, surname TEXT NOT NULL); ''' cursor.execute(create_query) print("Table created!") # 插入和读取操作 cursor.execute("INSERT INTO student VALUES (1, 'John', 'Smith')") print("Insert #1 done!") cursor.execute("INSERT INTO student VALUES (2, 'Lucy', 'Jacobs')") print("Insert #2 done!") cursor.execute("INSERT INTO student VALUES (3, 'Stephan', 'Taylor')") print("Insert #3 done!") conn.commit() conn.close()</code>メソッドでは、実行する必要があるSQLコマンドを配置したことに気付いたかもしれません。別のSQLコマンド(更新やドロップなど)を実行する場合、Python構文は何も変更しません。
cursor.execute()
プレースホルダー
はプレースホルダーと呼ばれる巧妙な機能をいくつか持っています。プレースホルダーを使用すると、パラメーターの交換を使用できます。これにより、変数をクエリに挿入しやすくなります。 cursor.execute()
sqlite3
この例を見てみましょう:
<code class="language-python">records = cursor.execute("SELECT * FROM student") for row in records: print(row)</code>というメソッドを作成しました。このメソッドは、4つのパラメーターを受け入れます。最初のパラメーターは
インスタンスであり、他の3つはSQLコマンドで使用されます。 insert_command()
Connection
、command
、?
を呼び出すと、挿入ステートメントがstudent_id=1
になることを意味します。 name='Jason'
surname='Green'
insert_command
関数を呼び出すと、コマンドとプレースホルダーに置き換えるすべての変数を渡します。これからは、行をINSERT INTO student VALUES(1, 'Jason', 'Green')
テーブルに挿入する必要があるたびに、必要なパラメーターを使用して
execute()
トランザクションstudent
insert_command()
トランザクション定義が初めてではない場合でも、その重要性をすばやく確認します。トランザクションは、データベースで実行される一連の操作であり、論理的にユニットと見なされます。
pythonのsqlite3
モジュールは、ステートメントを実行、更新、削除、または置き換える前に、execute()
およびexecutemany()
を実行する前にトランザクションを開始します。これは、2つのことを意味します:
commit()
メソッドを呼び出すことに注意を払う必要があります。 commit()
を実行せずにConnection.close()
を呼び出すと、トランザクション中に行うすべての変更が失われます。 解決策?トランザクションを明示的に処理します。
どうですか?関数呼び出しを使用してsqlite3.connect(dbName, isolation_level=None)
の代わりに。 sqlite3.connect(dbName)
に設定することにより、None
次のコードは前のコードの書き直しですが、トランザクションを明示的に使用します:sqlite3
結論
<code class="language-python">import sqlite3 dbName = 'database.db' try: conn = sqlite3.connect(dbName) cursor = conn.cursor() print("Database created!") except Exception as e: print("Something bad happened: ", e) if conn: conn.close()</code>SQLiteとは何か、Pythonプロジェクトにどのように使用するか、高度な機能の一部がどのように機能するかをよく理解していただければ幸いです。トランザクションを明示的に管理することは、最初は少し難しい場合がありますが、確かにそれを最大限に活用するのに役立ちます。
を使用したPythonユニットテストから始めます
ステートメントを使用して、テーブルにデータを挿入します。プレースホルダー PythonでSQLiteトランザクションを使用する方法は? SQLiteでのトランザクションは、接続オブジェクトの の間に配置して、単一のトランザクションとして扱われるようにします。 sqlite3
http pythonリクエストの初心者向けガイド
Pythonを使用してSQLiteデータベースでテーブルを作成する方法は? Cursorオブジェクトのメソッドを使用してSQLコマンドを実行できます。テーブルを作成するには、
ステートメントを使用します。 sqlite3
またはconnect()
は、SQLインジェクションを避けるためにパラメーター化されたクエリに使用できます。 execute()
およびCREATE TABLE
メソッドを使用して管理されます。複数のSQLコマンドをINSERT INTO
以上がPythonを使用したSqliteの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。