I am totally new to databases. I am starting from the absolute beginning. I want to learn MS-SQL and was wondering how/where to start. I need info on everything from installation and set-up on an Windows XP PC to programming in SQL. Is there a book or website that can guide me. I am fairly decent at programming and am able understand technical books. Installation and set up are my main concerns right now, since I believe that once I have a stable system to learn on, SQL should be easy.
Nope, you picked a good place to post... Not such a swell time, since Saturday afternoons tend to be a wee bit slow around here!
Installing SQL Server on Windoze XP is simple. Insert the CD, accept the defaults, APPLY Service Pack 3a or LATER!, and you go merrily on your way. While there might be some defaults that you won't like much later in the process, you can change them down the road so don't get too excited.
It is very useful to examine, not only MS-SQL (aka Sybase) but also MySQL and Postgres. You are quite likely to encounter all three in typical, "PC-sized" office installations. You need to familiarize yourself with all three.
Observe how all three databases seek to accomplish essentially the same task, and how all three do many things the same way but all three also do different things different ways. Consider what design-choices governed each set of implementors' decisions. Under what hypothetical conditions do you think it would be appropriate to select each one? Think about it.
Don't fall into the time-wasting trap of "arguing" the merits or demerits of these products or of the companies/groups that produced them. All of them are proven, battle-hardened warhorses. Yet all of them are different in important-to-learn ways. You're likely to be expected to produce applications against all of them and many more. That's a very important lesson to learn very early in the [self-]learning process.
Also ... don't try to "fill your head" with each one. You can't do that. That's not how it's done. Learn the fine art of skimming. Fly over the forest at a high level and observe where the trees are. You can come back to them later, when it's time to actually plot and then hack-out a path through these woods. But now is not that time. Not yet.
If you are not already familiar with Microsoft Access, then I would suggest you start there. Using MS Access you can familiarize yourself with database and query design, and learn some basic coding by seeing how the GUI translates your queries into SQL. And you can do all this without having to worry about the administrative overhead involved in any database server. When you are able to conceptualize relational operations in your head, then dive into database servers.
I think it is all too common for programmers to jump into database servers without ever learning the ideas behind set-based operations. The result is poorly designed databases with tons of cursor-heavy code.
If it's not practically useful, then it's practically useless.