您好,登錄后才能下訂單哦!
小編給大家分享一下python訪問數據庫的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
1.背景:
python提供了很多數據庫接口, 常用的數據庫有 MS SQL Server /mysql /oracle 等。
打開鏈接 https://wiki.python.org/moin/DatabaseInterfaces
是python 關于數據庫接口的一個總結 , 可以看到python支持的訪問的數據庫系統。
2.模塊:
python 主要是通過模塊和數據庫連接的。
2.1 安裝模塊:
如果使用anconda,本身就會集合很多模塊,不需要手動安裝。如果用pycharm就要手動安裝模塊。
安裝模塊流程:
下載模塊擴展包放到路徑下——>cmd找到相應路徑——> pip install +擴展包名字
下面列舉一些常用連接數據庫的模塊:pymssql / sqlite3/ PyMySQL/pyodbc/odbc/adodbapi
不同模塊連接的數據庫不同, 支持的版本系統有的也不一樣。但是大體用法都是相近的, 因為有DB-API
3.Python DB-API
3.1背景:
在沒有DB-API 之前, 不同數據庫有不同的數據庫接口程序, 這就導致python 訪問 database 的接口程序非常混亂。如果我們學習了python 訪問 mysql 的接口程序, 然后要切換到另一個數據庫上, 我們還要在學習另外一個數據庫的接口程序。python DB-API就是為了解決接口程序混亂而生成的。有了DB-API, 在不同數據庫上移植代碼就變得簡單的多了。
3.2Python DB-API:
Python 定義了一套操作數據庫的 DB-API 接口,它是一個規范,定義了一系列必須的對象和數據庫存取方式,以便為不同的底層數據庫系統提供一致的訪問接口
這個鏈接就是python 官方給定的 DB-API 的說明 https://www.python.org/dev/peps/pep-0249/
3.3 Python DB--API的內容:
連接對象:
?Connect()創建連接:host/server /user/password/db connect方法生成一個connect對象, 我們通過這個對象來訪問數據庫。符合標準的模塊都會實現connect方法。
?close():關閉連接
?commit():提交當前事務。做出某些更改后確保已經進行了提交,這樣才可以將這些修改真正地保存到database中
?rollback() 回滾上一次調用 commit()以來對數據庫所做的更改
?cursor():創建游標。系統為用戶開通的一個數據緩沖區,用于存放SQL語句執行結果。cursor游標是有狀態的,它可以記錄當前已經取到結果的第幾個記錄了,因此,一般你只可以遍歷結果集一次。在上面的情況下,如果執行fetchone()會返回為空。這一點在測試時需要注意
游標對象:
?Execute()執行一個數據庫查詢或命令。 execute 執行sql 語句之后運行的結果不會直接output 出來 , 而是放到了一個緩存區, 要用 fetch語句+print 可以查詢sql運行的結果
?fetchone ()得到結果集的下一行
?fetchmany(size)得到結果集的下幾行
?fetchall()返回結果集中剩下的所有行
?rowcount 返回影響的行數
?Close()關閉游標對象
3.4Python DB--API的工作原理及流程:
如圖所示如果把python 和數據庫比作兩個不同的地點, connection 就是路, 能連接python和database。cursor就像在路上行駛的小貨車, 可以用于執行sql 語句, 以及存儲sql 運行的結果。
流程:
4.MS SQL Server 示例:
4.1 導入模塊、創建連接:
4.2 創建游標: 游標創建之后就可以對數據庫進行查詢更改了!
4.3對數據進行操作(創建表、插入行、更新數據、增加列、刪除行、列、表):
4.4 查詢 獲取行:
5.其他:
使用游標的時候要注意, 每次連接只能有一個游標查詢處于活躍狀態。 code演示:
execute()循環和 executemany() 插入100000 條數據測速:
看完了這篇文章,相信你對python訪問數據庫的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。