Structured Query Language, better known as SQL, is a programming language for interacting with relational databases. The language was modeled after the ideas in Edgar F. Codd's 1970 paper A relational model of data for large shared data banks and commercially released for the first time in 1979.
Despite having been around for over forty years, SQL is still by far the most popular query language. If you interact with data of any kind, want to raise your value in the job market, or are tired of using VLOOKUP in Excel, it is well worth learning SQL.
SQL isn't hard to learn either. Even if you don't know any other programming languages, it won't take long to gain a decent understanding of SQL. However, there is a way to go about it. This article will explain how you can best learn SQL to go from beginner to expert.
Disclaimer: SQL is different from MySQL, SQL Server, PostgreSQL, and other variations. The latter are all relational database management systems (RDBMS) that allow you to keep the data in a database organized. Think of them as dialects of SQL. Once you know SQL, learning any of these RDBMS is relatively easy.
The Best Way to Learn SQL
The best way to get started is to get the basics down as quickly as you can. You need to understand basic SQL syntax, which means learning functions like
group by, etc. You also need to learn how to write a proper query. All this can be done rapidly and for free in one of the following courses:
- DataCamp Introduction to SQL
- W3Schools SQL Tutorial
- Codecademy Learn SQL
- Khan Academy Intro to SQL
- Select Star SQL
Solve SQL Problems
Once you have the basics down, it's time to solve SQL problems. The more you practice, the better you'll get! There are many excellent, free websites with problems that are easy, intermediate, and advanced:
- HackerRank SQL
- Schemaverse (gamified)
- GalaXQL (interactive)
- Advanced SQL Puzzles
- Data Analyst SQL Interview Questions
Practice with Real Data
Once you know the basics and feel like you can solve complicated SQL problems, it's time for a reality check. You can solve all the online SQL problems you like and still not be prepared for the real world. You need to steel yourself for duplicates, incorrect data, siloed data, poor database performance, a high noise-to-signal ratio, and worse.
One of the best ways to prepare yourself for such problems is by using real data and creating your own problems. This can be great fun, because there are so many databases that you can almost certainly find data on a topic you're passionate about. For example:
- Love US politics and sport? Use a FiveThirtyEight dataset.
- Love movies? Use an IMDb dataset.
- Love streaming? Use a Kaggle dataset.
- Love climate? Use the European climate dataset.
- Love something else? Check out this massive list of public datasets.
Learn Database Theory
If you really want to master SQL, you need to know more than just the language and its variations. You need to learn about databases themselves. True SQL experts learn about relational design theory, relational algebra, unified modeling language, and beyond. A good start in that direction is the free Stanford series on databases.
Learn SQL basics, solve problems, practice with live data, and learn database theory. That's the trajectory if you want to go from knowing nothing about SQL to becoming an SQL expert. All this can be done at your own pace and without spending a penny. Good luck!