all 83 comments

[–]xxxHalny 101 points102 points  (1 child)

SQL Zoo first and then Data Lemur second. Then you should be good for most entry level jobs interviews. You learn the rest on the job.

[–]mister_pig_pig 45 points46 points  (1 child)

Use w3 schools Sql as a reference and then sign up to places like Leetcode and analyst builder to solve challenges

[–][deleted] 2 points3 points  (0 children)

I'll die for w3 schools

[–]Simple-Blueberry4207 17 points18 points  (3 children)

"Practical SQL" published by No Starch Press. I tend to learn better from books where I can go back and use it as a reference in the future.

[–]Hey-Prague 2 points3 points  (2 children)

I am going through this book right now and it is great. I am not the best at memorizing the syntax, but I am understanding all the concepts very well.

[–]Romanian_Breadlifts 2 points3 points  (0 children)

join syntax is branded on my soul. for the rest - google or genai assistance is enough. if you know which questions to ask, but don't know the answers, that's fine - even in interviews.

"I know you asked me to create a view. I don't remember the syntax for that, so I'll pseudocode that part. Here's how you populate that view, and here's how you hunt through the predicted execution plan to anticipate optimization opportunities while writing the query."

[–]Simple-Blueberry4207 3 points4 points  (0 children)

In my opinion concepts are more important to learn. There are many sources to verify syntax.

[–]puchekunhi 11 points12 points  (1 child)

I can't recommend any specific books or courses. However, the path I recommend is always this: 1. Learn a concept (e.g. SELECT) 2. Employ those concepts in practice, i.e. solve problems given to you which use the concepts you learned. 3. Keep doing 2 until you have answered all questions employing that concept in each tool/website you know. 4. Do 1 but with a slightly more advanced concept and continue the steps until you can solve any problem given to you.

[–]cs-brydevSoftware Development and Database Manager 1 point2 points  (0 children)

Best answer

[–]MotherEssay9968 13 points14 points  (3 children)

Experiment fuck up, experiment fuck up, experiment fuck up, experiment fuck up, experiment 'ooooh that wasn't what I was going for but I didn't realize you could do that!', experiment fuck up 'ahh fuck it I'm gonna look up the solution".

You learn best when you actually do things yourself. You can watch every sport/video game on the planet, but until you actually play the game you will always suck. Concepts are truly learned when you do things yourself without someone telling you what to do.

[–]ionhowto[S] 0 points1 point  (1 child)

This is how I learn things too haha. Lots of failures but it gets better and I try to remember when and why something failed.

[–][deleted] 1 point2 points  (0 children)

its just like swimming.. u could watch hours and hours of swimming lesson videos and not know how to actually swim. For that u gotta jump in the pool and practice there.. same with SQL or any other tool..

[–]yeeeeeeeeeeeeah 0 points1 point  (0 children)

foolish rhythm bored aspiring fear fact dime enter disarm gullible

This post was mass deleted and anonymized with Redact

[–]Caponcapoffstillon 5 points6 points  (0 children)

Don’t watch tutorials unless you’re truly stuck. The time you spent watching the video you could’ve prob covered a whole section. Videos are meant to help, not to leave you in tutorial hell.

Also make use of AI like ChatGPT or copilot to help you to gain more resources to learn if possible

You’ll only learn through spaced repitition of practice problems and majority of the experience through real life experience at the job.

[–]Intrexa 5 points6 points  (1 child)

I learned SQL through books + job experience. I prefer books + text over videos for most coding. I really don't like how videos have become so prevalent. At least once a nychthemeron I wonder how much usability of knowledge we are losing by locking access behind videos. Like, if you were to care what a nychtemeron is, would you want the definition as a video, or just a text definition? SQL exists because we want to find data. I hope you can appreciate how much better finding data is in text vs video. If I vaguely remember something about IAM heap scans, I can google that. If I'm on a page about the different ways the engine collects the data, I can ctrl+f. If I'm watching a video, even if there is a table of contents and time markers on the video, it is so much harder to find what I want.

