当前位置:首页 » 《我的小黑屋》 » 正文

Python连接SQL SEVER数据库全流程

0 人参与  2024年03月24日 15:32  分类 : 《我的小黑屋》  评论

点击全文阅读


背景介绍

在数据分析领域,经常需要从数据库中获取数据进行分析和处理。而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 pymssqlserver = '(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-8import timeimport pymssqlimport pandas as pddef 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数据库的全部流程,如果你遇到任何问题,欢迎评论区留言~


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/84857.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 爱,一触就破无广告_妹妹夏夏孟夏人气小说_小说后续在线阅读_无删减免费完结_
  • 他死后前妻疯魔了彩蛋(顾煜迟林筱棠)全书在线下载阅读完美终章小说大结局
  • 此后锦书休寄周窈音全文最新章节(周窈音)全文免费阅读无弹窗大结局_周窈音免费阅读
  • 弹幕说我是捞女?反手收购男主公司养鸡(林朝曦沈墨川)_弹幕说我是捞女?反手收购男主公司养鸡
  • 没给寡嫂抢到La******,老公把我和儿子做成蜡像(顾云州沈云烟)_没给寡嫂抢到La******,老公把我和儿子做成蜡像顾云州沈云烟
  • 出狱后,假千金靠玄术杀疯了(顾九音霍霆修)_出狱后,假千金靠玄术杀疯了
  • 养妹偷我认亲玉佩当上千金,男友当场分手超长版_玉佩陈雨柔养父母一口气看完_小说后续在线阅读_无删减免费完结_
  • 抽卡后,气运之子怎么都缠上来了小说(夏挽棠)(抽卡后,气运之子怎么都缠上来了)全书+后续+结局在线阅读
  • 前传爱意随风消逝续集:全文+番外乔清浅宋轻舟:结局+番外新上热文
  • 宋昭黎陆铭绪(假如从没拥抱你)前文+全本完整阅读预售作品抢先看
  • 终章小说搬空海港!我携军舰嫁军官躺赢了完结篇(温婉历战)已更新+延伸(搬空海港!我携军舰嫁军官躺赢了)清爽版
  • 贵妻在上:废材老公来护航完结篇(贵妻在上:废材老公来护航)章节目录+章节前文(宋锦瑶霍少霆)全章无套路在线

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1