見出し画像

[Python] MySQLでデータベースの操作を行う

はじめに

先日、Python+SQLite3で、データベースの操作を行う処理をご紹介しました。

今回は、PythonでMySQLに接続し、データベースを登録、操作する方法をご紹介します。基本的な流れは、sqlite3でデータベースを操作する処理と、ほぼ一緒です。

使用するライブラリ

・mysql-connector-python

MySQLへ接続するためのライブラリ。
pipコマンドでのインストールの前に、PCにMySQLをインストールする必要があります。

動作環境

・Windows10
・Python 3.7.6

実装

・データベースの接続

import mysql.connector

# 接続
conn = mysql.connector.connect(
host='localhost',
port= '3306',
user='root',
password='pasword',
database='testdatabase')

ホストが他のマシンの場合には、host='xxx.xx.xxx.xx'の形式で指定することができます。

・接続確認

# 接続確認
conn.is_connected()

・データベースの使用

# カーソルを取得
cur = conn.cursor()

# データベースの使用
cur.execute('USE testdatabase;')

データベースを操作するため、カーソルオブジェクトを取得し、そのカーソルに対して、executeメソッドを使用して、データベース使用のクエリを実行します。

・データの登録

cur.execute("INSERT INTO testtable VALUES (null, 'apple', 128);")
cur.execute("INSERT INTO testtable VALUES (null, 'banana', 198);")
cur.execute("INSERT INTO testtable VALUES (null, 'orange', 98);")

executeメソッドを使用して、データベース登録のクエリを実行します。

・データの取得

cur.execute('SELECT * FROM testtable;')

for row in cur.fetchall():
	print(row)

#出力
"""
(1, 'apple', 128)
(2, 'banana', 198)
(3, 'orange', 98)
"""

executeメソッドを使用して、データ取得のクエリを実行します。
実行結果を、
・fetchallメソッド…クエリで指定したすべてのデータを取得
・fetchmanyメソッド…クエリで指定したデータから、指定数のみ取得
・fetchonメソッド…クエリで指定したデータから、先頭の1行を取得
することができます。

・コミット

# コミット
conn.commit()

・終了処理

# DB操作が終わったらカーソルとコネクションを閉じる
cur.close()
conn.close()

カーソル、接続を閉じます。

まとめ

今回は、PythonでMySQLに接続、操作する基本的な流れをご紹介しました。

参考


この記事が気に入ったらサポートをしてみませんか?