6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【基礎知識】Python用ライブラリsqlite3について

Posted at

はじめに

本記事について

 本記事は、SQlite3を初めて利用する方向けの基本的な内容です。公式ドキュメントのチュートリアルを軸に構成しています。

SQLiteについて

SQLiteはサーバーを必要とせず、データベースを扱うことができるC言語ライブラリです。
軽量なデータベースであるため、プロトタイプの作成や、小規模のWebサイト・アプリケーションでの使用に適しています。

sqlite3はPythonの標準ライブラリであり、SQLiteをPythonから扱うためのモジュールです。

sqlite3は、SQLite 3.7.15 以降が必要です。

SQLite3の利用方法

①モジュールを使用して SQLite データベースを作成
tutorial.dbが既に存在する場合は、データベースへの接続を確立します。(※その場合、ファイルパスを指定します)

# データベースに接続します
con = sqlite3.connect("tutorial.db")

返されるConnectionオブジェクトは、con ディスク上のデータベースへの接続を表します。

②データベース カーソルを作成

cur = con.cursor()

データベースカーソル
 データベース内のデータを操作するために使用されるオブジェクト

③テーブルを作成

カーソルオブジェクトのexecute()メソッドで、テーブル作成のSQL文を実行します

cur.execute("CREATE TABLE movie(title, year, score)")
  • テーブル
    • movie
  • 列(columns)
    • タイトル(title)
    • リリース年(year)
    • レビュー・スコア(score)

⑤データを追加

cur.execute("""
    INSERT INTO movie VALUES
        ('Monty Python and the Holy Grail', 1975, 8.2),
        ('And Now for Something Completely Different', 1971, 7.5)
""")

⑥トランザクションをコミット

con.commit()

SQLiteでは、デフォルトでautocommitが有効になっているため、通常この工程は必要ありません。
しかしプログラムが大規模になる場合は、明示的にコミットすることが推奨されるようです。

⑦接続を閉じる

con.close()

SQLの基本的な操作

SQL文 CRUD 機能
INSERT文 Create データ追加
SELECT文 Read データ取得
UPDATE文 Update データ更新
DELETE文 Delete データ削除

引用:【MySQL入門③】データベースの基本操作CRUDを解説!

SQLiteの基本的な操作方法

# カーソルを作成する
cur = con.cursor()

# データ検索
cur.execute('SELECT * FROM items')

# 取得したデータはカーソルの中に入る
for row in cur:
    print(row)

# データ更新
cur.execute('UPDATE items SET price = 260 WHERE id = "3"')
# データ削除
cur.execute('DELETE FROM items WHERE id = "2"')

備考

PythonでSQL文を実行する他の方法

PythonでSQL文を実行する方法としてsqlite3は、Pythonのコード内で直接SQLを実行できるため、最も簡単な方法だそうです。

しかし、アプリケーションによってはより高度な操作が必要な場合もあります。
その時の選択肢として別のライブラリも簡単に調べました。

以下のライブラリは、基本的なSQL文の書き方はすべて同じです。

  • SQLAlchemy:SQLAlchemyは、Pythonで書かれたSQLツールキットで、SQL文をPythonのコードとして書くことができます。

  • PyMySQL:PyMySQLは、Pythonで書かれたMySQLライブラリです。PythonからMySQLに直接アクセスすることができます。

  • psycopg2:psycopg2は、Pythonで書かれたPostgreSQLライブラリで、PostgreSQLにアクセスするために使用されます。

まとめ

今回私は、ローカルで使用するPythonアプリケーションにSQlite3を利用するため、SQLiteについて基本的な操作方法を調べました。はじめはSQliteとSQlite3の違いに混乱しましたが、調べることで「SQLiteをPythonから扱うためのモジュール」がSQlite3だと認識することができました。
SQLiteは軽量で扱いやすいデータベースとして様々なアプリケーションに利用されているそうです。本記事がSQLiteを初めて利用する方にとって役立つことを願っています!

閲覧ありがとうございました。

参考文献

【MySQL入門③】データベースの基本操作CRUDを解説!
公式ドキュメント
PyMOTW

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?