小编给大家分享一下如何使用python连接sql server,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
先利用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点击属性,点击状态即可启用。
python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。
以上是“如何使用python连接sql server”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。