[Python] MySQLに接続してデータ操作を行う
こんにちは、@yoheiMuneです。
Python3系でMySQLに接続するには、PyMySQLがサクッと使えていいみたいですね。簡単に使い方をまとめておきたいと思います。
https://github.com/PyMySQL/PyMySQL/
これでMySQLへの接続と、接続の切断ができました。
最後になりますが本ブログでは、フロントエンドのネタやPythonネタを中心に情報を発信しています。気になった方はぜひ、RSSやTwitterをフォローして頂けますと幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
Python3系でMySQLに接続するには、PyMySQLがサクッと使えていいみたいですね。簡単に使い方をまとめておきたいと思います。
目次
Githubページ
PyMySQLはピュアなPython製のMySQLクライアントで、Githubページは以下にあります。GithubのReadMeでは使い方の説明があります。https://github.com/PyMySQL/PyMySQL/
インストール
パッケージ管理を使って簡単に導入することができます。$ pip install PyMySQL
PyMySQLの使い方
PyMySQLを使ってみます。今回は以下のデータがMySQLに入っているとしてお話を進めたいと思います。
CREATE TABLE user (
id INT(11) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
age TINYINT UNSIGNED
);
INSERT user VALUES (1, 'John', 29);
INSERT user VALUES (2, 'Jesika', 20);
INSERT user VALUES (3, 'Cookie', 52);
モジュール読み込み, 接続, 切断
PyMySQLのモジュール読み込みから、MySQL接続 / 切断は以下のように行います。
# モジュール読み込み
import pymysql.cursors
# MySQLに接続する
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='sample',
charset='utf8',
# cursorclassを指定することで
# Select結果をtupleではなくdictionaryで受け取れる
cursorclass=pymysql.cursors.DictCursor)
# MySQLから切断する
connection.close()
ここでのポイントはcursorclassを指定することで、Dictionary形式で値を受け取れるようにすることです。これ便利です。これでMySQLへの接続と、接続の切断ができました。
Select
Select処理は以下のように実装することができます。
# SQLを実行する
with connection.cursor() as cursor:
sql = "SELECT id, name FROM user WHERE age >= 50"
cursor.execute(sql)
# Select結果を取り出す
results = cursor.fetchall()
for r in results:
print(r)
# => {'name': 'Cookie', 'id': 3}
また、sqlには置換文字列を指定することも可能です。
with connection.cursor() as cursor:
# 置換文字列を指定(数値でも%sを指定するらしい)
sql = "SELECT id, name FROM user WHERE name = %s AND age = %s"
cursor.execute(sql, ("Cookie", 52))
# Select結果を取り出す
results = cursor.fetchall()
for r in results:
print(r)
# => {'name': 'Cookie', 'id': 3}
Insert, Update
InsertとUpdateも行うことができます。
# Insert処理
with connection.cursor() as cursor:
sql = "INSERT INTO user (id, name, age) VALUES (%s, %s, %s)"
r = cursor.execute(sql, (4, "Shanky", 38))
print(r) # -> 1
# autocommitではないので、明示的にコミットする
connection.commit()
# Update処理
with connection.cursor() as cursor:
sql = "UPDATE user SET age = %s WHERE id = %s"
r = cursor.execute(sql, (12, 1))
print(r) # -> 1
# autocommitではないので、明示的にコミットする
connection.commit()
これで更新処理の実装もできました。最後に
今回はPython3でMySQLに接続する方法をブログに書きました。PyMySQLを使えば簡単にMySQLにアクセスができてなかなか素敵だなと思います。今後のPythonを使う場合に色々と利用したいと思い、ブログに使い方など残した次第でした。最後になりますが本ブログでは、フロントエンドのネタやPythonネタを中心に情報を発信しています。気になった方はぜひ、RSSやTwitterをフォローして頂けますと幸いです ^ ^。
最後までご覧頂きましてありがとうございました!






