python mysqlでselectを実行してデータを取得する
pythonで、mysqlでselectを実行してデータを取得するサンプルコードを記述してます。pythonのバージョンは3.9.7を使用してます。
環境
- OS windows 11 Home
- python 3.9.7
mysql-connector-pythonインストール
ライブラリ「mysql-connector-python」を使用するのでインストールしてない場合は、
「pip」を使ってインストールします。
pip install mysql-connector-python
サンプルコード
localhostにある「mysql」に接続して、以下の構成のテーブル「foo」のデータを取得します。
テーブル「foo」
selectを実行してデータを取得します。
import mysql.connector
# 接続情報を記述
conn = mysql.connector.connect(
host='localhost',
port='3306',
user='root',
password='password',
database='hoge',
)
# 接続状況確認
if conn.is_connected():
try:
# 再接続を行うように設定
conn.ping(reconnect=True)
# カーソル作成
cr = conn.cursor()
# クエリを作成
sql = ('''
SELECT *
FROM foo
''')
# selectを実行
cr.execute(sql)
# 全データ取得
rows = cr.fetchall()
# 実行結果
print(f'{cr.rowcount} 件取得しました。')
# データを表示
for row in rows:
print(row)
except mysql.connector.Error as e:
print(e)
finally:
# クローズ
if cr is not None:
cr.close()
if conn is not None and conn.is_connected():
conn.close()
else:
exit()
実行結果を見ると、データが取得されていることが確認できます。
カラム別に取得
カラム別に取得したい場合は、カーソル作成時に「dictionary=True」を指定します。
# カーソル作成
cr = conn.cursor(dictionary=True)
# データを表示
for row in rows:
print(row["id"],row["name"])
実行結果
where句を使用
where句は、以下のように使用することができます。
import mysql.connector
# 接続情報を記述
conn = mysql.connector.connect(
host='localhost',
port='3306',
user='root',
password='password',
database='hoge',
)
# 接続状況確認
if conn.is_connected():
try:
# 再接続を行うように設定
conn.ping(reconnect=True)
# カーソル作成
cr = conn.cursor(dictionary=True)
# クエリを作成
sql = ('''
SELECT *
FROM foo
WHERE id = %s
''')
# where句のデータを指定
param = (1,)
# selectを実行
cr.execute(sql,param)
# 全データ取得
rows = cr.fetchall()
# 実行結果
print(f'{cr.rowcount} 件取得しました。')
# データを表示
for row in rows:
print(row["id"],row["name"])
except mysql.connector.Error as e:
print(e)
finally:
# クローズ
if cr is not None:
cr.close()
if conn is not None and conn.is_connected():
conn.close()
else:
exit()
実行結果
-
前の記事
javascript ランダムな配列の生成処理で「Array.apply」と「Array().fill」のパフォーマンスを計測する 2022.07.16
-
次の記事
EXCEL 直前の操作を実行するショートカットキー 2022.07.16
コメントを書く