ホーム > カテゴリ > Python・人工知能・Django >

データベース操作(検索/更新系SQL/プリペア/トランザクション) [Python]

Python/TensorFlowの使い方(目次)

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