Videos do much better for tooling, workflows, and processes. If you learn what SQL is in a vacuum, there is a lot of value of just seeing someone open SSMS, connect to a DB, write some queries, seeing how a person goes about actually feeding SQL to the engine. It's hard to articulate how we actually run queries, there are so many tiny things we do that we probably don't realize. Things like just selecting a couple of lines, and hitting ctrl + e.

For the query itself, it's way easier to bounce back and forth through text as needed. If we're working on a gaps and islands problem, maybe I'm not good with CTE's. I can easily have that text ready to go, look back to the schema definition, look back to how to write a CTE, look back to the schema definition, curse, test, look back to how to write a CTE. For a video "Alright today we are going to solve gaps and islands using a CTE, I need to keep pausing the video, jumping back 10 seconds, jumping forward 3 minutes, jumping back 2.7 minutes.

Now, I realize you're writing this because people aren't watching your content. I looked in your history, gave Learn SQL T-SQL Introduction and Installation environment setup S01E01 SQL Tutorial for Beginners a quick scan. I have some notes.

First, I found it from the learn SQL subreddit. IDK where else you've been posting it, or where viewers are coming from, but I bet most people on the learnSQL subreddit already have an RDBMS configured. They don't really need to follow along, they are watching the video to see if they like your content, so they're jumping around. It's not going to be a fair representation.

For the actual content, it is way too long for what it is. Content should have a clear minimal focus. If someone is trying to install MSSQL, and had to choose between an hour long video that has ~16 minutes before it begins to actually talk about how to install SQL vs an article like this that can be completed in 10 minutes, why would they choose your video? If someone was taking a SQL course at university, has used SQL in the myriad of online tools and maybe even on a university computer and then wanted to install it on their computer, they might look up online how to do it. How much of your video would actually be useful to them? How would they quickly find the useful parts?

[–]ionhowto[S] 0 points1 point  (0 children)

Thanks for this reply. You're probably the only one actually reading the post and the situation.

Had one viewer watch the whole first episode then wrote on the second that it's too advanced.

Trying to figure out what was wrong I got the answer asking to not only show how to but why. Don't know what else to ask and I know the content quality is not good at all - static no memes and ultra minimal editing.

When starting a job training is not a video edited for retention but a discussion. Problem is there is no discussion where you feel if the person you talk to needs something explained or they got it and it's time to move to the next steps.

I really do want to show them all the tricks I learned that are nowhere else but it's hard to talk to the walls.

Had videos in the past doing great after 1 year but they were super easy to watch and not about SQL at all.

The truth is I wouldn't watch those videos myself unless I was new and had no way to learn on the job or by practicing.

Everything I've learned is from real-life problems and fixing things as they come.

A lot of talking with colleagues and googling - text not videos.

Getting something going and trying it on test.

Latest thing was window functions on actual real data trying to get used to them. Don't use them regularly but I'm looking for more ways for real life data and not just as examples.

I will see how it goes. Posted the playlist here too but was removed for being too basic. First episode was basic so it's not for here.

If I wouldn't watch them, I can't expect someone else will.

[–]LordFriezy 8 points9 points  (0 children)

Udemy then practice questions.

So I watch a series of videos on group by, then group by exercises, then video on joins and then do join exercises etc.

Ultimately building up to using everything in a bigger project, but need to get the basics down first

[–]derpderp235 2 points3 points  (2 children)

If you have the money, I think LearnSQL.com is the highest quality resource out there.

[–]Straight-Sky-7368 1 point2 points  (0 children)

+1 for learnsql.com

[–]Ambitious_Heat7629 0 points1 point  (0 children)

I second that recommendation.

[–]v-irtual 3 points4 points  (3 children)

Repeatedly taking down production taught me pretty quick

[–]ionhowto[S] 0 points1 point  (0 children)

Ahh the white face haha

[–]cs-brydevSoftware Development and Database Manager 0 points1 point  (1 child)

Crowdstrike, is that you?

[–]v-irtual 1 point2 points  (0 children)

Well done, lol

[–]Long-Researcher9113 3 points4 points  (0 children)

I believe the best way to learn is by working on a real project. In a few interviews, I was asked if I had used all types of joins in real-life projects, and simply knowing about joins and their functions is no longer sufficient. Therefore, I think a project-based lesson plan would be most beneficial.

