In my real-life I play guitar. Being an analytical sort-of-fella I found myself inhaling all the books, videos, advice, etc. that I could muster. One of the best pieces of advice went something like this (and it applies to SQL as well):
“A guitar is only a piece of wood with a few pieces of metal and some strings attached. Don’t be afraid to hold it and actually PLAY it.”
Sure, it’s an elegant piece of wood, and the metal and strings are pretty strategically placed, but the point is worth absorbing. If you’re afraid of something, you won’t get your hands dirty and find out exactly what it can do.
How does that apply to SQL? Databases, such as Microsoft SQL Server, Oracle, DB2, etc, can sometimes seem to be marvelous shiny “Magic Happens Here” boxes where you simply ask it for information and “poof” the answer is dropped into your lap. At times it can remind you of your favorite sci-fi show. “My, those engineers who build these databases are really really really smart!!”
Well, yeah, they are really smart. And the databases do some pretty incredible things. However, always remember that in the end it’s just a computer that has to follow the laws of time and space just like everything else. Given its mortal status, the wise developer will always bear in mind that there is more than one way to skin the preverbal cat, and some ways are much faster than others.
SQL is just a tool. Like any tool, you need to get your hands dirty. Set up a test server that has data you can afford to trash and go at it! The more you play with it, the less magical/mysterious it appears. As you work with it, you’ll start to gain an appreciation for how the software goes about fulfilling queries, and you will write better, faster queries. As with the guitar, don’t be afraid to PLAY that thing!