ブログ管理者のP.Hです!
今回は、pythonからMySQLから操作する方法を紹介します。PyMySQLというモジュールを使って操作していきます。
それでは、PyMySQLの使い方を紹介します。
PyMySQLのインストール
下記のコマンドでPyMySQLモジュールをインストールします。
$ pip install PyMySQL
MySQLテータベースを操作する
基本的な操作を下記に記載しました。コード内のコメントを参考にしてください。testdbデータバースは下記ブログで既に作成済みです。testdbデータベースを作成した状態で下記のpythonコードを実行してください。
import pymysql.cursors # データベースに接続 conn = pymysql.connect(host='127.0.0.1', # Raspberry PiのIPアドレスではないので注意 port=3306, # ポート番号 user='root', # ユーザー名 passwd='password', # パスワード db='testdb', # データベース名 charset='utf8mb4', # 文字コード cursorclass=pymysql.cursors.DictCursor, # 結果をdictで受け取る autocommit=False) # オートコミットの設定 # カーソル生成 cursor = conn.cursor() # testテーブルが既に存在すれば削除 cursor.execute("DROP TABLE IF EXISTS test") # testテーブルの作成 cursor.execute("""CREATE TABLE IF NOT EXISTS test ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(128) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci""") # データをインサート cursor.execute("INSERT INTO test VALUES (1, 'AAA')") cursor.execute("INSERT INTO test VALUES (2, 'BBB')") cursor.execute("INSERT INTO test VALUES (3, 'CCC')") cursor.execute("INSERT INTO test VALUES (4, 'DDD')") # データを更新 cursor.execute('UPDATE test SET name=%s WHERE id=%s', ('BBBupdate', 2)) # データを削除 cursor.execute('DELETE FROM test WHERE id=3') # データベースに反映 conn.commit() # データを取得 cursor.execute('SELECT * FROM test') fetch = cursor.fetchall() print(fetch) # 終了処理 cursor.close() conn.close()
データベース接続の設定パラメータは、下記ブログのMySQL Hostname以下4項目と同じ設定にしてください。 また、commitをした時点でデータベースに反映されます。commit漏れには注意してください。
実行後、データベースは以下のようになります。
SQL文をマスターする必要がありますが、一度データベースを触ったことがある人であれば、Pythonでもすぐにコードが書けると思います。最近はデータベースを使う頻度は高いと思いますので、習得しておくと役に立ちます。