一、python操作數(shù)據(jù)庫
創(chuàng)新互聯(lián)公司是一家專業(yè)提供
喀喇沁企業(yè)網(wǎng)站建設(shè),專注與
成都網(wǎng)站建設(shè)、網(wǎng)站制作、
HTML5建站、小程序制作等業(yè)務(wù)。10年已為喀喇沁眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
1.格式:大概分為三部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 代碼
import MySQLdb
conn = MySQLdb.connect(host = '192.168.0.180' ,user = 'cattle' ,passwd = 'cattle' ,db = 'cattle' )
cur = conn.cursor() #創(chuàng)建連接
reCount = cur.execute( 'select * from admin' )
data = cur.fetchall() #對(duì)數(shù)據(jù)進(jìn)行操作
cur.close() #關(guān)閉連接
conn.close()
print data
print reCount #這個(gè)的意思是執(zhí)行完這條命令影響的條數(shù)
結(jié)果
(( 1L , 'n2' , 'a2' ), ( 2L , 'n1' , 'a1' ))
2
|
1.連接的建立與釋放
建立連接時(shí)可用connect函數(shù),它返回一個(gè)connection類型對(duì)象
1 | db = MySQLdb.connect(host = '192.168.0.180' ,user = 'cattle' ,passwd = 'cattle' ,db = 'cattle' )
|
connect常用的參數(shù):
host:數(shù)據(jù)庫主機(jī)名.默認(rèn)是用本地主機(jī)
user:數(shù)據(jù)庫登陸名.默認(rèn)是當(dāng)前用戶
passwd:數(shù)據(jù)庫登陸的秘密.默認(rèn)為空
db: 要使用的數(shù)據(jù)庫名.沒有默認(rèn)值
port:MySQL服務(wù)使用的TCP端口.默認(rèn)是3306
charset:數(shù)據(jù)庫編碼
如果在數(shù)據(jù)編碼設(shè)置正確時(shí),向數(shù)據(jù)庫插入數(shù)據(jù)出現(xiàn)亂碼時(shí),可以設(shè)置連接的字符集參數(shù)
釋放連接時(shí)可以用connection類型對(duì)象的close方法
2.cursor對(duì)象
執(zhí)行SQL語句前要獲得一個(gè)指定連接的cursor對(duì)象,由cursor對(duì)象對(duì)象執(zhí)行SQL查詢并獲得結(jié)果
獲得cursor對(duì)象的方法
在默認(rèn)情況下cursor方法返回的是BaseCursor類型對(duì)象,BaseCursor類型對(duì)象在執(zhí)行查詢后每條記錄的結(jié)果以列表(list)表示。如果要返回字典(dict)表示的記錄,就要設(shè)置cursorclass參數(shù)為MySQLdb.cursors.DictCursor類
1 | cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)
|
3.插入、刪除、更新、查詢等操作
cursor類型提供了execute方法用于執(zhí)行SQL語句
3.1查詢
1 | cur.execute( 'select * from admin' )
|
3.2獲取結(jié)果
獲取結(jié)果有三種方式:fetchone、fetchall、fetchmany,返回結(jié)果是tuple,tuple中每一個(gè)元素對(duì)應(yīng)查詢結(jié)果中的一條記錄
fetchone()返回結(jié)果集中的第一條記錄
fetchall()返回結(jié)果集中的所有記錄
fetchmany([size])返回結(jié)果集中的size條記錄
3.3插入
由于SQL語句較長所以可以將SQL語句定義成變量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import MySQLdb
conn = MySQLdb.connect(host = '192.168.0.180' ,user = 'cattle' ,passwd = 'cattle' ,db = 'cattle' )
cur = conn.cursor()
sql = "insert into admin (name,address) values(%s,%s)" #name和address相當(dāng)于key,%s是占位符
params = ( 'n4' , 'a4' ) #n4和a4相當(dāng)于value,寫在占位符的位置
reCount = cur.execute(sql,params)
conn.commit() #執(zhí)行完增加、刪除、更改的動(dòng)作都得執(zhí)行這步進(jìn)行提交才能生效
cur.close()
conn.close()
print reCount
|
3.4刪除
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import MySQLdb
conn = MySQLdb.connect(host = '192.168.0.180' ,user = 'cattle' ,passwd = 'cattle' ,db = 'cattle' )
cur = conn.cursor()
sql = "delete from admin where id = %s"
params = ( 1 )
reCount = cur.execute(sql,params)
conn.commit()
cur.close()
conn.close()
print reCount
|
3.5更改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import MySQLdb
conn = MySQLdb.connect(host = '192.168.0.180' ,user = 'cattle' ,passwd = 'cattle' ,db = 'cattle' )
cur = conn.cursor()
sql = "update admin set name = %s where id = 8"
params = ( 'n8' )
reCount = cur.execute(sql,params)
conn.commit()
cur.close()
conn.close()
print reCount
|
4.事務(wù)
python操作數(shù)據(jù)庫的時(shí)候一旦有錯(cuò)誤不提交操作,全部都沒問題的時(shí)候才提交
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:Python之MySQLdb操作數(shù)據(jù)庫-創(chuàng)新互聯(lián)
分享URL:
http://weahome.cn/article/ccgigi.html