1. 安裝和導(dǎo)入模塊
以 Python 中的 SQLAlchemy 模塊為例,配合使用其他第三方模塊,SQLAlchemy 能夠操作各種數(shù)據(jù)庫,包括 Oracle、PostgreSQL、MySQL、SQLite、SQL Server 等等,如果你還沒有安裝,可以通過以下命令進行安裝:
要測試 SQLAlchemy 模塊是否正確安裝,可以在 Jupyter Lab 中運行以下代碼:
如果該模塊正確安裝,就會輸出版本號,我目前使用的版本是 1.3.20。
不同的數(shù)據(jù)庫,需要安裝不同的第三方模塊,比如說,要操作 Oracle,那么通常需要先安裝 cx_Oracle:
2. 連接數(shù)據(jù)庫
在開始操作數(shù)據(jù)庫之前,需要先創(chuàng)建一個數(shù)據(jù)庫引擎,然后再連接數(shù)據(jù)庫:
其中用戶名、密碼和 IP 地址等基本信息,要根據(jù)自己的實際情況進行修改。
3. 創(chuàng)建表
為了演示用 Python 自動操作數(shù)據(jù)庫,假設(shè)你的數(shù)據(jù)庫賬號擁有創(chuàng)建表的權(quán)限,那么就可以執(zhí)行下面的語句,實現(xiàn)創(chuàng)建一個新的表:
4. 增刪改查
數(shù)據(jù)庫的常用操作包括增、刪、改、查,下面分別簡單演示一下。
首先,增加兩行模擬用的數(shù)據(jù):
其次,刪除其中一行:
然后,修改另一行數(shù)據(jù):
雖然 SQLAlchemy 非常強大,但是如果能配合 Pandas 一起使用,那么就能雙劍合璧,從而更好地解決數(shù)據(jù)處理和分析的問題。
比如說,按條件查詢指定的數(shù)據(jù):
5. 數(shù)據(jù)備份和刪除表
有時候,我們還需要把數(shù)據(jù)備份到數(shù)據(jù)庫中,如果直接使用 Pandas 的 to_sql 函數(shù),那么字符串類型的列會被自動存儲為 CLOB,這樣后續(xù)處理起來就會比較麻煩。
我們可以用一個函數(shù),實現(xiàn)自動轉(zhuǎn)換為 NVARCHAR 類型:
這個功能還可以應(yīng)用于不同數(shù)據(jù)庫之間的數(shù)據(jù)遷移。比如說,從一個 MySQL 數(shù)據(jù)庫中查詢指定的數(shù)據(jù),保存為 df,然后再附加到 Oracle 數(shù)據(jù)庫中。
如果設(shè)置好相應(yīng)的定時任務(wù),就能實現(xiàn)用 Python 自動操作數(shù)據(jù)庫,從而自動完成相關(guān)工作。
最后,我們刪除上面演示用的兩個表,并關(guān)閉數(shù)據(jù)庫連接,節(jié)約資源,減少浪費,這是一個很好的習(xí)慣。
小結(jié)
本文介紹了用 Python 自動操作數(shù)據(jù)庫的一些常用方法,從 SQLAlchemy 和 cx_Oracle 模塊的安裝和導(dǎo)入,到連接數(shù)據(jù)庫,再到創(chuàng)建表和增刪改查,最后對數(shù)據(jù)進行備份和刪除表,這些操作都可以在 Jupyter Lab 中一鍵執(zhí)行,自動完成一些數(shù)據(jù)庫的相關(guān)操作。
事實上,你可以根據(jù)自己的實際情況,修改數(shù)據(jù)庫的類型和字符串連接等信息,并執(zhí)行各種各樣的 SQL 語句,自動完成更加復(fù)雜的數(shù)據(jù)庫操作。
內(nèi)容轉(zhuǎn)載自:林驥