目次
sqliteは、c言語で記述された埋め込みデータベースライブラリです。 MySQLやPostgreSQLなど、他のデータベーステクノロジーに精通している場合があります。これらの手法では、クライアントサーバーの方法を使用します。データベースはサーバーとしてインストールされ、クライアントを使用して接続します。 SQLiteは異なります。これは、プログラムにライブラリとして含まれているため、組み込みデータベースと呼ばれます。すべてのデータはファイルに保存されます(通常は.db拡張機能)。関数を使用してSQLステートメントを実行したり、データベースでその他のアクションを実行したりできます。
コードを書く時が来ました!最初の部分では、基本的なデータベースを作成します。最初にすべきことは、データベースを作成してそれに接続することです:
トランザクションの最も重要な利点は、データの整合性を確保することです。上記で紹介したこの例では、それは役に立たないかもしれませんが、複数のテーブルにより多くのデータを処理すると、トランザクションが影響を与えます。
メソッドを使用してSQLコマンドを実行できます。テーブルを作成するには、

Pythonを使用したSqliteの紹介

Feb 18, 2025 am 11:21 AM

An Introduction to SQLite with Python

この記事では、詳細なSQLiteデータベースとPythonでの使用について説明します。 Pythonのライブラリを介して操作する方法を学び、最後に、が提供する高度な機能のいくつかを調査して、作業を簡素化します。 sqlite3 sqlite3注:開始する前に、SQLに精通するのが最善です。あなたがそれに慣れていない場合は、単にSQL学習を参照できます。

コアポイント

SQLiteは、単純さと構成の容易さのために、Pythonアプリケーションで一般的に使用される軽量のファイルベースの関連データベース管理システムです。同時アクセスをサポートし、複数のプロセスまたはスレッドが同じデータベースにアクセスできるようにします。ただし、マルチユーザー機能がなく、MySQLやPostgreSQLなどの他のデータベーステクノロジーと同様にプロセスとして管理されていません。
    Pythonの
  • モジュールは、SQLiteをSQLiteで提供し、Pythonでプリインストールされています。ユーザーは、データベースを作成したり、データベースに接続したり、テーブルを作成したり、データを挿入したり、SQLコマンドを実行したりできます。モジュールはまた、プレースホルダーをサポートし、SQLコマンドのパラメーターの交換を可能にし、変数をクエリに簡単に挿入できるようにします。
  • SQLiteでのトランザクションは、データの整合性を確保するためのユニットとして扱われる一連のデータベース操作です。 Pythonのsqlite3モジュールは、挿入、更新、削除、またはステートメントの交換を実行する前に、トランザクションを開始します。ユーザーは、トランザクション中に行われた変更を保存するために
  • メソッドを呼び出し、データベースに接続するときに
  • からsqlite3を設定することにより、トランザクションを明示的に処理できます。 commit() isolation_level Nonesqliteとは何ですか?
sqliteのモットーは次のとおりです。「小さく、高速で、信頼性が高い。2つを選択してください。」

sqliteは、c言語で記述された埋め込みデータベースライブラリです。 MySQLやPostgreSQLなど、他のデータベーステクノロジーに精通している場合があります。これらの手法では、クライアントサーバーの方法を使用します。データベースはサーバーとしてインストールされ、クライアントを使用して接続します。 SQLiteは異なります。これは、プログラムにライブラリとして含まれているため、組み込みデータベースと呼ばれます。すべてのデータはファイルに保存されます(通常は.db拡張機能)。関数を使用してSQLステートメントを実行したり、データベースでその他のアクションを実行したりできます。

また、ファイルベースのストレージソリューションは同時アクセスを提供します。つまり、複数のプロセスまたはスレッドが同じデータベースにアクセスできることを意味します。それで、sqliteとは何ですか?あらゆるタイプのアプリケーションに適していますか?

sqliteは、次の状況でうまく機能します
  • AndroidやiOSなどのほとんどのモバイルオペレーティングシステムに含まれているため、SQLiteは、スタンドアロンのサーバーレスデータストレージソリューションが必要な場合に最適です。
  • 大規模なCSVファイルを使用するのと比較して、SQLのパワーを活用して、すべてのデータを単一のSQLiteデータベースに入れることができます。
  • SQLiteを使用して、アプリケーションの構成データを保存できます。実際、SQLiteは、構成ファイルなどのファイルベースのシステムよりも35%高速です。
一方、SQLiteを選択しない理由は何ですか?

    mysqlやpostgreSQLとは異なり、SQLiteにはマルチユーザー機能がありません。
  • SQLiteは、サービスではなく、ファイルベースのデータベースです。プロセスとして管理することも、起動したり、停止したり、リソースの使用を管理したりすることはできません。
pythonのsqliteインターフェイス

はじめに言及したように、SQLiteはCライブラリです。ただし、Pythonを含むインターフェイスを作成する言語はたくさんあります。

モジュールはSQLインターフェイスを提供し、少なくともSQLite 3.7.15が必要です。 sqlite3

驚くべきことに、はPythonで利用できますので、何もインストールする必要はありません。

sqlite3sqlite3

を使用してください

コードを書く時が来ました!最初の部分では、基本的なデータベースを作成します。最初にすべきことは、データベースを作成してそれに接続することです:

1行目では、

ライブラリをインポートします。次に、
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()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
コードブロックで、

