Pythonでデータベースにレコードを挿入する方法(INSERT操作の基本)
データベースのテーブルに新しいレコード(行)を作成したい場合には、SQLのINSERT文を実行する必要があります。ここでは、PythonからMySQLデータベースに対してINSERT操作を行う基本的な方法を解説します。
基本的なINSERT文の実行例
次の例では、SQLのINSERT文を実行して、EMPLOYEEテーブルに1件のレコードを作成しています。
#!/usr/bin/python
import MySQLdb
# データベース接続を開く
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
# cursor()メソッドでカーソルオブジェクトを準備する
cursor = db.cursor()
# レコードを挿入するためのSQLクエリを準備する
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# SQLコマンドを実行する
cursor.execute(sql)
# 変更をデータベースにコミットする
db.commit()
except:
# エラーが発生した場合はロールバックする
db.rollback()
# サーバーとの接続を閉じる
db.close()この一連の流れは、「接続 → カーソル作成 → SQL実行 → コミット → 接続解除」というのが基本パターンです。エラーが発生した場合に備えて、try〜exceptブロック内でrollback()を呼び出し、データベースの整合性を保っている点にも注目してください。
SQLクエリを動的に生成する書き方
上記の例は、値を直接埋め込む代わりに、フォーマット演算子(%)を使ってSQLクエリを動的に組み立てる形でも書けます。
#!/usr/bin/python
import MySQLdb
# データベース接続を開く
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
# cursor()メソッドでカーソルオブジェクトを準備する
cursor = db.cursor()
# フォーマット演算子でSQLクエリを動的に生成する
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
('Mac', 'Mohan', 20, 'M', 2000)
try:
# SQLコマンドを実行する
cursor.execute(sql)
# 変更をデータベースにコミットする
db.commit()
except:
# エラーが発生した場合はロールバックする
db.rollback()
# サーバーとの接続を閉じる
db.close()パラメータを直接渡す実行形式
次のコード断片は、パラメータを直接渡すもう一つの実行形式の例です。ユーザーIDやパスワードなどの変数を、そのままクエリに埋め込んで実行しています。
..................................
user_id = "test123"
password = "password"
con.execute('insert into Login values("%s", "%s")' % \
(user_id, password))
..................................補足:より安全なパラメータ渡しについて
文字列のフォーマットによるSQLの組み立ては手軽ですが、外部からの入力値を扱う場合にはSQLインジェクションの危険があります。実際の開発では、カーソルのプレースホルダ機能を使ったパラメータ化クエリ(例:cursor.execute(sql, params))を採用するのが安全です。
また、ここで使用しているMySQLdbモジュールはPython 3では公式にサポートされていないレガシーなライブラリです。現在の環境では、mysql-connector-pythonやPyMySQLなどが一般的な代替手段として利用されています。ただし、接続やカーソルの使い方といった基本的な流れは共通しているため、INSERT操作の考え方はそのまま応用できます。
-
MSSQL Serverでデータベースを監視する方法とは?基本と確認手順を解説
データベース監視とは データベースの監視(Monitoring)とは、データベースの現在の状態を確認し、所有者名、ファイル名、ファイルサイズ、バックアップスケジュールなどの設定状況を把握することを指します。これらの情報を定期的にチェックすることで、障害の早期発見や適切な運用管理につなげることができます。 SQL Serverで監視を行う主な方法 SQL Serverにおけるデータベースの監視は、主に以下の2つの方法で行うのが一般的です。 SQL Server Management Studio(SSMS):GUIベースの管理ツールで、視覚的にデータベースの状態を確認できます。 T-SQL(
-
PythonのタプルをPostgreSQLデータベースに挿入する方法
PostgreSQLはデフォルトでポート番号5432を使用して動作します。PythonからPostgreSQLを操作するには、psycopg2モジュールをインストールします。この記事では、「test」データベースと、fname(名)、sname(姓)、age(年齢)、gender(性別)、salary(給与)というフィールドを持つ「employee」テーブルが既に用意されているものとして解説を進めます。 1. データベースへの接続とカーソルオブジェクトの取得 まず、Pythonスクリプト内で以下のコードを実行し、データベースへの接続を確立してカーソルオブジェクトを取得します。 import