๐Ÿ‘ Python cursorโ€™s fetchall, fetchmany(), fetchone() to read records from database table

Min-Ho Leeยท2020๋…„ 8์›” 30์ผ
0

Sunday_August_30
.
.
.
์ „ ๊ธ€์—์„œ fetch์— ๋Œ€ํ•ด์„œ ์ž ๊น ์–ธ๊ธ‰๋งŒ ํ–ˆ์—ˆ๋‹ค.

์—„์ฒญ ์‰ฌ์šฐ๋‹ˆ(?) ๋นจ๋ฆฌ ๋๋‚ด์ž.

์ „ ๊ธ€์—์„œ

import pymysql
connect_obj = pymysql.connect()
cursor = connect_obj.cursor()
sql = """select * from abc;"""
cursor.execute(sql)

์—ฌ๊ธฐ๊นŒ์ง€ ํ–ˆ์—ˆ๊ณ , cursor๊ฐ์ฒด์—๋Š” ํ•ด๋‹น sql๋ฌธ์žฅ์˜ ๋ฆฌํ„ด ๊ฐ’๋“ค์ด ๋“ค์–ด์žˆ๋‹ค๊ณ  ๋งํ–ˆ๋‹ค.

๊ทธ๊ฒŒ ๋์ผ๊นŒ?

NO NO NO~

fetchone(), fetchmany(), fetchall()์ด๋ผ๋Š” ์นœ๊ตฌ๋“ค๋กœ ์›ํ•˜๋Š” ๋งŒํผ๋งŒ ๊บผ๋‚ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์„ค๋ช…์ด ๋˜ฅ๊ฐ™์ฃ  ใ… ใ… 

์‰ฝ๊ฒŒ ๋งํ•ด์„œ, sql๋ฌธ์žฅ์˜ ๋ฆฌํ„ด๊ฐ’์€ cursor ๊ฐ์ฒด์— ๋“ค์–ด์žˆ๊ณ ,
๊ทธ cursor๊ฐ์ฒด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์œผ๋ฉด fetch ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค.

์ผ๋‹จ
fetchone()
fetchmany(size)
fetchall()

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ์ด ๋˜๋Š”๋ฐ ๋”ฑ ๋Š๋‚Œ์ด ์˜ค์ง€ ์•Š๋Š”๊ฐ€?

one์€ ๋ง ๊ทธ๋Œ€๋กœ ํ•˜๋‚˜. all์€ ์ „๋ถ€ ๋‹ค.
many๋Š” ์˜ต์…˜์„ ์ฃผ์–ด์„œ ์›ํ•˜๋Š” ๋งŒํผ๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

์žฅ๊ณ ์˜ ORM๊ณผ ๋น„๊ตํ•˜๋ฉด์„œ ์„ค๋ช…ํ•˜์ž๋ฉด,
one์€ ~.objects.get์„ ํ•ด์„œ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ์…‹ ์„ ๊ฐ€์ ธ์˜จ๊ฑฐ๊ณ ,
many์™€ all์€ ~.objects.filter / ~.objects.all ์„ ํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ฟผ๋ฆฌ์…‹ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜จ ๊ฒƒ์ด๋‹ค.

๋ผ๊ณ  ๋‚˜๋Š” ์ƒ๊ฐ์„ ํ•˜๊ณ , ๊ทธ๋Ÿฐ ๋Š๋‚Œ์ ์ธ ๋Š๋‚Œ์ด ๋“ ๋‹ค.

TMI

๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜๋งŒ ๊ฐ€์ ธ์˜ฌ๊ฑด๋ฐ fetchall์„ ์‚ฌ์šฉํ•ด์„œ ๊ทธ ํ•ด๋‹น ํ…Œ์ด๋”๊ฐ€
ํƒ€์ž…์ด ๋ฆฌ์ŠคํŠธ์˜€๋‹ค... ํ™•์ธ์„ ์ž˜ ํ•ฉ์‹œ๋‹ค ์—ฌ๋Ÿฌ๋ถ„ ํ•˜ํ•˜ํ•˜๐Ÿ˜…

profile
๐Ÿ‡ Rabbit can take a rest, but ๐Ÿข turtle can't

0๊ฐœ์˜ ๋Œ“๊ธ€