더북(TheBook)

cursor의 execute() 함수는 실행할 쿼리를 전달하고, 처리된 행의 개수를 반환한다(쿼리가 행의 내용을 변경하지 않을 때는 0을 반환한다). 쿼리는 지난 UNIT에서 배운 것을 바탕으로 여러분이 만드는 문자열이다. 명령줄에서 입력하는 MySQL 쿼리와 달리 pymysql 쿼리는 마지막에 붙는 세미콜론이 필요 없다.


query = '''

SELECT employee.empname,position.description

FROM employee,position WHERE employee.id=position.eid

ORDER BY position.description

'''

n_rows = cur.execute(query)


변형을 가하지 않는 쿼리(SELECT 같은)를 전달할 때는 커서(cursor) 함수인 fetchall()을 사용해서 해당하는 모든 레코드를 가져올 수 있다. fetchall() 함수는 튜플로 된 열의 리스트로 변환할 수 있는 제너레이터를 반환한다.


results = list(cur.fetchall())

results

>>>

[('John Smith', 'Accountant'), ('Anon I. Muss', 'Imposter'),

 ('Abe Lincoln', 'President'), ('Jane Doe', 'Programmer')]

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.