教你怎么用python連接sql server
先利用pip安裝pymssql庫
pip install pymssql
具體連接、測試代碼:
# server默認(rèn)為127.0.0.1,如果打開了TCP動態(tài)端口的需要加上端口號,如'127.0.0.1:1433' # user默認(rèn)為sa # password為自己設(shè)置的密碼 # database為數(shù)據(jù)庫名字 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讀取數(shù)據(jù)庫 import pymssql import pandas as pd conn = pymssql.connect('IP地址','賬號','密碼','數(shù)據(jù)庫') sql_1 = "SELECT Id,creat_time from 表名" #利用pandas直接獲取數(shù)據(jù)" 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,"沒有設(shè)置數(shù)據(jù)庫信息") 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,"連接數(shù)據(jù)庫失敗") else: return cur def ExecQuery(self,sql): """ 執(zhí)行查詢語句 返回的是一個包含tuple的list,list的元素是記錄行,tuple的元素是每行記錄的字段 """ cur = self.__GetConnect() cur.execute(sql) resList = cur.fetchall() #查詢完畢后必須關(guān)閉連接 self.conn.close() return resList def ExecNonQuery(self,sql): """ 執(zhí)行非查詢語句 調(diào)用示例: 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默認(rèn)為127.0.0.1,如果打開了TCP動態(tài)端口的需要加上端口號,如'127.0.0.1:1433' # user默認(rèn)為sa # pwd為自己設(shè)置的密碼 # db為數(shù)據(jù)庫名字 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()
如果出現(xiàn)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.數(shù)據(jù)庫名字寫錯
2.tcp/ip協(xié)議未開啟,這個位于(右鍵此電腦,點(diǎn)擊管理,點(diǎn)擊服務(wù)與應(yīng)用程序,點(diǎn)擊sql配置管理器,點(diǎn)擊sql server網(wǎng)絡(luò)配置,點(diǎn)擊mssqlserver的協(xié)議,右鍵tcp/ip,點(diǎn)擊啟用,重啟電腦后才會生效)
3.動態(tài)端口錯誤,默認(rèn)是沒有打開動態(tài)端口的,如果打開了就需要寫端口號,在2中的tcp/ip協(xié)議中查看動態(tài)端口號,點(diǎn)擊tcp/ip協(xié)議,點(diǎn)擊ip地址,然后翻到最下面,找到ipall 里面的動態(tài)端口號,也可以將動態(tài)端口號刪掉,然后不寫
4.sa用戶登錄未啟用
打開sql server management studio,點(diǎn)擊安全性,點(diǎn)擊登錄名,如果sa項(xiàng)出現(xiàn)紅色的×則說明sa用戶登錄未啟用,右鍵sa點(diǎn)擊屬性,點(diǎn)擊狀態(tài)即可啟用。
到此這篇關(guān)于教你怎么用python連接sql server的文章就介紹到這了,更多相關(guān)python連接sql server內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實(shí)現(xiàn)一個簡單的敏感詞過濾功能
這篇文章主要介紹了Python實(shí)現(xiàn)敏感詞過濾功能的示例,文中通過示例代碼介紹的非常詳細(xì),對我們學(xué)習(xí)python有定的幫助,感興趣的小伙伴們可以參考一下2023-06-06Python實(shí)現(xiàn)的遞歸神經(jīng)網(wǎng)絡(luò)簡單示例
這篇文章主要介紹了Python實(shí)現(xiàn)的遞歸神經(jīng)網(wǎng)絡(luò),是一篇摘錄自github代碼片段的文章,涉及Python遞歸與數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Python+SQLAlchemy輕松實(shí)現(xiàn)管理數(shù)據(jù)庫
QLAlchemy是一個強(qiáng)大的ORM(對象關(guān)系映射)庫,它允許您通過Python代碼與關(guān)系型數(shù)據(jù)庫進(jìn)行交互,本文我們將學(xué)習(xí)如何使用Python和SQLAlchemy庫來輕松管理數(shù)據(jù)庫,需要的可以參考下2023-05-05Python 專題五 列表基礎(chǔ)知識(二維list排序、獲取下標(biāo)和處理txt文本實(shí)例)
本文主要簡單的介紹使用Python處理txt漢字文字、二維列表排序和獲取list下標(biāo)的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧2017-03-03conda管理Python虛擬環(huán)境的實(shí)現(xiàn)
本文主要介紹了conda管理Python虛擬環(huán)境的實(shí)現(xiàn),主要包括使用conda工具創(chuàng)建、查看和刪除Python虛擬環(huán)境,具有一定的參考價值,感興趣的可以了解一下2024-01-01ubuntu 18.04 安裝opencv3.4.5的教程(圖解)
這篇文章主要介紹了ubuntu 18.04 安裝opencv3.4.5的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11Python中的fileinput模塊的簡單實(shí)用示例
這篇文章主要介紹了Python中的fileinput模塊實(shí)用示例,文中的示例是使用其來便利硬盤分區(qū)下的文本文件并打印其中行的長度,需要的朋友可以參考下2015-07-07