午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python操作數(shù)據(jù)庫(kù)獲取結(jié)果之fetchone和fetchall的區(qū)別說(shuō)明

瀏覽:500日期:2022-06-23 08:36:26

每次使用python獲取查詢結(jié)果的時(shí)候,都會(huì)糾結(jié)一段時(shí)間到底用fetchone和fetchall,用不好容易報(bào)錯(cuò),關(guān)鍵在于沒(méi)有搞清楚它們之間的區(qū)別和使用場(chǎng)景。

fetchone與fetchall區(qū)別

環(huán)境:python3中

fetchone

不管查詢結(jié)果是多條數(shù)據(jù)還是單條數(shù)據(jù),使用fetchone得到的始終是一個(gè)元組。

如果查詢結(jié)果是單條數(shù)據(jù):fetchone得到的單條數(shù)據(jù)的元組;

如果查詢結(jié)果是多條數(shù)據(jù):fetchone默認(rèn)是結(jié)果中的第一條數(shù)據(jù)構(gòu)成的元組;

這就決定了如果需要取元組中的數(shù)值,需要使用cur.fetchone[0]

fetchall

不管查詢結(jié)果是多條數(shù)據(jù)還是單條數(shù)據(jù),使用fetchall得到的始終是一個(gè)由元組組成的列表。

如果查詢結(jié)果是單條數(shù)據(jù):fetchall得到的是由單個(gè)元組組成的列表,列表內(nèi)是有單條數(shù)據(jù)組成的元組,即列表包含元組;

如果查詢結(jié)果是多條數(shù)據(jù):fetchall得到的是由多個(gè)元組組成的列表;

這就決定了如果需要取元組中的數(shù)值,需要使用cur.fetchone[0][0]

使用場(chǎng)景

一般來(lái)說(shuō),查詢結(jié)果集是單條數(shù)據(jù)的,使用fetchone獲取數(shù)據(jù)

一般來(lái)說(shuō),查詢結(jié)果集是多條數(shù)據(jù)的,使用fetchall獲取數(shù)據(jù)

簡(jiǎn)單實(shí)例

import cx_Oracleconn = cx_Oracle.connect('用戶名/密碼@數(shù)據(jù)庫(kù)地址')cur = conn.cursor()sql_3 = 'select id from CZEPT_BSDT t WHERE name=’{}’'.format('基本支出調(diào)劑')cur.execute(sql_3)result_3 = cur.fetchone() # 單條數(shù)據(jù)結(jié)果集print(result_3) # (1,)print(type(result_3)) # <class ’tuple’>result_3= result_3[0] print(result_3) # 1print(type(result_3)) # <class ’int’>print('*' * 50)sql_2 = 'select * from CZEPT_BSDT ' cur.execute(sql_2)result_2 = cur.fetchall() # 多條數(shù)據(jù)結(jié)果集print(result_2) # [(1,’基本支出調(diào)劑’),(3,’銀行賬戶審批’),(5,’項(xiàng)目支出調(diào)劑’)]print(type(result_2)) # <class ’list’>result_2= result_2[0][0]print(result_2) # 1print(type(result_2)) # <class ’int’>注意事項(xiàng)

對(duì)于使用fetchone和fetchall獲取到的結(jié)果,最好使用之前先判斷非空,否則在存在空值的情況下獲取元組內(nèi)的數(shù)據(jù)時(shí),會(huì)報(bào)“超出索引”的異常。多次踩雷坑。

import cx_Oracleconnection = cx_Oracle.connect(’用戶名/密碼@數(shù)據(jù)庫(kù)地址’)cur = connection.cursor()for j in data_list: sql = 'select guid from jczl.division where name=’{}’'.format(j[’DIVISIONNAME’]) cur.execute(sql) result = cur.fetchone() # 因?yàn)榇嬖跉w口處室為空,所以切片的時(shí)候總是報(bào)超出索引范圍,搞了好久 if result is not None:j[’DIVISIONGUID’] = str(result[0])

補(bǔ)充:python DB.fetchall()--獲取數(shù)據(jù)庫(kù)所有記錄列表

查詢到的數(shù)據(jù)格式為列表:

多個(gè)元素的列表:

python操作數(shù)據(jù)庫(kù)獲取結(jié)果之fetchone和fetchall的區(qū)別說(shuō)明

單個(gè)元素的列表:

python操作數(shù)據(jù)庫(kù)獲取結(jié)果之fetchone和fetchall的區(qū)別說(shuō)明

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日韩一区二区三区四区 | 精品欧美日韩 | 欧美二区在线 | 亚洲天堂午夜 | 久久福利片 | 亚洲黄色在线视频 | 成人资源在线 | 亚洲狠狠 | 伊人色影院 | 免费看黄在线 | 国产三区视频在线观看 | 不卡的日韩av| 国产亚韩 | 久久高清国产 | 日本欧美一区二区三区 | 91国内精品久久久久 | 亚洲一区二区免费视频 | 亚洲香蕉在线观看 | 午夜资源网 | 久久精品中文字幕 | 91玖玖| 懂色av蜜臀av粉嫩av永久 | 91网站在线观看视频 | 欧美精品久久久久久久久老牛影院 | 一区二区三区精品国产 | 亚洲激情成人网 | 国产午夜一区二区三区 | 色黄网站 | 久久久啊啊啊 | 国产区精品视频 | 超碰1000 | 男女无遮挡xx00动态图120秒 | 久久青 | 五十路在线视频 | 国产精品网站视频 | 国产一区二区在线免费观看 | av先锋资源| 日本成人不卡 | 在线免费黄 | 精品中文一区 | 国产精品久久久久9999 |