2023年6月21日水曜日

PythonからSQL Serverのデータを取得

pyodbcを使うと簡単にPythonからSQL Serverのデータを取得できた。事前にODBC Driver ○○ for SQL Serverをインストールしておく。またpyodbcをインストールする。

pip install pyodbc


〈SQL Serverのデータを取得するPythonのコード〉

import pyodbc

conn_str="DRIVER={SQL Server}; SERVER={サーバー名}; uid={ユーザーID}; pwd={パスワード};DATABASE={データベース名}"

conn=pyodbc.connect(conn_str)

cursor=conn.cursor()

cursor,execute(SQL文)

rows=cursor.fetchall()

cursor.close()

for r in rows;

    処理内容


2023年6月19日月曜日

PythonからMySQLのデータを操作


 図書館で『実践 Pythonによるデータベース入門』を借りてきて試してみたのだが「mysql.connector」を使った例がなぜかうまく動かない。仕方がないので「mysqlclient」を使ったコードに書き換えるとうまく動いた。

やろうとしたのは、csvファイルをPyhonで読み込んでそのデータをMySQLのテーブルに挿入しPythonで表示。上が元のcsvファイル。したがPythonで読み込んだMySQLのデータ。


《コード》

# MySQLサーバーへ接続

# CSVファイルからMySQLへ


import MySQLdb

import csv


connection = MySQLdb.connect(

    host='localhost',

    user='root',

    passwd='MySQLのパスワード',

    db='sampledb')


cursor = connection.cursor()


# ここに実行したいコードを入力

cursor.execute("DROP TABLE IF EXISTS memberlist2;")

cursor.execute("CREATE TABLE memberlist2 ( mid INT, name CHAR(20), gender CHAR(10), age int, PRIMARY KEY (mid) );")

operation =("INSERT INTO memberlist2 VALUES (%s, %s, %s, %s);")

segs=[]

with open('newlistdata.csv',encoding='utf-8') as f:

    reader = csv.reader(f)

    for row in reader:

        tuple=(int(row[0]), row[1], row[2], int(row[3]))

        segs.append(tuple)

        

cursor.executemany(operation, segs)

#コミットする

connection.commit()


cursor.execute("select * from memberlist2")

tuples = cursor.fetchall()

print("テーブルmemberlist2のデータ:")

for tpl in tuples:

   print(tpl)


connection.close()