Pythonから
・テーブルのレコードをCSVファイルへ出力
できます!
出力するCSVファイルには
・列名(カラム名)も出力
されます!
前提
・Pythonがインストールされていること
・Pythonライブラリ「pandas」がインストールされていること
・sqlcmdが使用可能であること
コード
ここでは例として
・SQL Server上のDB「sampleDB」にあるテーブル「employee」のレコードを
・CSVファイルへ出力
します。
※列名(カラム名)も出力します。
import subprocess
import pandas as pd
csvFile=r"C:\Users\user\Desktop\sample.csv"
# sqlcmd組み立て
sqlcmd = "sqlcmd -S {serverName} -d {dbName} -E -s \",\" -W -o {csvFile} -Q \"{query}\" ".format(
csvFile=csvFile,
serverName='localhost\SQLEXPRESS',
dbName='sampleDB',
userName='XXXXX',
password='XXXXX',
query='SET NOCOUNT ON; SELECT * FROM employee'
)
# sqlcmd実行
subprocess.run(sqlcmd, shell=True)
# CSVファイルの読み込み
df = pd.read_csv(csvFile, encoding='shift_jis')
# レコードの0行目(「--」の行)を削除
df = df.drop(0, axis=0)
# CSVファイルへ書き込み
df.to_csv(csvFile, encoding='shift_jis')
実行結果
テーブルのレコードをCSVファイルへ出力できました。