摘要:模塊安裝系統(tǒng)報(bào)錯(cuò)安裝如果是系統(tǒng),則需要先安裝服務(wù)。使用字典形式返回?cái)?shù)據(jù)執(zhí)行命令,并不會(huì)直接打印可以使用來讀取。
Python MySQLdb模塊 安裝
系統(tǒng):Ubuntu 14.04 MySQLdb $ pip install Mysql-python -> 報(bào)錯(cuò):EnvironmentError: mysql_config not found (安裝libmysqlclient-dev) $ apt-get install libmysqlclient-dev $ pip install Mysql-python 如果是MAC系統(tǒng),則需要先安裝 mysql 服務(wù)。使用
查數(shù)據(jù)示例(fetchall()獲取數(shù)據(jù))
import MySQLdb # 建立連接 conn = MySQLdb.connect(host="127.0.0.1", user="sate", db="dbtest", passwd="password") # 設(shè)置游標(biāo) cur = conn.cursor() # 執(zhí)行SQL命令,并不會(huì)直接返回查詢結(jié)果,而是返回SQL語(yǔ)句影響的行數(shù) reCount = cur.execute("select * from Products;") print reCount # 輸出一個(gè)數(shù)字,是SQL影響的行數(shù) # 使用 fetchall()方法獲取數(shù)據(jù),循環(huán)輸出結(jié)果,以元祖的方式輸出 for data in cur.fetchall(): print data # 關(guān)閉連接 cur.close() conn.close() # 結(jié)果==》 5 ("00001", "hilife") ("00002", "GTL") ("00003", "GLA") ("000004", "TYA") ("000005", "TUH")
插入或者更改數(shù)據(jù)
import MySQLdb conn = MySQLdb.connect(host="127.0.0.1", user="sate", db="dbtest", passwd="password") cur = conn.cursor() # 定義SQL語(yǔ)句 sql = "insert into Products(prod_id, prod_name) values(%s, %s);" # 定義數(shù)據(jù) params = ("00002", "GLA") reCount = cur.execute(sql, params) #為了防止SQL注入,可以使用該方法 conn.commit() #提交 cur.close() conn.close()
批量插入數(shù)據(jù)
import MySQLdb conn = MySQLdb.connect(host="127.0.0.1", user="sate", db="dbtest", passwd="password") cur = conn.cursor() # 要批量插入的數(shù)據(jù) li = [ ("000004", "TYA"), ("000005", "TUH") ] sql = "insert into Products(prod_id, prod_name) values(%s, %s);" # 批量使用executemany reCount = cur.executemany(sql, li) #為了防止SQL注入,可以使用該方法 conn.commit() #提交 cur.close() conn.close()
之前查看數(shù)據(jù)時(shí),返回是元祖形式,有時(shí)看起來并不明顯,我們可以選擇用字典的方式,將列名一起輸出。
import MySQLdb conn = MySQLdb.connect(host="127.0.0.1", user="zheng", db="satezheng", passwd="satezheng") # 使用字典形式返回?cái)?shù)據(jù) cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) # 執(zhí)行命令,并不會(huì)直接打印,可以使用fetchall來讀取。 reCount1 = cur.execute("select * from Products") print reCount1 # 輸出一個(gè)數(shù)字,是SQL影響的行數(shù) for data in cur.fetchall(): print data cur.close() conn.close() # 結(jié)果==》 5 {"prod_name": "hilife", "prod_id": "00001"} {"prod_name": "GLA", "prod_id": "00002"} {"prod_name": "GTL", "prod_id": "00003"} {"prod_name": "TYA", "prod_id": "000004"} {"prod_name": "TUH", "prod_id": "000005"}
cursor讀取執(zhí)行結(jié)果的方法有:
fetchall() 把所有的都讀出來
fetchmany(n) 輸出指定數(shù)量n的行
fetchone() 只返回第一條結(jié)果
fetchone() 一次只返回一條結(jié)果,下次返回第二條,和文件的readlines類似
對(duì)應(yīng)的也會(huì)有指針的概念,scroll()可以指定讀取的位置
cur.scroll(0, mode="absolute") # 絕對(duì)指針, 0 就是指針的位置 cur.scroll(-1, mode="relative") # 相對(duì)指針, -1 指針位置向前移一位(指針位置-1)
import MySQLdb conn = MySQLdb.connect(host="127.0.0.1", user="zheng", db="satezheng", passwd="satezheng") cur = conn.cursor() reCount = cur.execute("select * from Products;") # 使用 fetchone()方法獲取數(shù)據(jù) data = cur.fetchone() print data data = cur.fetchone() print data data = cur.fetchone() print data # 結(jié)果==》 ("00001", "hilife") ("00002", "GTL") ("00003", "GLA") # 使用絕對(duì)指針時(shí) ... data = cur.fetchone() print data data = cur.fetchone() print data cur.scroll(0, mode="absolute") # 將指針指向 0 data = cur.fetchone() print data # 結(jié)果==》 ("00001", "hilife") ("00002", "GTL") ("00001", "hilife") # 使用相對(duì)指針 data = cur.fetchone() print data data = cur.fetchone() print data cur.scroll(-1, mode="relative") # 指針位置減1 data = cur.fetchone() print data # 結(jié)果==》 ("00001", "hilife") ("00002", "GTL") ("00002", "GTL")
cur.lastrawid() 獲取自增id
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40889.html
摘要:模塊提供的是類似于接口的,而模塊在基礎(chǔ)上又做了進(jìn)一步封裝,使之符合的數(shù)據(jù)庫(kù)規(guī)范。的數(shù)據(jù)庫(kù)規(guī)范建議了種不同的方式來構(gòu)造,只支持其中的一種,代碼類似于的格式化操作。提交修改,回滾。異常發(fā)生時(shí),調(diào)用進(jìn)行回滾。 NOTE(2017-11-18): MySQLdb 不支持 Python 3,而 Python 3 是主流,所以就沒有學(xué)習(xí)的必要了。 環(huán)境:MySQL 5.6.27, Ubuntu 1...
摘要:使用安裝報(bào)錯(cuò)信息中有這兩行,沒有命令先找下這個(gè)命令在哪里,查到是下命令。解決方法添加一個(gè)軟鏈接,將命令放到環(huán)境變量下然后再執(zhí)行安裝命令看到安裝提示有個(gè)警告,安裝的版本是檢測(cè)安裝是否成功使用方法來檢測(cè)模塊是否安裝。 使用easy_install安裝 sudo easy_install MySQL-python 報(bào)錯(cuò)信息中有這兩行,沒有mysql_config命令 sh: mysql_co...
摘要:一普通連接方法使用模塊普通方式連接。返回結(jié)果表示影響的行數(shù)。查詢時(shí)不需要操作,插入更新刪除時(shí)需要提交。模塊點(diǎn)此下載類繼承自,表示一個(gè)新的連接池。如果需要新的連接池,按照如下格式新增即可。一個(gè)連接池可同時(shí)提供多個(gè)實(shí)例對(duì)象。 一、普通 MySQL 連接方法 ??使用模塊 MySQLdb 普通方式連接。 #!/usr/bin/env python # _*_ coding:utf-8 _*_...
閱讀 1726·2021-11-24 09:39
閱讀 3221·2021-11-22 15:24
閱讀 3129·2021-10-26 09:51
閱讀 3319·2021-10-19 11:46
閱讀 2928·2019-08-30 15:44
閱讀 2255·2019-08-29 15:30
閱讀 2571·2019-08-29 15:05
閱讀 816·2019-08-29 10:55