python连接sql server 教你怎么用python连接sql server
leihao-lester 人气:0想了解教你怎么用python连接sql server的相关内容吗,leihao-lester在本文为您仔细讲解python连接sql server的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python连接sql,server,python连接数据库,下面大家一起来学习吧。
先利用pip安装pymssql库
pip install pymssql
具体连接、测试代码:
# server默认为127.0.0.1,如果打开了TCP动态端口的需要加上端口号,如'127.0.0.1:1433' # user默认为sa # password为自己设置的密码 # database为数据库名字 server = '127.0.0.1' user = "sa" password = "123456" database = "pubs" conn = pymssql.connect(server, user, password, database) # 可简化为conn = pymssql.connect(host='localhost', user='sa', password='123456', database='pubs') cursor = conn.cursor() cursor.execute('SELECT * FROM titles') print( cursor.fetchall() ) # 如果用pandas读取数据库 import pymssql import pandas as pd conn = pymssql.connect('IP地址','账号','密码','数据库') sql_1 = "SELECT Id,creat_time from 表名" #利用pandas直接获取数据" data = pd.read_sql(sql_1, conn) conn.close() print(data)
封装好的版本:
#coding=utf-8 # sqlserver的连接 import pymssql class MSSQL: def __init__(self,host,user,pwd,db): self.host = host self.user = user self.pwd = pwd self.db = db def __GetConnect(self): """ 得到连接信息 返回: conn.cursor() """ if not self.db: raise(NameError,"没有设置数据库信息") self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8") cur = self.conn.cursor() if not cur: raise(NameError,"连接数据库失败") else: return cur def ExecQuery(self,sql): """ 执行查询语句 返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 """ cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() #查询完毕后必须关闭连接 self.conn.close() return resList def ExecNonQuery(self,sql): """ 执行非查询语句 调用示例: cur = self.__GetConnect() cur.execute(sql) self.conn.commit() self.conn.close() """ cur = self.__GetConnect() cur.execute(sql) self.conn.commit() self.conn.close() def main(): # host默认为127.0.0.1,如果打开了TCP动态端口的需要加上端口号,如'127.0.0.1:1433' # user默认为sa # pwd为自己设置的密码 # db为数据库名字 ms = MSSQL(host='127.0.0.1',user="sa",pwd="123456",db="pubs") resList = ms.ExecQuery("SELECT * FROM titles") print(resList) if __name__ == '__main__': main()
如果出现pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (SZS\SQLEXPRESS)\n')类似保错,有以下几个可能的原因:
1.数据库名字写错
2.tcp/ip协议未开启,这个位于(右键此电脑,点击管理,点击服务与应用程序,点击sql配置管理器,点击sql server网络配置,点击mssqlserver的协议,右键tcp/ip,点击启用,重启电脑后才会生效)
3.动态端口错误,默认是没有打开动态端口的,如果打开了就需要写端口号,在2中的tcp/ip协议中查看动态端口号,点击tcp/ip协议,点击ip地址,然后翻到最下面,找到ipall 里面的动态端口号,也可以将动态端口号删掉,然后不写
4.sa用户登录未启用
打开sql server management studio,点击安全性,点击登录名,如果sa项出现红色的×则说明sa用户登录未启用,右键sa点击属性,点击状态即可启用。
加载全部内容