python链接数据库

python 链接数据库,可以使用不同的库,比如 sqlite3(用于 SQLite 数据库)、psycopg2(用于 PostgreSQL 数据库)、mysql-connector-python(用于 MySQL 数据库)、pymssql库连接到Microsoft SQL Server数据库。

本次主要说的是pymssql库连接到Microsoft SQL Server数据库。

import pymssql
#链接数据库
conn = pymssql.connect(server=‘your_server_name’, user=‘your_username’, password=‘your_password’, database=‘your_database_name’)
#创建游标
cursor = conn.cursor()
if cursor:
print(“连接成功!”)
#执行SQL
cursor.execute(“SELECT * FROM your_table_name”)
#获取结果
rows = cursor.fetchall()
#打印查询结果
for row in rows:
print(row)
#关闭游标和连接
cursor.close()
conn.close()

‘your_server_name’:您的SQL Server服务器名称。
‘your_username’:您的SQL Server数据库用户名。
‘your_password’:您的SQL Server数据库密码。
‘your_database_name’:您要连接的数据库名称。
‘your_table_name’:您要查询的表名称。

接下来进行举例:
import pymssql #引入pymssql模块
import pandas as pd
#import os
#临时修改工作路径,作为拆分后的文件存储的地方
#lujing = input(‘请输入路径: ‘) #E:\pythonProject\交易对手
#os.chdir(’%s’ % lujing)
#server 数据库服务器名称或IP user 用户名 password 密码 database 数据库名称
server=‘xxxx’
user=‘xxxx’
password=‘xxxxx’
database=‘xxxxx’
port=1433 ##MySQL 默认端口号:3306 SQL Server 默认端口号:1433 Oracle 默认端口号:1521
charset=‘UTF-8’
conn = pymssql.connect(server, user, password, database)
cursor = conn.cursor()
if cursor:
print(“连接成功!”)

sql_name = input('请输入SQL文件路径: ') + ‘.xlsx’
#E:\pythonProject\SQL,提供SQL路径
sql_file = pd.read_excel(sql_name)
writer4 = pd.ExcelWriter(‘激活情况.xlsx’, engine=‘xlsxwriter’)

processed_results = []
for sql_index in sql_file[‘sql路径’]:
SQL = sql_index
query = “”"
SQL逻辑
SELECT DISTINCT
convert(nvarchar(200),a.SQL_PATH), convert(nvarchar(200),ISNULL(b.task_label,a.RUN_SERVER))
FROM a
LEFT JOIN b
ON a.TASK_ID = b.task_id
WHERE a.SQL_PATH = ‘{0}’ AND a.STATUS=1
“”".format(SQL)
# 执行多表查询
cursor.execute(query)
results = cursor.fetchall()
# # 处理包含两个反斜杠的结果
# 遍历并处理包含两个反斜杠的结果
# 创建一个列表,用于保存处理后的结果
for row in results:
id_value = row[0]
old_value = row[1]
new_value = id_value.replace(‘\\’, ‘\’)
# 将处理后的结果添加到列表中
processed_results.append((new_value,old_value))
# 根据多行数据进行过滤
#condition = ~ sql_file[‘sql路径’].isin(processed_results) # ‘~’ 表示不在列表中
# # 处理包含两个反斜杠的结果
# 遍历并处理包含两个反斜杠的结果
# 创建一个列表,用于保存处理后的结果
result_count = len(processed_results)
print(“激活个数:”, result_count)
print(“未激活个数:”,len(sql_file)-result_count)
#将处理后的结果数据转换为 DataFrame
df = pd.DataFrame(processed_results, columns=[‘SQL’, ‘备注’])
condition = ~ sql_file[‘sql路径’].isin(df[‘SQL’]) # ‘~’ 表示不在列表中
#将 DataFrame 数据保存为文本文件
filtered_df = sql_file[condition]
print(filtered_df)
#保存过滤后的结果到新的 Excel 文件
filtered_df.to_excel(‘filtered_excel_file.xlsx’, index=False)
df.to_excel(‘Jihuo.xlsx’, sep=‘\t’, index=False)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值