기억 저장소

클라우드 기반 인공지능 개발과 DevOps 실무

카테고리 없음

서버 : DB에 연결하기 fetchone()/fetchmany(size)/fetchall()

하늘.98 2022. 3. 21. 11:13
 query = '''select name from lables;'''
           
            # 7. 커넥션으로부터 커서를 가져온다.
            cursor = connection.cursor()

            # 8. 쿼리문을 커서에 넣어서 실행한다.
            cursor.execute(query)

            # select 문은 아래 내용이 필요하다.
            record_list = cursor.fetchall()
            print(record_list)
 

 

 
 

fetchone(), fetchmany(), fetchall()이라는 친구들로 원하는 만큼만 꺼내올 수 있다.

 

쉽게 말해서, sql문장의 리턴값은 cursor 객체에 들어있고,
그 cursor객체에서 데이터를 가져오고 싶으면 fetch 메소드를 사용해서 가져와야 한다.

일단
fetchone()
fetchmany(size)
fetchall()

이렇게 사용이 되는데 딱 느낌이 오지 않는가?

one은 말 그대로 하나. all은 전부 다.
many는 옵션을 주어서 원하는 만큼만 가져오는 것이다.

장고의 ORM과 비교하면서 설명하자면,
one은 ~.objects.get을 해서 하나의 쿼리셋 을 가져온거고,
many와 all은 ~.objects.filter / ~.objects.all 을 해서 여러개의 쿼리셋 리스트를 가져온 것이다.