python mysql 簡單總結(MySQLdb模塊 需另外下載)


python 通過DB-API規范了它所支持的不同的數據庫,使得不同的數據庫可以使用統一的接口來訪問和操作。

滿足DB-API規范的的模塊必須提供以下屬性:

屬性名      描述

apilevel     DB-API 模塊兼容的DB-API 版本號

threadsafety  線程安全級別

paramstyle   該模塊支持的SQL語句參數風格

connect()    連接函數(最常用)

其中 threadsafety是一個整數,取值如下:

0:不支持線程安全,多個線程不能共享此模塊

1:初級線程安全支持,多個線程可以共享該模塊,但不能共享連接

2:中級線程安全支持,多個線程可以共享模塊和連接,但不能共享游標

3:完全線程安全支持,線程可以共享模塊,連接,游標

connect() 生成一個connect對象,我們通過這個對象訪問數據庫,符合標准的模塊都會實現connect

MySQLdb 是封裝mysql訪問和操作的模塊。

connect() 的規范參數

參數           描述
user         Username
password       Password
host         Hostname
database       Database name
dsn Data       source name

不是所有的接口程序都是嚴格按照規范實現的. MySQLdb 就使用了 db 參數而不是規范推薦的 database 參數來表示要訪問的數據庫.

例:MySQLdb.connect(host='dbserv', db='inv', user='smith')

連接對象 connect

要與數據庫進行通信, 必須先和數據庫建立連接. 連接對象處理命令如何送往服務器, 以及如何從服務器接收數據等基礎功能. 連接成功(或一個連接池)后你就能夠向數據庫服務器發送請求,得到響應.

連接對象沒有必須定義的數據屬性。

連接對象方法
Method Name Description
close() 關閉數據庫連接
commit() 提交當前事務
rollback() 取消當前事務
cursor() 使用這個連接創建並返回一個游標或類游標的對象
errorhandler (cxn, cur,errcls, errval)

游標對象

一個游標允許用戶執行數據庫命令和得到查詢結果. 一個 Python DB-API 游標對象總是扮演游標的角色, 無論數據庫是否真正支持游標.

游標對象的屬性
對象屬性 描述
arraysize                     使用fechmany()方法一次取出多少條記錄, 默認值為 1
connectionn                    創建此游標對象的連接(可選)
description                      返回游標活動狀態( 一個包含七個元素的元組): (name, type_code,display_size, internal_ size, precision, scale,                               null_ok); 只有 name和 type_code 是必須提供的.
lastrowid                     返回最后更新行的 id (可選), 如果數據庫不支持行 id, 默認返回 None)
rowcount                     最后一次 execute() 操作返回或影響的行數.
callproc(func[,args])               調用一個存儲過程
close()                      關閉游標對象
execute(op[,args])                執行一個數據庫查詢或命令
executemany(op,args)              類似 execute() 和 map() 的結合, 為給定的每一個參數准備並執行一個數據庫查詢/命令
游標對象屬性(續)
對象屬性 描述
fetchone()                 得到結果集的下一行
fetchmany([size=cursor.arraysize])    得到結果集的下幾行 (幾 = size)
fetchall()                 返回結果集中剩下的所有行
__iter__()                 創建一個迭代對象 (可選; 參閱 next())
messages                 游標執行后數據庫返回的信息列表 (元組集合) (可選)
next()                   使用迭代對象得到結果集的下一行(可選; 類似 fetchone(), 參閱 __iter__())
nextset()                 移到下一個結果集 (如果支持的話)
rownumber               當前結果集中游標的索引 (以行為單位, 從0 開始) (可選)
setinput- sizes(sizes)           設置輸入最大值 (必須有, 但具體實現是可選的)
setoutput- size(size[,col])         設置大列的緩沖區大寫(必須有, 但具體實現是可選的)

給出 MySQLdb 一般的操作流程

1,創建connect

sample:

conn = MySQLdb.connect(host = '',user = '' ,port = 3306, charset = 'utf8')

charset 要設置,不然處理中文會亂碼。而且當前python 文件也要存成utf8。

2,獲取游標對象 以便對數據庫訪問和操作

sample:

cur = conn.cursor()

3,選擇一個database

sample:

conn.select_db('GameDB')

4,指向sql語句 通過游標對象

sample:

cur.execute("select * from CHARBASE where NAME like %s",('%%%s%%' %name))

5,獲取結果 ,返回的是元組集

sample:

result = cur.fetchone()

6,處理結果

7,提交事務

sample:

conn.commit()

8 ,關閉游標和連接

cur.close()

conn.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM