PythonでMySQLに接続する方法|PyMySQLのインストールからデータ取得まで
MySQLは、世界で最も広く利用されているオープンソースのデータベース管理システムのひとつです。Pythonには、このデータベースに接続し、データの保存や取得を行うための仕組みが用意されています。本記事では、PythonからMySQLへ接続するためのライブラリ「PyMySQL」の導入方法と、基本的な使い方をサンプルコード付きで解説します。
PyMySQLのインストール
使用しているPython環境に応じて、以下のいずれかの方法でpymysqlパッケージをインストールできます。
# Pythonコンソールからインストールする場合 pip install pymysql # Anacondaを使用している場合 conda install -c anaconda pymysql # 各種Python IDEからモジュールを追加する場合 pymysql
MySQLへの接続
次のコードを使ってMySQL環境に接続します。接続後、データベースのバージョン情報を取得して表示します。
サンプルコード
import pymysql
# データベース接続を開く
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# cursor()メソッドでカーソルオブジェクトを作成
cursor = db.cursor()
# execute()メソッドでSQLクエリを実行
cursor.execute("SELECT VERSION()")
# fetchone()メソッドで1行だけ取得
data = cursor.fetchone()
print ("Database version : %s " % data)
# サーバーとの接続を切断
db.close()
実行結果
上記のコードを実行すると、以下のような結果が得られます。
Database version : 8.0.19
SQLコマンドの実行
SQLコマンドを実行するには、まずデータベースのカーソルを作成し、そこに渡すSQLクエリを準備します。その後、cursor.executeメソッドでクエリを実行し、fetchall()などを使って結果を取得します。
サンプルコード
import pymysql
# データベース接続を開く
db = pymysql.connect("localhost","username","paswd","DBname" )
# cursor()メソッドでカーソルオブジェクトを作成
cursor = db.cursor()
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
try:
# SQLコマンドを実行
cursor.execute(sql)
# すべての行をリストとして取得
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 取得した結果を表示
print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income ))
except:
print ("Error: unable to fetch data")
# サーバーとの接続を切断
db.close()
実行結果
上記のコードを実行すると、以下のような結果が得られます。
fname = Jack, lname = Ma, age = 31, sex = M, income = 12000
補足:セキュリティのためのパラメータ化クエリ
実際の開発では、文字列フォーマットによるSQL文の組み立てはSQLインジェクションのリスクを伴うため、プレースホルダを使ったパラメータ化クエリの利用が推奨されます。たとえば cursor.execute("SELECT * FROM EMPLOYEE WHERE INCOME > %s", (1000,)) のように記述すれば、値を安全に渡すことができます。また、接続情報はコードに直接書き込まず、環境変数や設定ファイルで管理するのも良い習慣です。
-
pipを使ってPythonにMySQLdbモジュールをインストールする方法
pipでPythonのMySQLdbモジュールをインストールする手順 PythonからMySQLデータベースへ接続するためには、MySQLdbモジュールが必要です。この記事では、pipコマンドを使用してMySQLdbモジュールをインストールする具体的な手順を解説します。 前提条件:Pythonのバージョンを確認する まず、お使いの環境に最新版のPython(本記事では3.7を想定)がインストールされていることを確認してください。Pythonが未インストールの場合は、公式サイトからダウンロードしてインストールしておきましょう。 ステップ1:コマンドプロンプトを開く pipコマンドは、Pyth
-
【初心者向け】Pythonのissuperset()メソッドの使い方をわかりやすく解説
はじめにこの記事では、Pythonのissuperset()メソッドについて、基本的な仕組みから実際のコード例まで詳しく解説します。issuperset()は、セット(集合)に対して使用できるメソッドで、引数として渡されたセットのすべての要素が、呼び出し元のセットに含まれているかどうかを判定します。呼び出し元のセットBが、引数のセットAのすべての要素を含んでいる場合 → True を返すセットAの要素がすべてBに含まれていない場合 → False を返すつまり、「BがAの上位集合(スーパーセット)であるかどうか」を判定するためのメソッドです。基本構文B.issuperset(A)この式は、Bが