模塊說明python
pymssql和pyodbc模塊都是經常使用的用於SQL Server、MySQL等數據庫的鏈接及操做的模塊,固然一些其餘的模塊也能夠進行相應的操做,相似adodbapi、mssql、mxODBC等,咱們在實際用的時候選擇其中一個模塊就好,對於每個模塊都有相應的支持版本和支持平臺,你們能夠自行查閱文檔https://wiki.python.org/moin/SQL%20Serversql
模塊安裝 數據庫
pip install pymssqlapi
模塊使用fetch
咱們利用python來進行數據庫的操做,那麼第一步就應該是鏈接數據庫,這裏咱們用pymssql模塊中的connect方法連鏈接,在pyodbc模塊中一樣也是利用connect方法。server
使用connect建立鏈接對象對象
connect.cursor建立遊標對象,SQL語句的執行基本都在遊標上進行blog
cursor.executeXXX方法執行SQL語句,cursor.fetchXXX獲取查詢結果等ip
調用close方法關閉遊標cursor和數據庫鏈接文檔
pymssql模塊鏈接
pyodbc模塊鏈接
import pyodbc
conn = pyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=test;DATABASE=test;UID=user;PWD=password')
不一樣的SQL server版本對應的DRIVER字段不一樣。對應關係以下:
{SQL Server} - released with SQL Server 2000
{SQL Native Client} - released with SQL Server 2005 (also known as version 9.0)
{SQL Server Native Client 10.0} - released with SQL Server 2008
{SQL Server Native Client 11.0} - released with SQL Server 2012
使用pyodbc須要安裝微軟官方的Native Client(沒有安裝會報錯IM002),安裝SQL server management studio會自動附帶安裝(控制面板裏能夠看到安裝的版本)。若是沒有安裝過須要在https://msdn.microsoft.com/en-us/data/ff658533.aspx下載安裝(sqlncli.msi)。建議選擇與遠程數據庫版本相對應的Native Client。若是本地安裝的Native Client是高版本,則DRIVER={SQL Server Native Client 11.0}須要填寫的是本地的高版本。
獲取數據庫內容
這裏涉及到遊標的使用
fetchone() :返回單個的元組,也就是一條記錄(row),若是沒有結果 則返回 None
fetchall() :返回多個元組,即返回多個記錄(rows),若是沒有結果 則返回 ()
因爲execute返回的是cursor自己,因此若是你須要一次直接獲取全部內容能夠直接使用cursor自己來獲取
關於遊標這裏還存在一個要向你們專門說明的地方,
就是一個鏈接一次只能有一個遊標的查詢處於活躍狀態,具體什麼意思你們能夠看下面的代碼。
提供一個解決的辦法
在遊標的正常使用中游標獲取的查詢結果,一行爲一個元組。
咱們在實際使用中能夠根據需求,用 as_dict 方法返回一個字典變量,其中字典的Key爲數據表的列名
你們若是以爲上面的代碼寫起來看上去太長,給你們提供一個代碼量小的數據庫操做解決辦法
就是 with語句,即上下文管理器,它的好處一個是代碼的集成度高,一個是省去顯示的調用close方法關閉鏈接和遊標
關於數據庫的增刪改
增刪改數據庫的內容也是直接傳遞SQL語句給execute方法。但要注意運行以後須要用commit提交變動