はじめに
本記事について
本記事は、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 | データ削除 |
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を初めて利用する方にとって役立つことを願っています!
閲覧ありがとうございました。