#02 SELECT文を実行


SELECTを実行

先程のコードに下記を加えます。

import pymysql.cursors

conn = pymysql.connect(host='localhost',
			db='DB_NAME',
			user='DB_USER',
			password='DB_PASS')

sql='SELECT id,name FROM Persons'
cursor = conn.cursor()
cursor.execute(sql)
results = cursor.fetchall()
cursor.close()
 
for line in results:
        print(line)

conn.close();
ちょっと冗長な書き方をしてます。何かよくわからないですがcursorというオブジェクトを用意してそれでSQLの操作をするようです。ちなみにこのcursorクラスはwith構文に対応しているので、下記のような書き方も可能で、こちらの方が一般的です。

sql='SELECT id,name FROM Persons'
with conn.cursor() as cursor:
        cursor.execute(sql)
        results = cursor.fetchall()

        for line in results:
                print(line)
実行結果

$ ./mysql_test.py 
(2, '赤城啓太')

結果を辞書型で取得したい

下記のようにすると結果がヘッダを含めた辞書型で帰ってきます。

 with self.conn.cursor(pymysql.cursors.DictCursor) as cursor:
         cursor.execute(sql)
         result = cursor.fetchall()