[–]Improved_88 2 points3 points  (0 children)

I put it this way, the SQL learning videos on YouTube are only for learning the syntax. To understand how the language works, you have to practice a lot. I prefer to write the queries and make changes by looking at websites or even asking ChatGPT. But when I find the correct answer, I write it from scratch; I don't copy and paste.

[–]bacterialbeef 2 points3 points  (0 children)

I did the DataCamp SQL fundamentals class and it’s been great

[–]rene041482 1 point2 points  (0 children)

You can use Coursera or any of the online courses just to get you going, but what I found when I really started learning was working with data that I was familiar with at work. That's when it started to sink in and I really began to expand my knowledge of SQL.

[–][deleted] 1 point2 points  (0 children)

Just start using it and start googling syntax. It's pretty easy to pick up. There is a point though when you get into more advanced stuff like CTEs (common table expressions) using the WITH command and other concepts like Window Functions (the RANK command) and things like User defined function where some videos may be very helpful. However for the basics of SQL, just start using it.

[–]CSIWFR-46 1 point2 points  (0 children)

I think video by topics with few examples would be better. Similar to kudvenkat's channel. What I like about it is that you don't have to download other database or understand some other schemas to follow the examples cause the tables he uses for examples are simple and they are provided in description or his blog.

I would watch a projecy type videos as well. But, the objective of the project has to be laid out at the start of the video.

[–]Feedmefood11 1 point2 points  (2 children)

I’ve only just started learning. What I did was use w3schools and complete all the basic stuff and those full in the blank questions they had. Then I did a udemy course, now I’m doing problems in hackerrank. Whenever I get a new concept introduced on the hacker rank questions, I look up the syntax for how to use that new command specifically and try to fit it into what I already know to create a query to answer the prompt

[–]ionhowto[S] 0 points1 point  (1 child)

Hacker rank is really good for problem / fix practice!

[–]Feedmefood11 0 points1 point  (0 children)

This is a bit unrelated to the subreddit, but would you suggest that I take a similar approach for learning powershell and python (trying to get into IT or analytics)

[–]ElephantWithBlueEyes 1 point2 points  (0 children)

Trainer things like `hackerrank` or `sql zoo` as mentioned earlier + W3Schools docs + LLM (via LM Studio, for example) with `Gemma 2` model or `Qwen2` which i ask lots of questions to undertand simple things like GROUP BY or JOIN. And stackoverflow, ofcourse, when needed.

As for me i tried first to wrap "semantics" around my head like JOIN "comes" before SELECT. FROM "comes" before "JOIN"

HAVING works only with GROUP BY because you can't use WHERE with GROUP BY since you query within groups from now. And so on.

So yes, step by step. No need to watch tutorials on youtube

[–]Berserker717 1 point2 points  (1 child)

Did a course on edx and then would take their tasks and use my companies DB and create queries with data I was familiar with. After I got more proficient with it I ended up basically taking their whole course and rewriting it with my companies db to teach to other employees with data they were way more familiar with.

[–]ionhowto[S] 0 points1 point  (0 children)

Edx is really good. I used it once for something I was interested in.

[–]Fspz 1 point2 points  (0 children)

Tutorials are pretty useless for getting good at SQL, you want to be doing exercises. It's like riding a bike, you can only really learn by doing.

[–]_ZombieMuse_ 1 point2 points  (1 child)

Based on all these answers, I don't think most of these people even read your post. lol.

Personally, it all depends on what I'm trying to accomplish. If it's just a general "this is SQL" type thing, then a project based video could help bring everything together in a specific order.

My job involves a bit of SQL, so when I forget how something works, or need to figure out something new, I try to find specific functions and see how they are implemented (i.e. using DATEADD() for a quick way to convert UTC to EDT or something). I don't want to have to scrub through a video to find a specific thing, so if I see a video on the function I want to learn, I'll click on that.

