日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3.5链接SQL2017,读取数据库中的数据

發布時間:2024/9/30 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3.5链接SQL2017,读取数据库中的数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前寫了一個小程序,使用的數據是從數據庫中下載出來的,但是現在想要讓它直接鏈接上數據庫中,可以直接從數據庫中讀取數據,所以研究了一下python和sql之間的鏈接。具體如下:
使用的庫為pyodbc
安裝過程自不必多說,和其他庫的安裝一樣
安裝完成后測試過程,在網上找到了好多資料

>>> import pyodbc>>>cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.100\\sql;DATABASE=testDB;UID=sa;PWD=myPassword')>>>cursor = cnxn.cursor()>>>cursor.execute("select * from Tb")

下面一個一個說一下什么意思及自己要使用時應注意什么
第一句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()函數中,并用雙引號括起來
    但是這條語句輸出的卻是

>>> cursor.execute("select name from Database.data") <pyodbc.Cursor object at 0x000001C421FAFAF8>

要想將它顯示為正常的形式還需要調用其它函數fetchone()或者fetchall()。

>>> cursor.fetchall() [('1haha', ), ('2dada', ), ('3chuachua', ), ('4xixi', ), ('5hehe', ), ('6qieqie', ), ('7lele', ), ('8lala', )]

成功!
如果是對數據庫中數據進行增刪修改等其它操作時,還要記得用函數commit()對操作提交一下。

>>> cursor.execute("delect from Database.data where name = '4xixi' ") >>> cnxn.commit()

總結

以上是生活随笔為你收集整理的python3.5链接SQL2017,读取数据库中的数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。