[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をフォローして頂けますと幸いです ^ ^。
最後までご覧頂きましてありがとうございました!