Suggestion: Cursor execute function return self (cursor) to allow for code like: cursor.execute(SQL).fetchall() instead of cursor.execute(SQL) cursor.fetchall()