Python Mysql 資料庫操作

發表於2016-07-03

使用Python 進行資料庫的操作

前奏

為了能運算元據庫, 首先我們要有一個資料庫, 所以要首先安裝Mysql, 然後建立一個測試資料庫python_test用以後面的測試使用

匯入資料庫模組

連線資料庫

在這裡, 我們雖然拿到了python的資料庫連線, 但是不能在這個物件上直接對資料庫進行操作, 還需要獲取對應的操作遊標才能進行資料庫的操作,所以還需要進行下面的操作

建立表格

cur.execute 返回執行的sql 影響的行數, 因為這裡是建立資料庫, 所以是0L

但到這裡還並沒有真正執行了sql語句, 必須使用MySQLdb.commit才是真正執行完畢

到這裡, 我們的表格才算真正建立完成

同理, 往表中寫資料, 也是一樣的操作流程 execute ==> commit

不過, 寫入資料的execute 稍有不同, 如下

更新表資料

往表中寫入資料時, 執行execute 方法, 有兩種方式, 一種是直接execute(sql), 然後commit 完成, sql裡是寫入的sql 語句

這會直接寫入表中,但還有另外一種方式.

execute 可以接受兩個引數, 第一個引數是sql語句, 不過這個sql中的values的內容使用佔位符%s表示,第二個引數是實際的寫入的values列表, 如下:

這種方式與第一中方式相比, 更清晰一些, 安全性也更好, 能有效防止sql注入

另外, cursor還有一個executemany, 引數和execute一樣, 不過第二個引數可以傳遞多列表值, 達到多次執行某個語句的效果

這裡實際上就是執行了兩次插入操作

資料查詢

直接看例子

#stus 已經是查詢的結果結合了, 格式如下:

tuple形式, 我們可以通過迴圈輸出

輸出:

那上面的查詢雖然得到了每行的資料, 但結果集中並沒有欄位名, 如果要返回欄位名, 如下操作:

返回的結果集:

每個元素都是一個dict, 以key-value的形式展示了每個欄位和對應的值

總結

Python 中對資料的操作, 增刪改均要在指標物件執行了sql語句後, 使用連線物件commit, 查詢的結果使用指標物件的fetch系列方法獲取

PS: 以上皆為學習筆記, 難免有錯, 歡迎指正

相關文章