title: What do I need to know about databases?
body: <p>In general, I think I do alright when it comes to coding in programming languages, but I think I'm missing something huge when it comes to databases.</p>
  
  <p>I see job ads requesting knowledge of MySQL, MSSQL, Oracle, etc. but I'm at a loss to determine what the differences would be.</p>
  
  <p>You see, like so many new programmers, I tend to treat my databases as a dumping ground for data. Most of what I do comes down to relatively simple SQL (INSERT this, SELECT that, DELETE this_other_thing), which is mostly independent of the engine I'm using (with minor exceptions, of course, mostly minor tweaks for syntax).</p>
  
  <p>Could someone explain some common use cases for databases where the specific platform comes into play? </p>
  
  <p>I'm sure things like stored procedures are a big one, but (a) these are mostly written in a specific language (T-SQL, etc) which would be a different job ad requirement than the specific RDBMS itself, and (b) I've heard from various sources that stored procedures are on their way out and that in a lot of cases they shouldn't be used now anyway. I believe Jeff Atwood is a member of this camp.</p>
  
  <p>Thanks.</p>
  
  <hr>
  
  <blockquote>
    <p>The above concepts do not vary much for MySQL, SQL Server, Oracle, etc.</p>
  </blockquote>
  
  <p>With this question, I'm mostly trying to determine the important <em>difference</em> between these. I.e. why would a job ad demand n years experience with MySQL when most common use cases are relatively stable across RDBMS platforms.</p>
  
  <p>CRUD statements, joins, indexes.. all of these are relatively straightforward within the confines of a certain engine. The concepts are easily transferable if you know a different RDBMS.</p>
  
  <p>What I'm looking for are the specifics which would cause an employer to specify a specific engine rather than "experience using common database engines."</p>