データベース操作(検索/更新系SQL/プリペア/トランザクション) [Python]
1. MySQLのインストール
MySQLの準備ができていない方はMySQLのインストールからコマンド操作(ユーザ/データベース/テーブルの作成)を参考にインストールして下さい。
この記事で使用するデータベース、テーブルは次の通りです。
データベース | sample_db |
テーブル | mst_dummy |
※適宜、自分の環境に合わせて下さい。
2. MySQL Connector/Pythonのインストール
AnacondaからMySQLの公式ライブラリである「MySQL Connector/Python」(mysql-connector-python)をインストールしてPythonで利用できるようにします。
Anaconda Promptを起動します。
次のコマンドを実行します。 アナコンダ公式より抜粋
conda install -c anaconda mysql-connector-python
途中で「Proceed([y]/n)?」が表示されますので、Yキーを押します。
...
Anaconda Navigatorが起動している場合は再起動します。次に左メニューのEnvironmentsを選択して、一番右に「sql」を入力したらmysql-connector-pythonが表示されればOKです。
次章からSQLとなります。
3. SELECT文(検索系SQL)
import mysql.connector try: # DB接続 db = mysql.connector.connect(user='test', password='1234567890', host='localhost', database= 'sample_db') # SQL(プリペアドステートメント) sql = "SELECT no,title FROM mst_dummy;" # SQLの実行 cursor = db.cursor() cursor.execute(sql) # データの取得 rows = cursor.fetchall() for i in rows: print(i[0], i[1]) finally: cursor.close() db.close() # 以下、結果 1 プチモンテ 2 かきくけこ
mysql.connector.connect(接続引数)はMySQL公式を参照。
4. INSERT/UPDATE/DELETE文(更新系SQL)、プリペアドステートメント、トランザクション
この例ではUPDATE文ですがINSERT/DELETE文でも同様です。
import mysql.connector try: # DB接続 db = mysql.connector.connect(user='test', password='1234567890', host='localhost', database= 'sample_db') # トランザクションの開始 db.autocommit = False # SQL(プリペアドステートメント) sql = "UPDATE mst_dummy set title=? WHERE no=?;" # SQLの実行 cursor = db.cursor(prepared=True) cursor.execute(sql,("プチモンテ",1,)) # コミット db.commit() except: db.rollback() finally: cursor.close() db.close()
スポンサーリンク
関連記事
公開日:2018年07月10日 最終更新日:2018年08月24日
記事NO:02698