国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python 數(shù)據(jù)庫開發(fā) - 天生我材必有用,千金散盡還復來 - JavaEye技術網(wǎng)站
userphoto

2010.12.04

關注
二、MySQLdb的使用。

引入我們需要的包
import MySQLdb

1.和數(shù)據(jù)庫建立連接
conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable")
提供的connect方法用來和數(shù)據(jù)庫建立連接,接收數(shù)個參數(shù),返回連接對象.

比較常用的參數(shù)包括
host:數(shù)據(jù)庫主機名.默認是用本地主機.
user:數(shù)據(jù)庫登陸名.默認是當前用戶.
passwd:數(shù)據(jù)庫登陸的秘密.默認為空.
db:要使用的數(shù)據(jù)庫名.沒有默認值.
port:MySQL服務使用的TCP端口.默認是3306.
conn連接有兩個重要的方法commit【提交新增和修改】,rollback【撤銷新增或修改】

2.執(zhí)行SQL語句獲取返回值
//獲取連接的游標
cursor=conn.cursor()
//查詢
sql = "select * from 【table】"
//新增
sql = "insert into 【table】(字段,字段) values(值,值)"
//修改
sql = "update 【table】 set 字段 =‘值’where 條件 "
//刪除
sql = "delete from 【table】 where 條件"
cursor.execute(sql)

返回值
cur.execute('select * from tables')
其返回值為SQL語句得到的行數(shù),如:2L,表示2行。
然后,可以從該對象的fetchone或fetchall方法得到行信息。

獲取行信息
指針對象的fetchone()方法,是每次得到一行的tuple返回值:
引用
>>> row=cur.fetchone()
>>> print row
('user1', '52c69e3a57331081823331c4e69d3f2e', 1000L, 1000L, '/home/FTP/user1', '')

指針對象的fetchall()方法,是得到一組tuple,其內(nèi)容為由行信息組成的tuple值:
引用
>>> cur.scroll(0,'absolute')
>>> row=cur.fetchall()
>>> print row
(('user1', '52c69e3a57331081823331c4e69d3f2e', 1000L, 1000L, '/home/FTP/user1', ''), ('user2', '7e58d63b60197ceb55a1c487989a3720', 1000L, 1000L, '/home/FTP/user2', None))

移動指針
當使用fetchone()方法是,指針是會發(fā)生移動的。所以,若不重置指針,那么使用fetchall的信息將只會包含指針后面的行內(nèi)容。
手動移動指針使用:
cur.scroll(int,parm)

含義為:
引用
int:移動的行數(shù),整數(shù);在相對模式下,正數(shù)向下移動,負值表示向上移動。
parm:移動的模式,默認是relative,相對模式;可接受absoulte,絕對模式。

修改數(shù)據(jù)
修改數(shù)據(jù),包括插入、更新、刪除。它們都是使用指針對象的execute()方法執(zhí)行:
cur.execute("insert  into table (row1, row2) values ('111', '222')")
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的字符串間隔符,其含義是不同的。是否需要間隔符,以及使用雙引號還是單引號作為間隔,需根據(jù)其含義決定。例如,還有:
cur.execute("update FTPUSERS set passwd=%s where userid='%s' " %("md5('123')",'user2'))

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

提交修改
一般情況下,MySQLdb模塊會自動提交修改。但我們在更新數(shù)據(jù)后,手動運行一次:
conn.commit()

關閉數(shù)據(jù)庫連接
需要分別的關閉指針對象和連接對象.他們有名字相同的方法
cursor.close()
conn.close()


參考鏈接:
http://www.cnblogs.com/sislcb/archive/2008/11/24/1339913.html
http://www.linuxfly.org/post/180/
http://www.3gmatrix.cn/4/viewspace-16757.html
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python sqlite模塊 - 代碼分享 - 開源中國社區(qū)
Python操作Oracle數(shù)據(jù)庫:cx_Oracle
13.13 sqlite3 -- DB-API 2.0 SQLite數(shù)據(jù)庫接口[Pytho...
跟老齊學Python之使用Python查詢更新數(shù)據(jù)庫
【Python之路Day13】網(wǎng)絡篇之MySQL、ORM框架
mysql之pymsql的使用
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服