python3.5链接SQL2017,读取数据库中的数据
之前寫了一個小程序,使用的數據是從數據庫中下載出來的,但是現在想要讓它直接鏈接上數據庫中,可以直接從數據庫中讀取數據,所以研究了一下python和sql之間的鏈接。具體如下:
使用的庫為pyodbc
安裝過程自不必多說,和其他庫的安裝一樣
安裝完成后測試過程,在網上找到了好多資料
下面一個一個說一下什么意思及自己要使用時應注意什么
第一句import pyodbc導入pyodbc庫
第二句
cnxn=pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.100\\sql;DATABASE=testDB;UID=sa;PWD=myPassword')
我在這句吃了很多虧,導致了許多莫名其妙的錯誤,下面我們就詳細剖析下這條語句,首先pyodbc.connect()是鏈接函數,它傳入一個string類型參數,這個參數會指定鏈接數據庫的類型DRIVER,數據庫的名稱DATABASE,數據庫所屬服務器SERVER,用戶名UID,密碼PWD,這些東西對于那些對數據庫了解的比較好的童鞋來說應該不成問題,但對我這個半吊子來說這個就是一個大問題,下面就一個個地去找一下這些東西在哪,首先我先說下我的數據庫是SQL2017,我使用的sql manage是Microsoft SQL Server Management Studio 17,在安裝它時會自動安裝一個Native Client,大家可以去控制面板->程序->程序與功能 中搜索Native Client,確認下自己的版本,然后對應下表,將對應的值輸入鏈接數據庫的類型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
第二個參數數據庫所屬服務器SERVER的值我查閱的資料大多都是localhost,但是對于我的數據庫卻老是鏈接不上,所以我只好打開Microsoft SQL Server Management Studio 17,連接上數據庫,右鍵屬性
紅圈中的值才是服務器的值,也就是SERVER的值
第三個參數數據庫的名稱DATABASE自不必多說,下圖中紅圈的值就是數據庫的名稱
在確定第四個參數和第五個參數的值之前,先看下數據庫是否可以啟用服務器代理賬戶,還是第一個參數一樣的窗口右鍵->參數->安全性,要確保啟用服務器代理賬戶項是可以啟動的,如下圖
然后找到對象資源管理器中的數據庫服務器(第一個參數也在這)一項中的安全性->登錄名
右鍵sa->屬性->安全性,輸入密碼,確定。這個用戶sa和密碼就是第四和第五個參數。
這些就是第二條語句中的參數。
第三條語句是建立cursor,沒什么可說的。
第四條語句就是對數據庫中數據進行操作了,其中的sql語言要寫在execute()函數中,并用雙引號括起來
但是這條語句輸出的卻是
要想將它顯示為正常的形式還需要調用其它函數fetchone()或者fetchall()。
>>> cursor.fetchall() [('1haha', ), ('2dada', ), ('3chuachua', ), ('4xixi', ), ('5hehe', ), ('6qieqie', ), ('7lele', ), ('8lala', )]成功!
如果是對數據庫中數據進行增刪修改等其它操作時,還要記得用函數commit()對操作提交一下。
總結
以上是生活随笔為你收集整理的python3.5链接SQL2017,读取数据库中的数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3读取csv和xlsx文件
- 下一篇: C#调用python文件