Python连接SQL SEVER数据库全流程
创始人
2024-11-06 02:34:10
0

背景介绍

在数据分析领域,经常需要从数据库中获取数据进行分析和处理。而SQL Server是一种常用的关系型数据库管理系统,因此学习如何使用Python连接SQL Server数据库并获取数据是非常有用的。
在这里插入图片描述

以下是Python使用pymssql连接SQL Server数据库的全流程:

  • 安装pymssql库
  • 本地账号设置
  • 脚本连接
  • 数据导入函数实现

一、安装pymssql

pymssql是Python连接SQL Server数据库的一个库,可以通过pip命令进行安装。在命令行中输入以下命令即可安装:

pip install pymssql 

二、本地账号设置

1、设置sa账户的登录密码

在SQL Server Management Studio中,展开“安全性”文件夹,右键单击“登录名”并选择“新建登录名”。在弹出的对话框中,输入登录名“sa”,选择“SQL Server身份验证”,设置密码并确保“登录”选项卡下“默认数据库”为目标数据库。最后,在“状态”选项卡下选择“启用”并确保“允许连接”复选框被选中。

2、开启双重验证

在SQL Server Management Studio中,右键单击SQL Server实例名称并选择“属性”。在弹出的对话框中,选择“安全性”选项卡,将“身份验证”设置为“SQL Server和Windows身份验证模式”,并选择“应用”以保存更改。

3、开启TCP/IP本地服务

在SQL Server Configuration Manager中,展开“SQL Server网络配置”文件夹,右键单击“协议”文件夹并选择“新建协议”。选择“TCP/IP”协议,右键单击“TCP/IP”协议并选择“属性”。在弹出的对话框中,将“启用”设置为“是”,并确保“IP地址”选项卡下的“TCP动态端口”为空。然后,切换到“IPALL”选项卡,并将“TCP端口”设置为1433(或其他您想要的端口号)。保存更改并重启SQL Server服务。

完成以上步骤后,即可使用Python连接本地SQL Server数据库。

三、脚本连接

做好以上的准备工作,用测试脚本连接(如果连接出错——b’DB-Lib error message 20002,试下在connect函数参数最后面加上tds_version=“7.0” 或者其他值)。

import pymssql  server = '(local)' database = '订单信息' username = 'sa' password = '123456' # 连接到数据库 conn = pymssql.connect(server=server, user=username, password=password, database=database,tds_version="7.0")#最后一个参数不是必须的 # 创建游标对象 cursor = conn.cursor() print('连接成功!') # 关闭数据库连接 conn.close() 

四、数据导入函数

我们成功连接了数据库以后,可以很方便的导出导入数据,以下是一个将数据导入数据库的函数实现

#coding=utf-8 import time import pymssql import pandas as pd  def insert_data_to_sql(df, server, database, username, password, table_name,mode='Overlay'):     # 连接到数据库     conn = pymssql.connect(server=server, user=username, password=password, database=database)     # 创建游标对象     cursor = conn.cursor()     # 获取 DataFrame 对象的字段名和数据类型     columns = list(df.columns)     dtypes = df.dtypes     if mode=='Overlay':         try:         #覆盖模式             cursor.execute("DROP TABLE {}".format(table_name))         except:             print('表不存在,直接创建……')         # 构造创建表的 SQL 语句         create_table_sql = f'CREATE TABLE [{table_name}] ('         for col_name, col_type in zip(columns, dtypes):             if col_type == 'int64':                 create_table_sql += f'[{col_name}] BIGINT,'             elif col_type == 'float64':                 create_table_sql += f'[{col_name}] FLOAT,'             elif col_type== 'datetime64[ns]' or '时间' in col_name or '日期' in col_name:                 create_table_sql += f'[{col_name}] DATETIME2(0),'             elif col_type == 'date':                 create_table_sql += f'[{col_name}] DATE,'             else:                 create_table_sql += f'[{col_name}] NVARCHAR(max),'         create_table_sql = create_table_sql.rstrip(',') + ');'         cursor.execute(create_table_sql)     # 将 DataFrame 转换成元组列表     data = [tuple(row) for row in df.fillna(0).values.tolist()]     # 构造插入数据的 SQL 语句     insert_sql = f'INSERT INTO [{table_name}] ('     insert_sql += ','.join([f'[{col_name}]' for col_name in columns]) + ') VALUES ('     insert_sql += ','.join(['%s'] * len(columns)) + ');'      # 将数据插入到数据库     cursor.executemany(insert_sql, data)     # 提交事务     conn.commit()     # 关闭数据库连接     conn.close()    # 数据库连接参数  

以上是python连接SQL SEVER数据库的全部流程,如果你遇到任何问题,欢迎评论区留言~

相关内容

热门资讯

九分钟辅助挂!德扑之星为什么不... 九分钟辅助挂!德扑之星为什么不发牌,wpk提高胜率(原来真的有挂)1、wpk提高胜率系统规律教程、w...
wepoke真的有挂!WPK辅... wepoke真的有挂!WPK辅助,来玩app德州安卓有用吗,玩家教程(原来真的有挂)所有人都在同一条...
四分钟攻略!微扑克系统发牌规律... 您好,微扑克系统发牌规律这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家...
4分钟透视辅助!云扑克辅助器,... 4分钟透视辅助!云扑克辅助器,wpk发牌逻辑(原来真的有挂)1、在wpk发牌逻辑ai机器人技巧中,中...
3分钟技巧!微扑克大厅都是机器... 3分钟技巧!微扑克大厅都是机器人,WPK原来真的有挂(微扑克全自动机器人器安装);科技详细教程小薇《...
aapoker透明挂!德扑ai... aapoker透明挂!德扑ai透视,微扑克透明挂,玩家教你(原来真的有挂)是一款可以让一直输的玩家,...
6分钟教学!拱趴大菠萝切牌规律... 6分钟教学!拱趴大菠萝切牌规律,AApoker原来真的有挂(aapoker外挂插件)1、构建自己的拱...
九分钟辅助挂!wepoke德州... 九分钟辅助挂!wepoke德州扑克,德州之星外挂(原来真的有挂)1、德州之星外挂透视辅助简单,德州之...
6分钟秘籍!哈糖大菠萝切牌规律... 6分钟秘籍!哈糖大菠萝切牌规律,微扑克其实真的有挂(aapoker俱乐部插件)哈糖大菠萝切牌规律辅助...
微扑克有辅助挂!WePoKe透... 微扑克有辅助挂!WePoKe透视辅助,德州专用扑克高科技,第三方教程(原来真的有挂)1、微扑克有辅助...