This app was mentioned in 2 comments, with an average of 7.50 upvotes
I learned the basics from W3Schools and an app called Learn SQL.
From there, I studied pre existing queries at work, and googled whatever parts I didn't understand.
In order to learn the more advanced stuff, like the technical stuff, Oracle (their documentation) is actually pretty good. Most of it transfers reasonably well to other databases.
If you dont have a database to train on, just download MySQL or PostgreSQL. I recomend the latter. If you dont have a dataset, I'll help you out.
*edit: never spent a dime one learning SQL.
Free. Completed both courses. Interactive tutorials. Good as a first start, but found this a bit too simple and not challenging enough at times. I think this makes you feel more confident in SQL than you really are.
Free. Completed all exercises. Very good tutorials (written) with mini practice sessions throughout the tutorials to ensure thorough understanding. Quizzes were appropriate in difficulty. I learned a lot from these. This is probably my favorite.
Free. Quick and easy to start off with to become familiar with basic queries and syntax structure. But does not go into greater depth than the basics. Still recommend when first starting off.
Free. These courses were OK. Completed all three courses. Learn by doing through reading examples and putting examples into practice. Could be more in depth and since multiple queries can answer the same question, I needed to check with those who commented to make sure my queries were outputting the same result even though it was "incorrect."
Another Intro SQL course like Mode or Vertabelo above. Continues to build on basics with different examples.
Free. Used to be on Coursera. I first started off with this, and having very little background in SQL I found this difficult to follow. Moreso because there are no practice sessions while watching the videos so you cannot learn what you are taught immediately.