What do you want to do? If you want to learn the theory. Take this database course from Stanford. If you want to learn practical database skill do the exercises at SQL Zoo. They're not mutually exclusive. Do both if you have time.
Edit: Also you MUST download Sql galaxy. You won't regret it.
will teach you all of the syntax and usage, it's interactive. It's way better formatted than the codecademy one.
The problem with learning SQL is that the syntax is easy, the hard part is knowing your own data structure so well that you know exactly where to join and subquery against.
It's a SUPER short course, only 10 steps through the whole thing and 3 of them don't have you even typing anything.
A great introduction, and if you'd like to learn more I'd highly suggest http://sqlzoo.net/ they're free and gets into a lot of the joins, self joins, NULL handling. It's a good next step after this lesson from codecademy.
http://sqlzoo.net/wiki/SQL_Tutorial
pretty good resource. the 101 fundamentals of sql are insanely simple and easy to grasp. i will try and oversimplify the concept for you, i will probably get shat on, but this is what sql is for me and im in an analyst position.
at it core only two things need to happen.
select what rows you need from a table - 'select'
select the table - 'from'
this is the process that is fundamental and needs to happen every time. if you get how that works, the rest is just building blocks around it. If you are a sysadmin and need stuff like insert table etc then theres a bit more than that but for an analyst you will not need anything more than 'select' and 'from'
2 interactive SQL tutorials (that I know of) have already been done:
http://sqlzoo.net/wiki/SQL_Tutorial
You're now #3.
EDIT: I forgot to give you feedback, or praise in this case. Your site is better than the other two. They send AJAX requests to the backend to parse and process the SQL queries but you figured out how to do everything client-side so your site feels much faster and more responsive. Great job. Also, SQLBolt is a catchier name than PGExercises or SQLZoo, at least in my opinion. If I knew someone who was getting started on SQL I'd refer them to your site first.
Unless you know a specific flavour of SQL that will give you the best chance of landing a job (Oracle, MySQL, Postgres) I'd suggest going with Microsoft SQL Server. You could start by:
Then you can say "yes, I have experience using SSMS to query and manipulate data in SQL Server 2014 databases using T-SQL". You can definitely get to a basic proficiency in a few months if you have time and dedication - but you learn so much more on the job, especially from senior developers and DBAs, that the sooner you can get to work with them the better. Good luck!
I only went from stage 0 to stage 2 on this website: http://sqlzoo.net/ and put myself as familiar with SQL
I also did one project in Python that was in (200 - 300) lines of code, most of which was just copying API code and put familiar with Python as well - The project itself was pretty cool though at the very least and I was asked about it a few times
It's hard to beat SQLZOO. The tutorials give you example SQL statements and then ask to to modify the SQL to achieve a slightly different result. It lets you try out SQL without having to install a database server. You can select from several different popular database engines as well.
/r/learnprogramming
http://sqlzoo.net/wiki/Main_Page
I've started at SQL Zoo and they make it pretty simple to follow along.
I'd also suggest checking out the links from the previous subreddit's side bar.
http://use-the-index-luke.com/
You should install and run a local database. Note that different backends have slightly different dialects; select * from foo as bar
in mysql vs select * from foo bar
in postgres, and other small changes like that.
Probably install MySQL or Postgres.
My 2 recommendations are
Here's how to do a JOIN, I'll leave the rest to you. Might want to check out SQLzoo for some practice.
select * from csorder where orderdate in 'JUL, DEC' and orderdate = '2011' JOIN cscustomer ON (csorder.orderid = cscustomer.orderid) ...
Honestly, if your organization has an Oracle DB I would find the DBA who works on it and become their best friend.
If you can't do that, I would just learn some basic sql on http://sqlzoo.net
If that doesn't interest you, my only advice is to learn PowerQuery/PowerPivot in Excel and do all your data grouping and reduction steps there....save as a csv and connect it to tableau.
But you should really learn SQL.
Well, I'm a full-stack dev working in Silicon Valley and not the UK, and only a few years into my career so take this advice with a grain of salt...
You're definitely on the right track EXCEPT for skipping Javascript. Only skip Javascript if you're ok with a fairly incomplete understanding of the tools of web developers. You can get a job without Javascript chops, I'm sure, but a whole world of front-end engineering will be closed off to you.
I recommend SQL Zoo (http://sqlzoo.net/wiki/Main_Page) as the easiest, most fun way to dip your feet into writing SQL queries, which is a great way to start getting an intuition for structuring your data.
I wouldn't know about Python vs PHP in the UK's job market. I'm sure there are jobs enough for both in London anyway. I think for a junior level guy, the reason you'd want to learn PHP is that there are probably a lot of freelance/agency jobs maintaining the various PHP CMSes. The IMO more exciting software product jobs, will probably prefer Python. But again, the UK market may be different.
You haven't mentioned anything about programming/software engineering/computer science fundamentals... a bit worryingly. Make sure you are confident understanding object-oriented programming, (implementing a game is a great/fun way to learn this)
Anyway, I think the best thing you can do for your career right now is to build stuff. Don't ever be satisfied with just reading the docs/watching the video for technology at this point. You have to build with it for the tech to stick. See if you make a convincing knock-off of something popular like Tumblr or Trello.
If you can't install anything in your computer, try http://sqlzoo.net/ You can select your database engine via the drop down in the top right.
Also http://sqlfiddle.com/ If you're just looking for a Sandbox
You start off with SQL, plain and simple. Technically you'd call it SQL 92, but the standard itself is a) quite big and b) not implemented fully by any major RDBMS.
Nonetheless, SELECT Column FROM Table
looks the same in every SQL variant out there. Once you get to the functions to do some more complex stuff, there will be differences, but rather minor (e.g. current date in SQL Server is GETDATE()
, in MySQL and Postgres it'd be NOW()
, and in Oracle CURRENT_DATE
). Some functions will differ significantly (adding dates comes to mind), some will be missing (GROUP_CONCAT()
in MySQL vs nothing in T-SQL). Window functions also differ by quite a lot.
Generally though, if you know one SQL variant learning what the equivalent function in another one is just a simple google query away, the query logic remains basically the same. Unless you plan venturing into the world of database development, using a procedural language like PL/SQL (Oracle) or T-SQL (SQL Server), you need not to worry about it. The most important thing about learning SQL is not in syntax, which is rather trivial, but the fact you're working with sets of data, which a lot of people have trouble with, especially those with background in procedural programming.
I recommend http://sqlzoo.net to get started, you get exercises you need to complete, quizzes, what not. It walks you through all basic SQL features.
Wait wait wait, before you buy anything, do SQLzoo. It's can be a little confusing, but if you can get through all the material, you got it. Six weeks is fine, you're good. Also, it might work out well if you get yourself a nice simple GUI for whatever provider you'll be using so you can easily practice queries.
I'd also like to second the idea that the hardest part of learning SQL is understanding how to structure a relational DB. What helped me most was doing a ton of reading about concepts and using visual diagramming tools so I could easily conceptualize relationships.
Good Luck!
I would highly recommend going through a basic SQL tutorial like SQLZOO or similar. This will really help you understand how relational databases work, and will give you a lot of insight on how to model your data.
I don't think they have a class that teaches SQL for non-CS majors. However, it's one of the easiest languages to learn.
Some resources:
http://sqlzoo.net/wiki/SQL_Tutorial
http://sol.gfxile.net/galaxql.html
http://sqlzoo.net/ is pretty good for getting your SQL basics down. It only takes a day to go through all the material; definitely worth the time.
The demand for Rails developers is such that you can probably land a Rails job knowing next to no actual SQL, but you should know it to actually be competent at that job, and relating questions about ActiveRecord where and includes and such to the actual SQL under the hood can be impressive in interview, too.
I was in your shoes a few months ago. I learned syntax and basic stuff via SQLZOO and GalaXQL. SQLZOO is web based and GalaXQL is a downloadable application, so you don't have to do much prep work. Then I did Learn SQL the Hard Way which shows you how to use SQL in the command line. It's great but is a work in progress - last I checked only 15 lessons were done.
Good luck!!
A short story:
I maintain a Django based CMS for a company. It was my first freelance gig ever and I taught myself a lot along the way. I actively avoided learning any sql and relied heavily on the Django ORM to get everything done.
It was built on 1.6 which didn't include migration support yet so I was using south.
Anyways, I hadn't touched the site for a few months and I got asked to add a few features. I had to alter some existing tables in the database... when I tried to run the migration I was met with a bunch of errors and a crippled database because one of the south migration files was corrupted ( I have no idea what happened ).
Fortunately, I had just started learning SQL the week before. I looked at the postgres error logs, found out about the offending query, and quickly figured out how to fix it (some kind of ALTER TABLE statement)
This was the day I learned to respect SQL, because without it, I don't know what I would have done, and this company's active production site would have been bricked until I figured it out.
Now, I avoid using ORMs when I can and just run raw queries... they're faster, and much more powerful. Plus, you can do some cool things with SQL knowledge if you're interested in data at all. I recently found a long forgotten phone number in a 3 year old text by querying the messages database from my old iphone for specific words.
Here are a few resources I like:
Hope that helps.
Sure! w3schools is good for the basics. I liked SQLZoo for more in depth examples and making hands on queries, and I kinda liked Learn SQL the hard way for some practice problems.
What environment do you have access to? There are enough small differences between SQL variants for this to influence / restrict your decision regarding tutorials. Unless there's a reason to switch, you're probably best of sticking with whatever platform they use at your job.
Otherwise go for one specialising in your platform. The fundamentals of SQL are very simple - deceptively so in fact. If you're looking to fully grok SQL then it might be worth starting a little database project of your own - e.g. to catalogue your DVD collection or something. Most SQL books will have a sample database to work through and of course you should work through that first, but you may find it only clicks when you're working with information you properly understand/own. The sample databases which come with some SQL platforms (e.g. Microsoft's AdventureWorks) are a bit too complex / unwieldy for a beginner to grasp.
Everyone learns in their own way of course, but personally, the most I learnt was from the monumental fuck ups I managed to achieve on my own.
Final advice: Stay clear of MS Access if you want to understand SQL.
You can practice your T-SQL with the exercises on these sites:
Also checkout W3schools. Once you get started you'll just pickup new topics and learn them as you go. r/SQL has tons of posts with guides and whatnot.
You should get a head start on learning some of these programs now while you decide the type of undergraduate degree you should pursue, rather than waiting until you enroll in a program to take the related coursework. You're justified in your reasoning for wanting accreditation, and you should certainly acquire it, but you can at the very least start getting your feet wet.
Since you're already familiar with Access, SQL should come naturally to you as it's also a relational database system. This site will serve you as a decent introduction to SQL. There are several other resources you can find through Googling that will give you additional practice.
Learning Python and how to impliment it should be your approach when learning it. The learning aspect will cover the basic formalities you need to write code such as the proper syntax, introduction to for loops and such. Then comes the implementation. Since you're looking to be a data analyst, you should understand the ways you can use Python to analyze data. In this regard, Python is a very powerful programming language as it is very rich in features that will help you accomplish data related tasks.
I just started learning R, so I'm not too familiar with how it differs from other programming languages besides the fact that it is more devoted to accomplishing math/statistical related matters.
SQLZOO has some good practice problems that I think were helpful when I was brushing up on SQL. Looking at your list of things you know, though, I'd say the next logical step would be to learn aggregate functions (notably SUM), and the related GROUP BY and HAVING clauses. As a data analyst, my boss will randomly ask me, "What is the cost impact of _____" several times a day and literally all of those questions are answered by aggregate functions (and 99% of the time it is SUM).
Be honest with your potential boss and yourself.
Check your Impostor Syndrome.
Give it a shot. JS is a C-like language as is PHP, so the syntax should look somewhat familiar. And SQL has a dead simple syntax, it's just the queries that can get complicated.
Check out codewars for some good practice on C# (or really any other language that you're trying to work with).
Check out SQL Zoo for some practice using SQL syntax and running queries.
w3schools should really just be used like a dictionary in that you dont use it to learn how to speak English.
I used http://sqlzoo.net/ a few years ago and I picked up enough to be dangerous in an interview (which I landed).
Are you working full time or part time? My last job was part time (well, current job is also) and I spent the rest of my time volunteering at a museum in their info team. I already had minimal SQL skills and this gig helped me strengthen them. They were so incredibly nice and completely understood that this was all a learning experience for me. That plus lots of online tutorials like http://sqlzoo.net. Now, this team I volunteered with doesn't normally take volunteers. I started off with a different team doing something else, but when they realized they liked me, I could be trusted, and was serious about databases, they let me move over.
The job I ended up getting doesn't use this stuff at all though, but I've decided to stick it out a year and then go back to job hunting for something more related to digital collections & metadata. Hopefully by then my volunteer gig won't look too out-of-date though.
When to list as skill? When you finish Khan Academy. State that you have 'working knowledge of' SQL or 'beginner of' SQL.
Job I'm interviewing for now required "Expert SQL skills- complex queries, joins, and optimized tables". I didn't even have SQL on my resume when I applied. And technical questions in the first phone interview were soft. How do you SELECT data from database? How would you choose a range of dates? (With a WHERE statement)
What level of proficiency am I? I can do everything on the SQLZoo page. So beginner.
Go ahead and list it. The general knowledge of SQL is nice even if not required.
Depends where you are located. I think OP is in the UK? In the US most colleges should have courses, in addition to community colleges and development centers. Also you can play around on http://sqlzoo.net/ to learn the basics.
I just don't think you should get too wrapped up in this or that database. At any decent place you'd work there should be DBA's who'll administer all that stuff. It's more important to just learn the fundamentals of SQL.
You can just look around for SQL tutorials, here's one that looks decent on first look http://sqlzoo.net/wiki/SQL_Tutorial
Many years ago, I quickly used http://sqlzoo.net/ to learn a bit more about SQL and learn the correct syntax for the database I was using (and then promptly forget the syntax after using it). I'm not sure if the site is still good.
Ah, so it's that kind of class! In that case, you need to do the following things:
Practice doing basic SQL stuff. Make tables, put data in them, write queries -- essentially, you need to get comfortable using a database, and you need to do it on your own, because it looks like your class isn't going to teach you this stuff well. Here's a web site that covers all this stuff, with an interactive SQL interpreter and some example data so you can learn hands-on as you read:
http://sqlzoo.net/wiki/Main_Page
Get background knowledge on NoSQL. When you're given an assignment like this, the first step is to do some reading on the background, so you know what's up. I would recommend starting with a wikipedia binge, and following up by looking at some of the major NoSQL databases: what are they saying is their reason for existing? For example, Riak advertises automatic scaling across multiple servers, but requires that you use a data model that doesn't need joins. Learn what the tradeoffs are.
Get your hands dirty with one or two NoSQL databases. Looks like this is what you're doing right now. I would recommend that you also check out Redis, since it's really easy to use and get started with, and super-useful. (For example, Twitter feeds are served out of Redis because of its speed.) The reason I recommend using two or more NoSQL databases is because they really are not all the same, and by trying more than one, you can get some diversity in your experience.
Run through the tutorial at SQLZoo: http://sqlzoo.net/wiki/Main_Page
Keep in mind that there's no standard for SQL. In other words, SQL in Oracle varies slightly from SQL in PostgreSQL or MySQL. But, the basic concepts are the same. Once you learn how to do some basic queries, you can up your game by learning DDL (data definition language). This will allow you to create your own schemas and build a DB from "scratch".
You're welcome man. Depending on your level, these reading websites can give you just as much, if not more, than what these books have to offer. To me I learn a lot better with actual examples and reading books only help me with high level "best practices". To actually learn SQL you need to do a lot of SQL. The reason I prefer sites like these is they actually give you true life examples.
The first question I really have for you is, what are you going to be doing that you need to learn SQL? If you're doing a helpdesk job that needs some sql knowledge then maybe you should focus on installing, resolving issues as detached databases, recovering data, etc. Doing stuff like this you only need a really basic level of SQL knowledge but a better understanding of the administration. If you're wanting to be a BA then you can learn basic SQL queries then supplement excel to really deliver good reports.
If you can give me a general idea of what you're doing then I can point in you in a general direction. I listed two sites below to give you a better into to SQL explaining select statements.
I was just looking for something similar for a new hire. Check the sidebar if you haven't already. Found this in there which looks like it's be great for him to go through, it'd probably help you too, I believe "doing" is always the best practice http://sqlzoo.net/
Stanford and MIT have free online courses, maybe they'd have something good, too? Let me know if you find a good one.
Personally, I just used the O'Reilly book 'Learning SQL'. The language syntax is really quite limited and easy to pick up in a week.
The only real complexity comes in understanding relational data. Some applications have a good design that is intuitive, but many (most ERPs I have worked with) are convoluted bastards that take months to fully comprehend.
Anyway, getting enough baseline SQL knowledge for an internship should be pretty straightforward. Good luck.
I recommend SQL. There is a dearth of data engineers in the industry right now.
SQL (Structured Query Language) is used to query databases - and is, in my opinion, easy to learn. There are several online free courses where you can start right now. One you may want to check into is:
This tutorial, actually has you create and run SQL online and covers most of the database flavors (Oracle, SQLServer, MySQL, etc.)
Here is my code: > SELECT a.company, a.num, distinct stopb.name FROM route a JOIN route b ON (a.company=b.company AND a.num=b.num) JOIN stops stopa ON (a.stop=stopa.id) JOIN stops stopb ON (b.stop=stopb.id) WHERE stopa.name='Craiglockhart' and a.company='lrt'
You can run it here: http://sqlzoo.net/wiki/Self_join Question 9
I don't think that the problem is in the stop word, if I place the distinct stopb.name clause right after SELECT it works fine.
My intent was not to dissuade you so I hope you aren't making your decision solely off my response. I may have been a bit critical, but, frankly I know several people really enjoying some of the courses they have had. I have only taken 3 courses and the program is young and growing.
Frankly, I'm not sure any academic courses in any major is going to fully equip someone to be "data science ready". The IU masters and others. can be a stepping stone to getting there (with the addition of some self-study). It seems classes tend to focus on mathematical properties of machine learning/stats algos in lieu of showing what works in practice.
I use SQL very frequently for hitting databases for data. I rarely need anything beyond fairly basic SQL queries and if I need something complex there is always google :). I wouldn't recommend worrying too much about taking a specific sql course or concentration as it is a skill that is very easy to self teach. I recommend: http://sqlzoo.net/, https://www.w3schools.com/sql/, http://www.sqlcourse.com/
A good tutorial site for SQL is SQL Zoo http://sqlzoo.net/
In regards to online courses, I really like the course SQL: The hitch hikers guide to writing SQL queries on Udemy https://www.udemy.com/sql-the-hitch-hikers-guide-to-writing-sql-queries/
Another good one on Udemy is MySQL and SQL from Beginner to Advanced https://www.udemy.com/mysql-and-sql-from-beginner-to-advanced/
For interview-type information, and as someone who didn't know much at all about relational databases and SQL, I can highly recommend courses from this Stanford online module, particularly the Intro, Relational Algebra, and SQL minicourses.
You'll need to have a bit of a tolerance for high information density (the prof packs a lot into a short time frame), but the vids can obviously be rewatched and are excellent for actually learning the structure/'ideas' that underlie SQL databases. It'll be much kinder to you for learning interview-grade information than your standard codecademy-grade syntax courses. Also, I wouldn't worry about getting the exercises included down pat, some of them are needlessly tough -- just watch the vids a few times and try a few of the exercises and you'll almost certainly soak up enough info to handle the interview competently.
If you do want to also practice syntax, I can recommend SQLBolt and SQLZOO.
SQL is actually pretty easy to learn, and once you have the basics down it's really amazing how you can manipulate data. Spatial join and update column is barely the tip of the iceberg when it comes to relational data tables.
Sorry to hijack the thread and ask a slightly different question. I figured you are good at SQL, so I'd like to know if there's any implicit 'JOIN' happening in the following query:
select title from movie, actor, casting where movie.id = casting.movieid and casting.actorid = actor.id and actor.name = "Harrison Ford" and casting.ord != 1
The original question on SQLZoo can be found here at question#10. Thanks in advance for the answer. :)
This site is decent for basic SQL learning: http://sqlzoo.net/wiki/SQL_Tutorial
I haven't tried this yet, but it's on my list: https://www.khanacademy.org/computing/computer-programming/sql/sql-basics/v/welcome-to-sql
My attempt at number 7 in medium questions: http://sqlzoo.net/wiki/AdventureWorks_medium_questions any input again would be greatly appreciated.
select caw.CompanyName, pm.Name from CustomerAW caw join SalesOrderHeader soh on caw.CustomerID = soh.CustomerID join SalesOrderDetail sod on sod.SalesOrderID = soh.SalesOrderID join ProductAW paw on paw.ProductID = sod.ProductID join ProductModel pm on pm.ProductModelID = paw.ProductModelID where pm.Name = 'Racing Socks'
My attempt at number 6 in medium questions: http://sqlzoo.net/wiki/AdventureWorks_medium_questions any input again would be greatly appreciated.
select * from ( select SalesOrderID, UnitPrice, count(OrderQty) as TotalOrder from SalesOrderDetail group by SalesOrderID ) as sub where TotalOrder = 1
I used the first half of this and then began doing personal projects. Very good guide, though I would add some type of database practice like http://sqlzoo.net/
I also like the books laid out here: http://codingforinterviews.com/books
Try http://sqlzoo.net/ for SQL and https://www.codecademy.com/ for other languages like Python.
Honestly, don't underestimate the importance of being able to learn something on your own. You can learn things in an academic setting but on the job you may not have this luxury when something new comes up.
Well in HS I learned Basic and VB, HTML and CSS. In college I learned C/C++, which is similar enough to Java and PHP that you can be proficient if you're a decent Googler.
After I left school the crappy construction job I had was nice enough to send me to night school to learn AutoCAD. It's served me well, but I honestly find Visio much easier to use for my job now.
Everything else was pretty much learned on the job or in my down time. The various HMI software companies all offer training classes; they're really not that difficult to learn by using if you're a computer person. Think of MS Paint with some scripting.
I used this set of SQL tutorials when I got a big DB project dumped on my lap. I'm not an expert by any means, but it's been a great tool to add to the bag.
I can tell you that besides programming/HMI software, Excel has been the most useful tool in my career. I've been able to do some really cool things like interfacing with customer databases and pushing/pulling data from PLCs all through the VBA interface. Again, Google is your friend because there's almost always someone else who has already done what you're trying to do in VB.
I'm kind of at the office drone part of my career now, but for quite a while I was traveling around the west coast to different plants for various projects. I'm a very hands on kind of person, so I got a lot of enjoyment dividing my time between the keyboard and the plant floor. It definitely wasn't boring, but living out of a suitcase gets real old for me after about a week's time.
Sorry man, things got away from me yesterday. Thanks for cirlcling back.
SQL Zoo; http://sqlzoo.net/wiki/SQL_Tutorial
Learn SQL The Hard Way (great series of books, too bad I'm hopeless at basically any other language);http://sql.learncodethehardway.org/
To be honest, it kind of depends on the environment - if you're a 'pure' temp (i.e. no plans to hire you on at all) then I would say 80% Excel, mostly analyzing and shaping data, with 20% in SQL pulling the data out as a bonus. If it's a temp tryout sort of thing (i.e., we'd like to hire someone on for longer but are wary) then I could see that balance shifting to about 60/40, and I would expect you to know basic SQL SELECT statements including grouping and subqueries at a very basic level.
Is this really all you need to be an entry level Data Specialist/Analyst? I'm looking transition from Project Management and still feel light years away after completing GalaXQL, SQLZOO, and lSQLthw, as much as it exists.
Regardless, your comments are super encouraging.
What kind of education background do you have? Data scientists typically have at least a Masters and are well versed in CS, so I'm surprised you'd be at this stage without knowing SQL at least decently.
If that's all you need to learn though, it's really not a big issue, it's fairly easy to learn in my opinion. Lately I've recommended http://sqlzoo.net/wiki/SQL_Tutorial to beginners as it's a very practical tutorial.
Database theory is less useful than understanding the SQL language and the normal forms. A lot of the theory of database design won't help you in using databases or writing performant queries.
Normal Forms http://www.bkent.net/Doc/simple5.htm
Learn SQL http://sqlzoo.net/wiki/Main_Page
I assume this is a class that you're enrolled in for this next semester? Is there a class description?
Post it here and we can better answer some questions you may have about the class.
Depending on the software you use, there is a lot of work you can do without knowing any code. Information, Data, Tables, Databases... get used to these words... a lot of GIS work is just this. Learn SQL, you can learn on your own. Start here http://sqlzoo.net/wiki/Main_Page.
for python, codeacademy for sure. Sorry i dont have anything for the other two as I learned them on the job.
Googled some for SQL:
http://sqlzoo.net
http://www.sqlcourse.com
https://schemaverse.com/
IMO you can pick up the working basics of SQL in a week or so just by being around it. You'll know enough at that point to make some ugly queries that will work well enough for most data sets you're likely to come across.
That being said, there isn't much reason not to go through sqlzoo and get an understanding. It's pretty easy and even if you don't need it directly, it will help you understand what those ORMs are doing.
Trying to get back in practice after doing some in education and now needing it for work, using http://sqlzoo.net/. I like the interactive aspect but there's no hints or anything like that apart from when you get the answer wrong you can hit show correct answer which shows the table that should be returned. You can try to work backwards from it but I think it should have better hints like which keywords to use or pointing to specific help pages.
SQL is pretty straight forward compared to traditional coding since it is an interpreted language that looks a lot like readable English.
Just try out some learn to code sites and you will get up and running in no time.
http://sqlzoo.net/wiki/Main_Page
click on SELECT basics and have fun. :)
If you just want hr basics, someone here has recommended sqlzoo. I don't do much with SQL, but I did run through it and felt like it was alright.
C# was actually Microsoft's answer to Java, so it's more closely related to Java than C++. The syntax will be easy to get down, but the standard library and some of the language features may take a little bit.
I kind of like sqlzoo, it's an interactive site for learning different sql implementations, I've only spent a little bit of time on it but I really like that they have tutorials for several implementations. Downside is that you aren't really learning the software, just the syntax.
If you are confused about the different types of joins (left, right, inner, outer), you won't really get this by reading alone. You must setup some test data and try this out. I think there are some web sites where you can do this without much effort. sqlzoo could be worth trying.
I can't speak to C# or ASP.NET, but SQL can be easily picked up from sites like http://www.w3schools.com/sql/default.asp and http://sqlzoo.net/ . SQLZoo has pages on the various database software too, though for specifics I usually just search out the official documentation.
For SQL I love this site. There are dozens of quick interactive problems for you to solve. It's so nice to try out each concept without needing to go configure your own learning environment.
http://sqlzoo.net/ is a fantastic resource. Go through their exercises, and perhaps build yourself a database. MySQL, Postgres, Oracle, hell even MS Access if you have to. Build something you care about. Have a lot of books or CDs? Build a database to keep track of them. Then, ask some questions, like "how many rap cd's do i own?" or "what books are on the shelf downstairs?" Then figure out how to write the SELECT to answer that question.
Eventually you will read more and learn that you probably designed a crappy database with bad normalization, and then you can learn by rebuilding it and improving it. It is a lot easier to learn stuff like this when you have a stake in it.
Try SQL Zoo and Datbase eLearning.
They both have good tutorials and databases to practice with.
They were made by lecturers at my university and are used as teaching tools.