Python: SQLite3でテーブルを作成する
以下は、with文を使用してSQLite3データベースに接続し、テーブルを作成する例です:
import sqlite3 # データベースに接続(存在しない場合は作成される) with sqlite3.connect('example.db') as conn: # カーソルオブジェクトを作成 cursor = conn.cursor() # テーブルを作成 cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT UNIQUE, age INTEGER ) ''') # 変更は自動的にコミットされる(with文を抜けると) # 接続は自動的に閉じられる(with文を抜けると)
with文を使用する利点
- 自動クローズ: withブロックを抜けると、データベース接続が自動的に閉じられます。
- 自動コミット: 例外が発生しなければ、withブロックを抜ける際に変更が自動的にコミットされます。
- 例外処理: 例外が発生した場合、自動的にロールバックされます。
- コードの簡潔さ: 明示的にcommit()やclose()を呼び出す必要がありません。
CREATE TABLE文の要素
- IF NOT EXISTS: テーブルが既に存在する場合のエラーを防ぎます。
- テーブル名: この例では users
- カラム定義:
- id INTEGER PRIMARY KEY AUTOINCREMENT: 自動増分する主キー
- name TEXT NOT NULL: NULL値を許可しない文字列
- email TEXT UNIQUE: 重複を許可しない文字列
- age INTEGER: 整数値
注意点
- SQLite3は動的型付けを使用するため、厳密なデータ型チェックは行われません。
- 複数のSQL文を実行する場合は、それぞれに対してcursor.execute()を呼び出す必要があります。
この方法を使用することで、Pythonプログラム内でSQLite3データベースにテーブルを安全かつ効率的に作成できます。必要に応じてカラムや制約を追加・変更してください。