title: What's the difference between using "c.fetchall()" vs. just assigning "c.execute(SELECT...." to a variable?
body: <p>I'm pretty certain that for the most they are functionally the same but I'm wondering if there's some cases where they are not and what's going on under the hood that makes it so?</p>
  
  <p>Example:</p>
  
  <pre><code>c.execute("""SELECT * FROM players WHERE team = ?;"""), (team_name,))
  results = c.fetchall()
  
  player_list = []
  for player in results:
      player_list.append(player)
  </code></pre>
  
  <p>vs.</p>
  
  <pre><code>results = c.execute("""SELECT * FROM players WHERE team = ?;"""), (team_name,))
  
  player_list = []
  for player in results:
      player_list.append(player)
  </code></pre>