{eval=Array;=+count(Array);}
這里以mysql數(shù)據(jù)庫(kù)為例,簡(jiǎn)單介紹一下python如何操作mysql數(shù)據(jù)庫(kù)(增刪改查),實(shí)驗(yàn)環(huán)境win10+python3.6+pycharm5.0,主要內(nèi)容如下:
為了更好地說明問題,這里我新建了一個(gè)數(shù)據(jù)表student,主要有id,name,age,address這4個(gè)字段,內(nèi)容如下:
1.安裝pymysql,這個(gè)是python專門用于操作mysql數(shù)據(jù)庫(kù)的一個(gè)包,直接在cmd窗口輸入命令“pip install pymysql”就行,如下:
2.安裝成功后,我們就可以進(jìn)行數(shù)據(jù)庫(kù)的操作了,這里以數(shù)據(jù)庫(kù)的增刪改查為例,簡(jiǎn)單介紹一下:
查詢數(shù)據(jù):這里先建立連接,需要傳入host,user,passwd,db,charset這5個(gè)參數(shù),接著就可以進(jìn)行正常的數(shù)據(jù)庫(kù)的查詢了:
程序運(yùn)行截圖如下,已經(jīng)成功獲取到數(shù)據(jù):
增加數(shù)據(jù):基本步驟與查詢數(shù)據(jù)類似,唯一的區(qū)別是,執(zhí)行完sql后,需要commit提交,不然,不能插入到數(shù)據(jù)庫(kù)中,代碼如下:
程序運(yùn)行截圖如下,已經(jīng)成功插入數(shù)據(jù)庫(kù):
修改數(shù)據(jù):這個(gè)與上面插入的類似,也需要commit提交到數(shù)據(jù)庫(kù),才能生效:
程序運(yùn)行截圖如下:
刪除數(shù)據(jù):與上面類似,也許commit到數(shù)據(jù)庫(kù),才能從數(shù)據(jù)庫(kù)中刪除:
程序運(yùn)行截圖如下,已經(jīng)成功刪除數(shù)據(jù):
至此,我們就完成了數(shù)據(jù)庫(kù)的操作(增刪改查)??偟膩碚f,整個(gè)過程很簡(jiǎn)單,連接數(shù)據(jù),然后執(zhí)行sql,再取回結(jié)果就行,sqlite等關(guān)系型數(shù)據(jù)庫(kù)類似,這我就不贅述了,感興趣的可以到網(wǎng)上搜一下相關(guān)資料,后期,熟悉基本操作后,也可以借助sqlalchemy完成數(shù)據(jù)庫(kù)的操作,也很簡(jiǎn)單,希望以上分享的內(nèi)容能對(duì)你有所幫助吧。
1. 安裝和導(dǎo)入模塊
以 Python 中的 SQLAlchemy 模塊為例,配合使用其他第三方模塊,SQLAlchemy 能夠操作各種數(shù)據(jù)庫(kù),包括 Oracle、PostgreSQL、MySQL、SQLite、SQL Server 等等,如果你還沒有安裝,可以通過以下命令進(jìn)行安裝:
要測(cè)試 SQLAlchemy 模塊是否正確安裝,可以在 Jupyter Lab 中運(yùn)行以下代碼:
如果該模塊正確安裝,就會(huì)輸出版本號(hào),我目前使用的版本是 1.3.20。
不同的數(shù)據(jù)庫(kù),需要安裝不同的第三方模塊,比如說,要操作 Oracle,那么通常需要先安裝 cx_Oracle:
2. 連接數(shù)據(jù)庫(kù)
在開始操作數(shù)據(jù)庫(kù)之前,需要先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)引擎,然后再連接數(shù)據(jù)庫(kù):
其中用戶名、密碼和 IP 地址等基本信息,要根據(jù)自己的實(shí)際情況進(jìn)行修改。
3. 創(chuàng)建表
為了演示用 Python 自動(dòng)操作數(shù)據(jù)庫(kù),假設(shè)你的數(shù)據(jù)庫(kù)賬號(hào)擁有創(chuàng)建表的權(quán)限,那么就可以執(zhí)行下面的語(yǔ)句,實(shí)現(xiàn)創(chuàng)建一個(gè)新的表:
4. 增刪改查
數(shù)據(jù)庫(kù)的常用操作包括增、刪、改、查,下面分別簡(jiǎn)單演示一下。
首先,增加兩行模擬用的數(shù)據(jù):
其次,刪除其中一行:
然后,修改另一行數(shù)據(jù):
雖然 SQLAlchemy 非常強(qiáng)大,但是如果能配合 Pandas 一起使用,那么就能雙劍合璧,從而更好地解決數(shù)據(jù)處理和分析的問題。
比如說,按條件查詢指定的數(shù)據(jù):
5. 數(shù)據(jù)備份和刪除表
有時(shí)候,我們還需要把數(shù)據(jù)備份到數(shù)據(jù)庫(kù)中,如果直接使用 Pandas 的 to_sql 函數(shù),那么字符串類型的列會(huì)被自動(dòng)存儲(chǔ)為 CLOB,這樣后續(xù)處理起來就會(huì)比較麻煩。
我們可以用一個(gè)函數(shù),實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換為 NVARCHAR 類型:
這個(gè)功能還可以應(yīng)用于不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)遷移。比如說,從一個(gè) MySQL 數(shù)據(jù)庫(kù)中查詢指定的數(shù)據(jù),保存為 df,然后再附加到 Oracle 數(shù)據(jù)庫(kù)中。
如果設(shè)置好相應(yīng)的定時(shí)任務(wù),就能實(shí)現(xiàn)用 Python 自動(dòng)操作數(shù)據(jù)庫(kù),從而自動(dòng)完成相關(guān)工作。
最后,我們刪除上面演示用的兩個(gè)表,并關(guān)閉數(shù)據(jù)庫(kù)連接,節(jié)約資源,減少浪費(fèi),這是一個(gè)很好的習(xí)慣。
小結(jié)
本文介紹了用 Python 自動(dòng)操作數(shù)據(jù)庫(kù)的一些常用方法,從 SQLAlchemy 和 cx_Oracle 模塊的安裝和導(dǎo)入,到連接數(shù)據(jù)庫(kù),再到創(chuàng)建表和增刪改查,最后對(duì)數(shù)據(jù)進(jìn)行備份和刪除表,這些操作都可以在 Jupyter Lab 中一鍵執(zhí)行,自動(dòng)完成一些數(shù)據(jù)庫(kù)的相關(guān)操作。
事實(shí)上,你可以根據(jù)自己的實(shí)際情況,修改數(shù)據(jù)庫(kù)的類型和字符串連接等信息,并執(zhí)行各種各樣的 SQL 語(yǔ)句,自動(dòng)完成更加復(fù)雜的數(shù)據(jù)庫(kù)操作。
內(nèi)容轉(zhuǎn)載自:林驥
Python對(duì)數(shù)據(jù)庫(kù)操作通過接口或者ORM對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。
SQLALchemy是一個(gè)在MIT許可下發(fā)布的開源SQLORM。它專為高效率和高性能的數(shù)據(jù)庫(kù)訪問設(shè)計(jì)的。采用數(shù)據(jù)映射模式。SQLALchemy的工作單元主要通過session中控制每個(gè)對(duì)象的生命周期。
MySQLdb是用于Python鏈接mysql數(shù)據(jù)庫(kù)的接品,實(shí)現(xiàn)了python數(shù)據(jù)庫(kù)API規(guī)范V2.0。
MySQLdb.connect表示連接數(shù)據(jù)庫(kù)
cursor是游標(biāo),表示使用cursor方法操作游標(biāo)
execute是具體執(zhí)行的動(dòng)作,包括數(shù)據(jù)庫(kù)的增刪改操作
close表示關(guān)閉數(shù)據(jù)庫(kù)
步驟:
1 進(jìn)入到對(duì)應(yīng)數(shù)據(jù)庫(kù)的官網(wǎng),查找?guī)欤K)的名稱
2 使用pip install 庫(kù)名稱
3 通過官網(wǎng)提供的API編寫代碼操作數(shù)據(jù)庫(kù)
0
回答0
回答0
回答2
回答10
回答0
回答0
回答0
回答0
回答0
回答