[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に接続、操作する基本的な流れをご紹介しました。
参考
この記事が気に入ったらサポートをしてみませんか?