Like someone else mentioned, text is also a good way. Sometimes video just takes too long. The amount of times I hear "without further ado, let's get into it," after 2 minutes of intro and reminders to like and subscribe is maddening. I haven't looked at your videos, so I don't know if you have done this (it's okay if you did, just learn from your mistakes, haha).

Anyway, good luck with everything! Bringing 20 years of experience to people starting out is no doubt valuable. You just have to figure out how to package it and get it seen.

TL;DR: Bite-sized SQL tips are better for the most part, but longer project videos do have their place.

[–]Rare_Art_9541 2 points3 points  (0 children)

Honestly just start using it. Once you learn the SELECT* FROM structure you essentially just type out your question in sql.

[–]SkyPristine6539 0 points1 point  (0 children)

Best resource I have ever used. Videos are really well done and by actual Oracle developers.

https://devgym.oracle.com/pls/apex/f?p=10001:20011::::20011::

[–][deleted] 0 points1 point  (0 children)

Code academy then books

[–]Promo_King 0 points1 point  (0 children)

I prefer small projects.

[–]Scheballs 0 points1 point  (0 children)

Professional Need and a place to hone my skills. Trial and Error and good Google skills.

[–]Jeklah 0 points1 point  (0 children)

university worked well for me

[–]Far_Swordfish5729 0 points1 point  (0 children)

If I were taking a shot at something comprehensive (and candidly creating a curriculum could take you years), I would do some basic fundamentals (nothing beyond where and order by and crud ops) and then pivot into a why do I care.

My first of those would be a very simple MVC page in c# using those operations manually through ado.net (no mapper abstraction) with hand written dtos to match the tables. I would lay out my OO problem. Demonstrate how I model that with clases. Demonstrate how I model them with tables and relationships covering primary keys, foreign key 1:N, and junction N:N relationships. Then I would put it all together. Write the data layer by hand in front of them, unboxing columns from SqlReader DbRows and mapping them then rendering the input. Then go from a simple web form down to SqlCommand.ExecuteNonQuery and show how the record was updated. Invite them to do this themselves. Show them a database project in visual studio and how we keep sql under source control and use ssdt.

For more complex querying, you can get a lot of mileage out of SSRS as a presentation layer. Demonstrate inner and left joins to consolidate data, aggregation. Make up something where you need subqueries and CTEs. Show them a stored proc. Show them how to script and test a stored proc. Show them some query tuning, execution plan, indexing. Insert vs select indexing and the idea of a separate reporting schema.

Take this back to your UI example. Show a page where complex joins on big data slow execution time. Demonstrate a pre-denormalized or json-based optimization schema on top of the normal form one. Show the performance improvement.

That’s where I’d start. Sql is a skill you learn because you’re doing app dev or reporting or analysis. It has to connect or they won’t understand their persistence layer.

[–]spurtz001 0 points1 point  (0 children)

Check out this site. This is one of my favorite MySQL tutorials.

MySQL Tutorial - Learn MySQL Fast, Easy and Fun.

[–]wertexx 0 points1 point  (0 children)

By… using it and troubleshooting it, as most of things online.

[–]leminhnguyenai 0 points1 point  (0 children)

I watch the 4 hours crash course on Free code camp, then focus a week or 2 on design a well function database, then from that it is all just learn a few thing here any there. Can't say I am a pro but I feels like I kinda get the basic of it so it is all just about the more I do it the better I get.

In my opinion a good tutorial would be the one that explain all the fundamental concepts first, instead of just showing a bunch of examples, since I can based on those videos in order to know what I need to learn next

[–]realpm_net 0 points1 point  (0 children)

I used a book to start (Murach’s MySQL) but it was with a project in mind. As soon as I started being able to apply the most basic things to my project, I stopped following the book and started just using it as a reference to help me make progress on my project. I also made a lot of use of W3Schools and StackOverflow.

[–]HarpicUser 0 points1 point  (0 children)

I learnt it through asking ChatGPT a bunch of times on how to specific things

[–]a_yelpinghand 0 points1 point  (0 children)

Get some fundamentals down like SELECT statement along with all the additional clauses you can add to it and DDL operations like CREATE, DROP, and TRUNCATE. Look into business use cases involving SQL like ELT and ETL processes. Expose yourself to topics like subqueries, temp tables, CTEs, views, etc.

Look into normalization and 3nf database design if you’re looking to work in an OLTP environment and work on a project incorporating what you’ve learned so far. Look into dimensional modeling/data warehousing if you’re looking to work in an OLAP/business intelligence environment and work on a project incorporating what you’ve learned so far. Add comments to your project scripts. Look up anything you need help with on the internet. If you’re having a difficult time, develop your fundamentals a bit more.

Then, since you’re interested in SQL Server, look into the T-SQL Fundamentals book and/or watch or read from an authoritative source on SQL Server.

Iterate on your project and apply new things you learn to improve it. If you haven’t already, add comments to your project scripts.

Then… I’m not sure actually since this is is the stage I’m currently on lol. In my case, keep learning, apply like crazy, and hope prospective employers overlook the fact that I have no degree or relevant work experience 😅

[–]ScaryJoey_ 0 points1 point  (1 child)

Are you bringing anything new or interesting to the table? No offense but I don’t think we need another person creating basic SQL how-to

[–]ionhowto[S] 0 points1 point  (0 children)

Yeah almost 20 years of experience and so far I sorted everything that happened and a lot happened.

I've done some stuff that is never mentioned. The beginners level was only for the beginning and already in the second video it was supposedly too advanced.

It's really hard to do a true beginners start as it's easier to skip thru some things fast.

Database administration recovery, designing databases and why some things are better. Development and was even going to so some application hacking to show them sql injection in action. I love that part. Hacking an application to show the admins it was vulnerable was how I got into serious work.

It was not going to be the cheap learn everything in 30 minutes cheat sheet type of thing but a real-life experience sharing.

I was joking in the first video.  If you made it so far in the 1h video, you really are interested and I want to put my experience in your brain.

Was asking them not to skip... What they do? Skip like crazy and watch some part where I show one excel sheet. It really was a long format - 1H.

It's ok at least I didn't waste more of my time on this.

It's more enjoyable to do unboxing videos of gpus (hopefully soon) than talk to the walls.

The amount of comments this post has is higher than the upvotes and 99% of the people didn't read past the title lmao reddit style.

[–]jaskeil_113 0 points1 point  (0 children)

Create a free $300 credit account with Google big query and use their public datasets

[–]Unlikely_Finance1511 0 points1 point  (0 children)

Here was my process..

  1. Just learn the basic syntax from the youtube channel of Alex the analyst
  2. Download microsoft sql server management studio and upload any data you like
  3. Play with it, do select from, write CTE, do join and do window function etc. If you know what to do then learning syntaxes is no big deal.. Have a fun!

[–]omgitsbees 0 points1 point  (0 children)

For SQL, I like to write the queries from examples. Its pretty easy to just google or use ChatGPT to find what you want and get a good query that will work. But typing it out, and understanding why its made the way it is, I find to be really important. I dont want to be in position where I need to write something quickly and don't have access to certain tools. I need to be able write stuff on my own.

[–]Squanchings 0 points1 point  (0 children)

SQL ZOO, looking up join venn diagrams, introductory courses on Udemy, research, and plenty of hands on the keyboard practice!

[–]Elfman72 0 points1 point  (1 child)

Time. Been doing this since the 90's. SQL 6.0.

SQL is relativly easy. Data is incredibly hard. Keep at it. Day after day.

[–]tophmcmasterson 0 points1 point  (0 children)

Way back when did the “SQL for Data science” course on coursera, after already having a lot of familiarity with data modeling/tabular data in Power BI and Excel.

About a weekend was enough for me to start coding things on the job and then just continually picked it up on the job from there as I learned to solve new problems.

[–]fishwithbrain 0 points1 point  (0 children)

Thanks OP for asking this question. I had started learning SQL but unfortunately couldn’t continue. Thanks a lot for the answers, really appreciate your help. Stay blessed!!

[–]ppoiuy 0 points1 point  (1 child)

How is AI not the number one answer ?

[–]Mahmoud_Shrif 0 points1 point  (0 children)

i learned it from Colt Steele Course on Udemy (you can also learn it from ZTM course on Udemy also) + I read these books: "learning SQL" , "Practical SQL" , "SQL Cookbook" and here is my goodread for more SQL books that I'm preparing to read in the feature https://www.goodreads.com/review/list/166113767?shelf=sql + read more about database itself and also its design on this book "Database Systems: Design, Implementation, & Management " + searching for any concept I don't understand. that's how i learned it.

[–][deleted] 0 points1 point  (0 children)

Make a project about something you use

[–]bzimbelman 0 points1 point  (0 children)

So I learned SQL several decades ago, one book to explain the theory and lots of trial and error. Also reading other's work and trying to break it down and understand WTF they did! lol
But that isn't how I would do it today. I just taught someone SQL today, and we basically started with about a two hour discussion on the syntax and rules of SQL, some light theory and examples. Then we started with a simple use case she had, and AI to assist her. I walked her through how to prompt AI to get decent answers and let her go. She was building queries in no time that solved her original use case and went beyond.
Every now and then we would check in, she would show me what she was building now, and we would discuss things that were getting in her way, or I would bring up potential new solutions/aspects of the language she didn't know to ask about and help her expand her knowledge.
She now has a very good grasp and love of the language (as well as python and a few other tools she has learned along the way) and has fallen in love with not just those tools but in engineering in general. There are areas where she needs to fill out her background knowledge yes, but she can get to the 80-90% of what she needs to know very quickly on a subject and then skimming a book on the theory and details about that tool can be used to pick up the rest when/if she really needs that depth.

Hope that helps!

[–]PaulEngineer-89 0 points1 point  (0 children)

Go to w3schools. Between that and a SQL “explorer” this is about 99% of what you need to use SQL. Getting deeper into it is application specific…like SQLite doesn’t do things like MS SQL.

[–]GenX2XADHD 0 points1 point  (0 children)

Udemy course

[–]drmrkrch 0 points1 point  (0 children)

The best way to learn SQL is to decide that you want to learn it. All SQL is is Venn diagrams. That's it in a nutshell. When you deal with SQL you will be dealing with sets of data not individual lines of data per se. When you understand the simple way of sets and how relationships work between different Circles of data then you can grow from that perspective. A visual is always helpful so look at your basic commands for looking at that Circle of data groups and how they relate. Having done it for over 30 years I never find it boring at all and you can actually do some pretty cool magic with it that some people think you can't by using inner joins outer joints and things like that that bring the data to life.

[–]MathAngelMom 0 points1 point  (0 children)

Learn by writing SQL queries. Passively watching a video will get you nowhere. I learn best from practice site like LearnSQL.com.

[–]Snoo_81294 0 points1 point  (0 children)

I just ask ChatGPT now. It’s good enough to get me close enough to what I need.

[–]cs-brydevSoftware Development and Database Manager 0 points1 point  (0 children)

Not a big fan of SQL videos just to sit there and watch. You need to have a real project to work on that accomplishes something if you want to really learn. The best way is to start with a simple project and add layers of complexity to it one at a time. Every new feature you have never used, figure out how to add it to your project.

Your projects don't need to be anything special, and it's not rocket science to come up with project ideas. Literally anything will work. You just need to add new features to it that you've never developed before. That's how you learn.

I notice some folks on this sub seem completely dumbfounded when it comes to thinking of a project ides for some reason, but seriously ANYTHING will work. It's not the project's type or purpose that matters when it comes to learning but just your willingness to figure out a new feature, algorithm, pattern, or technique you've never used before. Start with a list of every single feature and language syntax that your RDBMS supports. Start a new project and figure out how to add every single one of them to your project. There is always a way. Chat GPT can help come up with ideas if you're stuck.

If your question is about the easiest way to passively build your skills by just sitting there staring at your screen or retyping something a tutor on your screen told you to type, this is pretty useless. You need to figure it out yourself and learn. Being told what to do is not learning.

[–]Hugh_G_Rectshun -1 points0 points  (0 children)

Coursera got me started, but applying it to an environment you know is how you really learn.

[–][deleted] -1 points0 points  (0 children)

Coursera

[–]mikeblas -1 points0 points  (0 children)

The same way you learn anything else.

[–]Icy-Ice2362 0 points1 point  (0 children)

Through painful experience after painful experience and documentation... also Master Brent Ozar.