第1章 課前準備
1-1 Python DB API介紹
- 背景:沒有Python DB API之前,接口程序混亂,Python應用程序(包含sql)需要對接各種數(shù)據(jù)庫;
- Python DB API:Python訪問數(shù)據(jù)庫的統(tǒng)一接口規(guī)范,統(tǒng)一對接各種不同的數(shù)據(jù)庫;
-
內容
- 流程
1-2 Python開發(fā)MySql環(huán)境

第2章 Python操作數(shù)據(jù)庫
2-1 Python數(shù)據(jù)庫連接對象connection
- 連接對象:建立python客戶端與數(shù)據(jù)庫的網絡連接;
- 創(chuàng)建方法:
MySqldb.Connect(參數(shù)),支持如下6個參數(shù):
| 參數(shù)名 | 類型 | 說明 |
|---|---|---|
| host | 字符串 | MySql服務器地址 |
| port | 數(shù)字 | MySql服務器端口 |
| user | 字符串 | 用戶名 |
| password | 字符串 | 密碼 |
| db | 字符串 | 數(shù)據(jù)庫名稱 |
| charset | 字符串 | 連接編碼 |
-
connection對象支持的方法
| 參數(shù)名 | 類型 |
|---|---|
| cursor() | 使用該連接創(chuàng)建并返回游標 |
| commit() | 提交當前事務 |
| rollback() | 回滾當前事務 |
| close() | 關閉連接 |
2-2 Python游標對象cursor
- 游標對象:用于執(zhí)行查詢,并獲取結果;
- 游標對象cursor支持的方法;
| 方法名 | 說明 |
|---|---|
| execute(op [,args]) | 執(zhí)行一個數(shù)據(jù)庫查詢和命令 |
| fetchone() | 獲取結果集的下一行 |
| fetchmany(size) | 獲取結果集的下幾行 |
| fetchall() | 獲取結果集剩下的所有行 |
| rowcount() | 最近一次execute返回數(shù)據(jù)的行數(shù)或影響行數(shù) |
| close() | 關閉游標對象 |
-
execute():執(zhí)行SQL命令,將結果從數(shù)據(jù)庫獲取到客戶端,過程如下 -
fetch*():移動rownumber,返回數(shù)據(jù)。MySqldb這個插件,是使用rownumber變量實現(xiàn)數(shù)據(jù)遍歷的,類似于數(shù)組的指針,對數(shù)組的遍歷就是靠移動指針進行遍歷,下一次遍歷是根據(jù)指針的位置獲取對應的數(shù)據(jù);
-
rowcount():是一個屬性,可以返回緩沖區(qū)中所有數(shù)據(jù)的行數(shù)。
第3章 Python增刪改查數(shù)據(jù)庫
3-1 Python之select查詢數(shù)據(jù)
-
select查詢數(shù)據(jù)的執(zhí)行流程
3-2 Python之insert/update/delete更新數(shù)據(jù)庫
-
更新數(shù)據(jù)庫的執(zhí)行流程
- 事務:訪問和更新數(shù)據(jù)庫的一個程序執(zhí)行單元,程序執(zhí)行單元即為很多execute操作的集合;
- 事務的特點
- 原子性:事務中的所有操作,要么都做、要么都不做;
- 一致性:事務必須使數(shù)據(jù)庫從一致性狀態(tài)變到另一個一致性狀態(tài);
- 隔離性:一個事務的執(zhí)行,不能被其它事務干擾;
- 持久性:事務一旦提交,它對數(shù)據(jù)庫的改變就是永久性的。
- 事務的方法
- 關閉自動
commit:設置connection.autocommit(False),MySqldb插件已經默認設置commit為自動關閉; - 正常結束事務:connection.commit(),使前面所有的操作正常生效;
- 異常結束事務:connection.rollback(),使前面所有的操作回到沒有被執(zhí)行的狀態(tài),即回滾。
3-3 Python之實例:銀行轉賬
-
執(zhí)行流程






