SQLite、MySQL、PostgreSQLなどへの接続

Pythonでのデータベース接続と操作に関して、代表的なデータベースである SQLite、MySQL、PostgreSQL それぞれへの接続方法と基本操作について詳しく説明します。


1. SQLiteへの接続と操作

特徴

  • 軽量でサーバ不要

  • 標準ライブラリに含まれており、インストール不要

接続と操作例

python
import sqlite3 # データベースに接続(ファイルがなければ自動作成) conn = sqlite3.connect('example.db') cursor = conn.cursor() # テーブル作成 cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER ) ''') # データ挿入 cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Alice', 30)) # データ取得 cursor.execute('SELECT * FROM users') rows = cursor.fetchall() for row in rows: print(row) # コミットとクローズ conn.commit() conn.close()

2. MySQLへの接続と操作

必要なライブラリ

  • mysql-connector-python などを使用(インストール必要)

bash
pip install mysql-connector-python

接続と操作例

python
import mysql.connector conn = mysql.connector.connect( host='localhost', user='your_username', password='your_password', database='your_database' ) cursor = conn.cursor() # テーブル作成 cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), age INT ) ''') # データ挿入 cursor.execute('INSERT INTO users (name, age) VALUES (%s, %s)', ('Bob', 25)) # データ取得 cursor.execute('SELECT * FROM users') for row in cursor.fetchall(): print(row) # コミットとクローズ conn.commit() conn.close()

3. PostgreSQLへの接続と操作

必要なライブラリ

  • psycopg2(PostgreSQL用ドライバ)

bash
pip install psycopg2-binary

接続と操作例

python
import psycopg2 conn = psycopg2.connect( host='localhost', user='your_username', password='your_password', dbname='your_database' ) cursor = conn.cursor() # テーブル作成 cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100), age INTEGER ) ''') # データ挿入 cursor.execute('INSERT INTO users (name, age) VALUES (%s, %s)', ('Charlie', 28)) # データ取得 cursor.execute('SELECT * FROM users') print(cursor.fetchall()) # コミットとクローズ conn.commit() conn.close()

共通の注意点

  • SQLインジェクション対策として、パラメータ化されたクエリ?%s)を使用する

  • 操作後は必ず commit() して変更を保存し、close() で接続を閉じる

  • 大規模アプリでは ORM(例:SQLAlchemy)の利用も検討するとよい

生成日:2025/05/03