使用python讀取MS-SQL中的數據,這裏使用到模板pymssql。python
由於不是python自帶的模板,因此首先須要使用pip安裝,對應命令:pip install pymssqlsql
創建main.py文件,輸入代碼以下:數據庫
1 import pymssql,os 2 3 server="127.0.0.1" #服務器IP或服務器名稱 4 user="sa" #登錄數據庫所用帳號 5 password="password" #該帳號密碼 6 conn=pymssql.connect(server,user,password,database='master') 7 cursor=conn.cursor() 8 cursor.execute("select name from sys.databases") #向數據庫發送SQL命令 9 row=cursor.fetchone() 10 while row: 11 print row[0] 12 row=cursor.fetchone()
13 conn.close()
經過循環命令,逐條顯示獲取到的結果。服務器
點擊運行,執行該程序,可以正常返回SQL命令的查詢結果。fetch
下面使用SQL語言的中插入命令,將以前的代碼中操做的數據庫由"master"變爲"test",cursor.execute後跟的查詢命令改成一條insert格式的插入命令:spa
1 import pymssql 2 3 server="127.0.0.1" #服務器IP或服務器名稱 4 user="sa" #登錄數據庫所用帳號 5 password="password" #該帳號密碼 6 conn=pymssql.connect(server,user,password,database='test') 7 cursor=conn.cursor() 8 cursor.execute("insert into dbo.test ([NO.],Name,Address) values ('003','張三','鄭州') ")
執行命令後,數據庫中並無被插入數據。這是由於在執行update、insert和delete命令時,須要增長一條conn.commit()命令,纔可以讓數據庫執行該語句。code
1 import pymssql 2 3 server="127.0.0.1" #服務器IP或服務器名稱 4 user="sa" #登錄數據庫所用帳號 5 password="password" #該帳號密碼 6 conn=pymssql.connect(server,user,password,database='test') 7 cursor=conn.cursor() 8 cursor.execute("insert into dbo.test ([NO.],Name,Address) values ('003','張三','鄭州') ") 9 conn.commit() 10 conn.close()
特別須要注意的是,pymssql沒法打開中文命名的數據庫,因此使用pymsslq和數據庫進行交互的時候,訪問的數據庫必定要是英文命名的數據庫。server
使用py2exe或pyinstaller打包寫好的python程序,須要在程序開頭增長 import decimal ,導入decimal 模板,不然運行會報錯。blog