MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

PythonでMySQLにオブジェクト(タプル)を挿入する方法を解説

はじめに

本記事では、Pythonで作成したデータ(タプルオブジェクト)をMySQLデータベースに挿入する基本的な手順を解説します。サーバー上に「test」という名前のMySQLデータベースが存在し、その中に「employee」テーブルが作成されていることを前提とします。テーブルは、fname(名前)、lname(苗字)、age(年齢)、gender(性別)、salary(給与)の5つのフィールドを持つものとします。

ここでは、以下のように1件分のレコードデータを格納したタプルオブジェクトを、MySQLデータベースへ挿入することを目標とします。

t1=('Steven', 'Assange', 21, 'M', 2001)

PyMySQLモジュールのインストール

Python 3とMySQLの間にインターフェースを確立するには、まずPyMySQLモジュールをインストールする必要があります。pipコマンドを使って簡単にインストールできます。

pip install PyMySQL

データベースへの接続

PyMySQLをインストールしたら、次のコードでデータベース接続を確立し、SQLを実行するためのカーソルオブジェクトを作成します。

import pymysql

# データベース接続を開く
db = pymysql.connect("localhost","root","","test")

# cursor()メソッドでカーソルオブジェクトを準備
cursor = db.cursor()

connect()メソッドの引数は、順にホスト名、ユーザー名、パスワード、データベース名を指定しています。環境に合わせて適宜変更してください。

INSERTクエリの作成と実行

続いて、タプル内のデータを使ってINSERTクエリを作成します。プレースホルダに対してタプルの値を埋め込む形になっています。

sql="insert into employee values(%s,%s,%d,%s,%d)" %t1

作成したクエリは、カーソルオブジェクトのexecute()メソッドを使って実行します。

cursor.execute(sql)
db.commit()

なお、変更内容をデータベースに確定させるには、commit()メソッドを呼び出す必要がある点に注意してください。commit()を忘れると、レコードは実際には保存されません。

結果の確認

実行後、employeeテーブルの内容を確認すると、新しいレコード(Steven Assangeさんのデータ)が追加されていることがわかります。これで、PythonオブジェクトからMySQLデータベースへのデータ挿入は完了です。

まとめ

PythonからMySQLへデータを挿入する流れは、「PyMySQLのインストール → データベース接続 → カーソル作成 → INSERTクエリの作成 → execute()で実行 → commit()で確定」というシンプルな手順で構成されます。この基本を押さえておけば、リストや辞書など他のPythonオブジェクトを扱う場合にも応用できます。

  1. JDBCを使ってMySQLデータベースにファイルを保存・挿入する方法

    一般的に、ファイルの内容はMySQLデータベースでは Clob 型(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)のカラムに保存されます。 JDBCはClob型をサポートしており、これを利用することでファイルの内容をデータベースのテーブルに格納できます。 PreparedStatement インターフェースが提供する setCharacterStream() メソッドは、パラメータのインデックス(位置)を表す整数と、Readerオブジェクトを引数として受け取ります。 このメソッドを使うと、指定したインデックスのプレースホルダ(?)に対して、Readerオブジェクト(ファイ

  2. Javaを使ってDATE型の値をMySQLカラムに挿入する方法【PreparedStatement活用】

    はじめに JavaからMySQLのDATE型カラムに日付データを挿入したい場合、PreparedStatementを使用するのが最も安全で推奨される方法です。SQLインジェクション対策にもなり、日付型の変換もスムーズに行えます。 本記事では、Javaプログラムから現在の日付をMySQLテーブルに挿入する手順を、サンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、DATE型のカラム「ArrivalDate」を含むテーブルを作成します。以下はMySQLでの作成例です。 mysql> create table DemoTable( PassengerId