For career advancement opportunities, I'm looking to teach myself SQL. Any of you folks have any resource recommendations? Advice?
Unless you have a background in programming, or really understand advanced math, don't bother. SQL is supposed to be an easy language to learn, and to some degree that is true. The problem is trying to apply that language to solve real world problems with databases and such, OOP. It is terribly difficult.
As what has stated, SQL is pretty easy to pickup, but using it on an actual database may be a little harder. Here's a good book to teach you the basics, Sams Teach Yourself SQL in 10 Minutes. Here's a nice tutorial site where you can actually try out some sql commands on sample databases. Theres's still plenty of things a novice user can do with SQL, generating reports and what not, just make sure you back things up and maybe learn about transactions if you plan on updating or adding to a database.
Well, maybe to you. "LET THE BOY TRY!" - name that movie (difficulty: easy) Excalibur [crowd] - Garner got it. post #6
I have the real world application and data staring me in the face at work everyday. someone just needs to do it. Thanks for the site Excalibur. and I will try Swoly.....I will.
Well that's the most ridiculous, misleading thing I've ever heard of. Does it have the prerequisite of understanding relational database schemas beforehand or something? I like how it says "10 minutes" but the book is 288 pages with 22 lessons. Anyway, how will learning SQL help "career advancement" for you? At your current company? If so, what DBMS are they using? Stick to that one. If just for something on your resume, I would either suggest making your own application to use a database (Postgres is free and easy) just for practice because interviews will ask increasingly difficult SQL questions... and if you can't answer basics, you will be rejected outright for misrepresenting yourself (I've rejected people similarly). To understand SQL, you'll need to understand relational database basics. Start with this, then move into SQL. Learn to walk before you run. Personally, I've always found YouTube to be the best source of tutorials because you get visuals and dialogue to go with it. Often the video maker isn't very popular, so they tend to respond to questions/comments you make or email to them. Something like this might be useful, and I'm sure there's videos out there for whatever SQL variant you might want (MySQL, SQLServer, Oracle, etc.). Of course, if you learn better simply from reading, go for it, but I really recommend that if you do that, you put it into practice, too... otherwise, I guarantee it won't stick.
Junk site. Do not recommend. Kind of works as a reference, but even for that there are usually better options out there (i.e. for CSS, w3schools is often a top google result, but MSDN is a muuuuch better reference). As a tutorial site, it really pales in comparison to YouTube tutorials or other more comprehensive guides out there. The "certificates" are bull****, too.
yup. i was in this same dilemma a few months back. i took two classes in my masters program and pretty much used the site as a reference. I can't imagine using that as the main source. and yes..using sql to do real world stuff is way harder than learning sql. once i got to inner join and all that..i said screw it.
This sounds solid. I had some advice typed up on my phone, but didn't complete it or type it because of other stuff to do. I consider myself a SQL novice (too lazy to memorize..), and probably can't type up something more than some joins without googling, but my job forces me to eat other people's dogfood, so I'm pretty good at knowing the problems. It's been 20 months since I've looked at a SQL app, but my current project is back on that train. I typed up some reference for other people, so here are some things that might or might not help you... Your job is a little more difficult. The problem with learning through classes is that they teach you the touch and feel of the basics, but the tables/schemas you see or could see can be some grotesque and horribly designed monster without proper design in using of referential and primary keys with simple to follow and normalized tables. You will never realize this if you're learning alone. Utilize your co-workers frequently and graciously.... Once you've grasped the basics, expand your practice with increased scope and complexity. Give yourself a hypothetical...I want to make a social security/DMV database...first with 1000 people, next with 10,000,000. Online and university graduates usually don't do that and they might get a rude awakening if they don't have someone to mentor them...or they don't realize how colossal the impacts could be and the company eats a horribly designed DB with ****loads of information 6-24 months later... That unfortunately sparks a need for DB administrators, which sometimes don't know as much or better than on-site developers over time and potentially become the problem rather than the solution. Most DBAs are fine, so if you are one, I'm not pointing any fingers at you, unless of course you have 30k+ posts with nothing better to do. Anyways, what can you do... Learn how to read UML tables and possibly draw and create them on a program like Visio. Learn relationships like one-to-one, one-to-many (also flipped), many-to-many. Your best bet to do this is to start looking up the tables at your work. Those tables are the roadmaps to your system and what you'd eventually need to construct a valid query. The tricky part in all this is that while two querys can accomplish the same results, they can impact different things and affect system performance and stability. But as you work with tables and practice queries on them, you can start making entries,reads, edits, and deletes to them. I would ask for a local environment to run on your machine, formally or informally. It's the best way to practice, and it helps you master your system to the point where you can ask questions on why tables were created some ways or why there isn't a unique ID for some important and crucial categories. From there, through your own practice and determination, such as hosting a local postgres to play with like what desperado suggested, you can probably end up being DBAdmin-looking without all that baggage of pretending you know better. If progress in IT is as quick as a 6 month leap, obsolescence in IT could be as fast at 18 months, which is why Enterprise DBAs fight tooth and nail for their haloed statuses. That situation is the tricky part, where experience enriches design but design has no one size fits all solution for an online class to cover, so experience can't be rigid or learned through rote. Perhaps there's a class that goes into "best practices" patterns like programming, but I haven't had a need to look for one, so other people will have to offer that. Postgres, btw, is something you should consider paying attention to. MySQL is also a popular free choice, but I feel it's stagnant while the plugins for Postgres at least shows development and potential responses to the challenges SQL is receiving. If that's too technical, it just means learn on it and keep track of it and its changes, the play with those changes because some might not be relevant to your work, but it's relevant for startups.