を呼び出して、データベースへの接続を初期化します。すべてがうまくいかない場合、sqlite3try/exceptオブジェクトのインスタンスになります。 sqlite3.connect()が失敗した場合、受信した例外を印刷し、データベースへの接続を閉じます。公式ドキュメントに記載されているように、各オープンSQLiteデータベースはconnオブジェクトで表されます。 SQLコマンドを実行する必要があるたびに、Connectionオブジェクトにはtryと呼ばれるメソッドがあります。データベーステクノロジーでは、カーソルはデータベース内のレコードを通過できる制御構造です。 Connection Connectionさて、このコードを実行する場合、次の出力を取得する必要があります。 cursor()

Pythonスクリプトが配置されているフォルダーを確認すると、

という名前の新しいファイルが表示されます。このファイルは、

によって自動的に作成されます。
<code>> Database created!</code>
ログイン後にコピー
ログイン後にコピー

レコードを作成、読み取り、変更database.db この時点で、新しいテーブルを作成し、最初のエントリを追加し、Select、更新、ドロップなどのSQLコマンドを実行する準備ができています。 sqlite3

テーブルを作成するには、単純なSQLステートメントを実行するだけです。この例では、次のデータを使用して

テーブルを作成します。

print("Database created!")行の後、次のことを追加します

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()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
テーブルを作成し、

メソッドを呼び出します。これは、単一のSQLステートメントを実行するときに使用されます。 cursor.execute()

次に、追加する行の挿入操作を実行します。すべての変更が完了したら、

に電話して、保留中のトランザクションをデータベースに送信します。 conn.commit()メソッドが呼び出されない場合、データベースの保留中の変更が失われます。最後に、commit()メソッドを呼び出すことにより、データベースへの接続を閉じます。 conn.close()

わかりました、データベースを照会しましょう!クエリの結果を保持するために変数が必要なので、

の結果をcursor.execute()recordsに変数に保存しましょう。

<code>> Database created!</code>
ログイン後にコピー
ログイン後にコピー
これを行うと、すべてのレコード出力が標準出力に表示されます。

この時点で、
# 创建操作
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()
ログイン後にコピー
メソッドでは、実行する必要があるSQLコマンドを配置したことに気付いたかもしれません。別のSQLコマンド(更新やドロップなど)を実行する場合、Python構文は何も変更しません。

cursor.execute()プレースホルダー

メソッドには、引数として文字列が必要です。前のセクションでは、データベースにデータを挿入する方法を見ましたが、すべてがハードコードされています。変数にコンテンツをデータベースに保存する必要がある場合はどうなりますか?この目的のために、

はプレースホルダーと呼ばれる巧妙な機能をいくつか持っています。プレースホルダーを使用すると、パラメーターの交換を使用できます。これにより、変数をクエリに挿入しやすくなります。 cursor.execute() sqlite3この例を見てみましょう:

records = cursor.execute("SELECT * FROM student")
for row in records:
  print(row)
ログイン後にコピー
というメソッドを作成しました。このメソッドは、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)に設定することにより、isolation_level None次のコードは前のコードの書き直しですが、トランザクションを明示的に使用します:sqlite3

結論

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()
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
SQLiteとは何か、Pythonプロジェクトにどのように使用するか、高度な機能の一部がどのように機能するかをよく理解していただければ幸いです。トランザクションを明示的に管理することは、最初は少し難しい場合がありますが、確かにそれを最大限に活用するのに役立ちます。

関連の読み取り:

sqlite3 を開始します Unittestとpytest

を使用したPythonユニットテストから始めます

    http pythonリクエストの初心者向けガイド
  • sqlおよびnosql:違い
  • の使用に関するよくある質問
  • PythonのSQLiteデータベースに接続する方法は?
  • モジュール(Pythonでプリインストール)を使用して、SQLiteデータベースに接続できます。接続を確立して接続オブジェクトを取得し、SQLコマンドを実行するカーソルを作成して、接続を確立して
  • メソッドを使用します。
Pythonを使用してSQLiteデータベースでテーブルを作成する方法は? Cursorオブジェクトの

メソッドを使用してSQLコマンドを実行できます。テーブルを作成するには、

ステートメントを使用します。

Pythonを使用してSQLiteテーブルにデータを挿入する方法は?

ステートメントを使用して、テーブルにデータを挿入します。プレースホルダーsqlite3またはconnect()は、SQLインジェクションを避けるためにパラメーター化されたクエリに使用できます。

PythonでSQLiteトランザクションを使用する方法は? SQLiteでのトランザクションは、接続オブジェクトのexecute()およびCREATE TABLEメソッドを使用して管理されます。複数のSQLコマンドを

の間に配置して、単一のトランザクションとして扱われるようにします。 INSERT INTO

以上がPythonを使用したSqliteの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python vs. C:比較されたアプリケーションとユースケース Python vs. C:比較されたアプリケーションとユースケース Apr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ 2時間のPython計画:現実的なアプローチ Apr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:ゲーム、GUIなど Python:ゲーム、GUIなど Apr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:曲線と使いやすさの学習 Python vs. C:曲線と使いやすさの学習 Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

2時間でどのくらいのPythonを学ぶことができますか? 2時間でどのくらいのPythonを学ぶことができますか? Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

Pythonと時間:勉強時間を最大限に活用する Pythonと時間:勉強時間を最大限に活用する Apr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:主要なアプリケーションの調査 Python:主要なアプリケーションの調査 Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

See all articles