python连接sqlserver、怎么跨表查询_python 连接sqlserver,mysql
python連接sqlserver有很多包可以選擇,有pyodbc和pymssql,這里把代碼都貼出來,但是希望大家用pyodbc,因為在實踐中跑幾百萬的數據量跑了一天的時候連接會斷,google Stack Overflow之后也沒有很好的解決方案,最后用pyodbc就解決了該問題(同事也有類似經歷)。
pyodbc
建立連接,建立游標,通過游標執行語句,拿到結果。
import pyodbc
conn = pyodbc.connect('Driver={SQL Server};Server=192.168.0.180;Database=databasename;uid=username;pwd=password')
cursor = conn.cursor()
sql = "select table.a,table.b from table"
cursor.execute(sql)
如果想一次拿回所有結果
result=cursor.fetchall()
但最好還是把游標的結果當成一個迭代器然后用循環一個個取
for i in cursor:print(i[0])
如果是update的話,最好新建一個連接再新建一個游標(查詢可以同一個游標執行,新的查詢代替舊的查詢語句)。
conn1 = pyodbc.connect('Driver={SQL Server};Server=192.168.0.180;Database=databasename;uid=username;pwd=password')
cursor1 = conn1.cursor()
cursor1.execute("UPDATE table.b SET b=? WHERE a=?", (b_value, a_value))
conn1.commit()
pymssql
這里也貼出來pymssql的代碼
import pymssql
conn= pymssql.connect(host='192.168.0.180', user=username, password=password, database=databasename)
cursor= conn.cursor()
cursor = conn.cursor()
sql = "select table.a,table.b from table"
cursor.execute(sql)
#update
conn1= pymssql.connect(host='192.168.0.180', user=username, password=password, database=databasename)
cursor1= conn1.cursor()
cursor1.execute("UPDATE table.b SET b= %s WHERE a=%s",(b_value, a_value))
conn1.commit()
mysql
import MySQLdb.cursors
conn = MySQLdb.connect('192.168.0.180', user=username, password=password, database=databasename, charset='utf8',
cursorclass=MySQLdb.cursors.SSCursor)
cursor = conn.cursor()
sql ="select table.a,table.b from table"
cursor.execute(sql)
#update
conn1 = MySQLdb.connect('192.168.0.180', user=username, password=password, database=databasename, charset='utf8',
cursorclass=MySQLdb.cursors.SSCursor)
cursor1 = conn1.cursor()
cursor1.execute(" update table.b set b=%s where a=%s", (b_value, a_value))
conn1.commit()
總結
以上是生活随笔為你收集整理的python连接sqlserver、怎么跨表查询_python 连接sqlserver,mysql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卫星参数大全_【视频】早期国外做工精良的
- 下一篇: linux cmake编译源码,linu