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文を使用する利点

  1. 自動クローズ: withブロックを抜けると、データベース接続が自動的に閉じられます。
  2. 自動コミット: 例外が発生しなければ、withブロックを抜ける際に変更が自動的にコミットされます。
  3. 例外処理: 例外が発生した場合、自動的にロールバックされます。
  4. コードの簡潔さ: 明示的にcommit()やclose()を呼び出す必要がありません。

CREATE TABLE文の要素

  1. IF NOT EXISTS: テーブルが既に存在する場合のエラーを防ぎます。
  2. テーブル名: この例では users
  3. カラム定義:
    • id INTEGER PRIMARY KEY AUTOINCREMENT: 自動増分する主キー
    • name TEXT NOT NULL: NULL値を許可しない文字列
    • email TEXT UNIQUE: 重複を許可しない文字列
    • age INTEGER: 整数値

注意点

  • SQLite3は動的型付けを使用するため、厳密なデータ型チェックは行われません。
  • 複数のSQL文を実行する場合は、それぞれに対してcursor.execute()を呼び出す必要があります。

この方法を使用することで、Pythonプログラム内でSQLite3データベースにテーブルを安全かつ効率的に作成できます。必要に応じてカラムや制約を追加・変更してください。

Python