【SQL Server】python连接SQL Server数据库

SQL Server

Python 连接 SQL Server

创建连接

import pymssql #引入pymssql模块
import pandas as pd
# 结果集包含中文需要GBK编码
#connect = pymssql.connect('服务器名', '账户', '密码', '数据库名',charset="GBK") #服务器名,账户,密码,数据库名
mode = 'r' # r 读 w 写
if mode == 'r':
	self.conn = pymssql.connect(dbconfig['host'], dbconfig['username'], dbconfig['password'], dbconfig['service_name'], charset="GBK")
elif mode == 'w':
	self.conn = pymssql.connect(dbconfig['host'], dbconfig['username'], dbconfig['password'], dbconfig['service_name'])

if connect:
    print("连接成功!")

cursor = connect.cursor()   #创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "select 小区名称,城市,区县 from Project_gaode"
cursor.execute(sql)   #执行sql语句

fetchone

row = cursor.fetchone()  #返回结果数据的一行,返回一个单行的数据对象,row.

# 将SQL查询结果转换为DataFrame
df = pd.read_sql(sql, connect) 
connect.close()   #关闭数据库连接

fetchall

rows = cursor.fetchall() #获得所有数据,返回一个list对象,每行就是一个tuple元组。
connect.close()   #关闭数据库连接
#输出为DataFrame
df = pd.DataFrame(rows, columns=[x[0] for x in cursor.description])

execute

sql = "INSERT INTO XXX ...;"
cursor.execute(sql)   #执行sql语句
connect.commit()
affected = cursor.rowcount
connect.close()   #关闭数据库连接
print(affected)

异常

解决方法

use <DATABASENAME>
grant select on dbo.<TABLENAME> to public;

(8152, b'String or binary data would be truncated.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n')

解决方法

# 创建连接时需要去除GBK编码格式
# pymssql.connect('服务器名', '账户', '密码', '数据库名',charset="GBK")
pymssql.connect('服务器名', '账户', '密码', '数据库名')

本文作者:brucejiao

本文链接:https://www.cnblogs.com/brucejiao/p/16365439.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   brucejiao  阅读(813)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.