python下使用MySQLdb模組

來源:互聯網
上載者:User

1、匯入模組import MySQLdb

>>> help ('MySQLdb')
>>> help ('MySQLdb.cursors')
2、串連資料庫conn =   MySQLdb.Connection(host='host',user= 'user',passwd= 'password',db = 'dbname',port=port)

例如:

conn = connect(host='10.0.*.*',user='root',db='mysql',port=3306,passwd='test')

含義是:host:需要串連Mysql的主機ip
user:串連mysql使用的使用者名稱
password:串連使用的使用者名稱密碼
dbname:預設開啟的資料庫

串連成功後,如需切換該使用者的其他資料庫,使用以下語句:conn.select_db('database name')

3、擷取資料庫操作遊標(指標)
因該模組底層其實是調用C API的,所以,需要先得到當前指向資料庫的指標cur =   conn.cursor()

4、對資料庫的相關操作
先使用指標對象執行SQL查詢語句:cur.execute('select * from tables')

其傳回值為SQL語句得到的行數,如:2L,表示2行。
然後,可以從該對象的fetchone或fetchall方法得到行資訊。
指標對象的fetchone()方法,是每次得到一行的tuple傳回值:

>>> result=cur.fetchone()>>> print result

指標對象的fetchall()方法,是得到一組tuple,其內容為由行資訊組成的tuple值:

>>> cur.scroll(0,'absolute')>>> result=cur.fetchall()>>> print result

另外還有fetchmany()方法,用法相似

使用fetchone()方法時,指標是會發生移動的。所以,若不重設指標,那麼使用fetchall的資訊將只會包含指標後面的行內容。
手動移動指標使用:cur.scroll(int,parm)

這裡參數含義為:int:移動的行數,整數;在相對模式下,正數向下移動,負值表示向上移動。
parm:移動的模式,預設是relative,相對模式;可接受absoulte,絕對模式。

插入、更新、刪除語句,都是使用指標對象的execute()方法執行:cur.execute("insert  into table (row1, row2) values ('val1', 'val2')")
cur.execute("update  table set   row1 = 'test'  where  row2 = 'row2' ")
cur.execute("delete from  table  where row1 = 'row1' ")


因單引號“'”用於SQL語句中的標識,所以,python中的字串需使用雙引號括住。
此外,也可以使用python的“格式化字串”寫法,簡化命令,例如:

cur.execute("update  table set   row1 = '%s'  where  row2 = '%s' " %('value1','value2'))

'%s'的單引號是SQL語句的間隔符,'value1'的單引號是python的字串間隔符,其含義是不同的。是否需要間隔符,以及使用雙引號還是單引號作為間隔,需根據其含義決定。例如,還有:

cur.execute("update FTPUSERS set passwd=%s where userid='%s' " %("md5('123')",'user2'))

這裡,paswd=%s是因SQL的md5()函數是不需要單引號間隔的;"md5('123')"是python的字串中含有單引號,所以用雙引號括住。

一般情況下,MySQLdb模組會自動認可修改。為確保起見,最好手動運行一次,尤其是使用update時conn.commit()

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.