title: Which is faster/best? SELECT * or SELECT column1, colum2, column3, etc
body: <p>I've heard that <code>SELECT *</code> is generally bad practice to use when writing SQL commands because it is more efficient to <code>SELECT</code> columns you specifically need.</p>
  
  <p>If I need to <code>SELECT</code> every column in a table, should I use </p>
  
  <pre><code>SELECT * FROM TABLE
  </code></pre>
  
  <p>or </p>
  
  <pre><code>SELECT column1, colum2, column3, etc. FROM TABLE
  </code></pre>
  
  <p>Does the efficiency really matter in this case? I'd think <code>SELECT *</code> would be more optimal internally if you really need all of the data, but I'm saying this with no real understanding of database.</p>
  
  <p>I'm curious to know what the best practice is in this case.</p>
  
  <p><strong>UPDATE:</strong> I probably should specify that the only situation where I would really <em>want</em> to do a <code>SELECT *</code> is when I'm selecting data from one table where I know all columns will always need to be retrieved, even when new columns are added. </p>
  
  <p>Given the responses I've seen however, this still seems like a bad idea and <code>SELECT *</code> should never be used for a lot more technical reasons that I ever though about.</p>