MySQL通用编程 第 5 / 5 篇
SQL SERVER
查询库中所有表
https://www.cnblogs.com/yujiaxiong/p/6664272.html
import pyodbc
# 创建连接
conn = pyodbc.connect(
'DRIVER={SQL Server Native Client 11.0};'
'SERVER=sephora-cn-udp.database.chinacloudapi.cn;'
'DATABASE=CLV_POC_DataMart;'
'UID=clv_majorel;'
'PWD=Jvv01xbq7XRZ&xi6'
)
# 创建游标
cursor = conn.cursor()
sql1 = "select * from sysobjects where xtype='U';"
sql2 = "select * from sys.tables;"
sql3 = "exec sp_tables"
cursor.execute(sql3)
table_list = [i[2] for i in cursor.execute(sql3) if i[1] == 'CLTV']
把SQL SERVER数据库中所有的数据保存到csv中
import pyodbc
import pandas as pd
import numpy as np
def create_conn():
"""
创建数据库连接
:return: 连接游标
"""
connection = pyodbc.connect(
'DRIVER={SQL Server Native Client 11.0};'
'SERVER=sephora-cn-udp.database.chinacloudapi.cn;'
'DATABASE=CLV_POC_DataMart;'
'UID=clv_majorel;'
'PWD=Jvv01xbq7XRZ&xi6'
)
return connection
def query_data(c, s):
"""
查询SQL SERVER数据库中的所有数据
:param c: 连接状态
:param s: 查询语句
:return: 查询结果
"""
c.execute(s)
return c.fetchall()
def save_to_csv():
"""
分别读取字段和数据,拼接成DataFrame格式,保存到表格
:return: 无
"""
# 建立连接
conn = create_conn()
cursor = conn.cursor()
# 查所有表
sql = "exec sp_tables"
table_list = [i[2] for i in query_data(cursor, sql) if i[1] == 'CLTV']
print(table_list)
for t in table_list:
# 查询表头
sql = "SELECT * FROM SYSCOLUMNS WHERE ID=OBJECT_ID('[CLTV].[%s]')" % t
result = query_data(cursor, sql)
title_list = [i[0] for i in result]
print(title_list)
# 查数据
sql = "select * from CLTV.%s;" % t
result = query_data(cursor, sql)
result = np.array(result)
print(result)
# 保存到临时表格
result = pd.DataFrame(result, columns=title_list)
print(result)
result.to_csv('%s.csv' % t, index=False)
# 关闭游标和连接
cursor.close()
conn.close()
if __name__ == '__main__':
save_to_csv()