What is SQL? Why Learn SQL? Where to Start? How Long Does it Take to Learn SQL?
I first dabbled in SQL about two years ago. My ex was a software engineer. On a few occasions, at my request, he would teach me the basics of database and SQL after dinner. He taught me the fundamentals of relational databases and the different types of joins. He drew tables and Venn diagrams on our petite whiteboard to help me understand the concepts. Life and work got busy, and that gave way. I didn't take it seriously at the time because there was no strong need for me to learn it. However, I know I will need to master it one day if I want to go far in this career path of data and analytics. I'm not where I would like to be with SQL right now, but I'm determined this time not to stop until I'm proficient.
In this blog, I'm going to cover the common questions people have about SQL:
• What is SQL?
• Why learn SQL?
• Where to start?
• How long does it take to learn SQL?
I will conclude the blog by sharing some useful resources I refer to for you to consider if you're interested in developing or honing this skill.
What is SQL?
SQL is an acronym for Structured Query Language. It's a widely accepted programming language for working with relational databases. If a relational database is foreign to you, check out my blog: Database Fundamentals.
SQL has been around since the 1970s. It was created in IBM by Donald Chamberlin and Raymond Boyce.
The language is simple compared to many other programming languages. Although simple, it is extremely powerful. It provides means to access and manipulate data in meaningful ways to extract insights.
SQL is not used for working with non-relational databases such as NoSQL databases. These types of databases don't store data in tables. A different language is required. I read that it's a variation of SQL. If that's the case, I imagine it wouldn't be too hard to pick up once you have a good working knowledge of SQL.
Why Learn SQL?
There are many reasons to learn SQL. I won't be covering them all. I'll share the reasons why I'm learning SQL. I'm sure I fall within the range of the Gaussian distribution, commonly referred to as a normal distribution. So it's highly probable that my why is shared amongst the community of those who are interested in picking up SQL.
I'm learning SQL because the career path I'm in requires it. I can do without it for now, but I'll be limiting my opportunities. We live in a time where there is an explosion of data. Businesses are gathering data at an exponential rate, driving the growing need for people who know how to analyze it and manage it. So, it's no surprise that it's a highly demanded skill in the job market.
According to the annual survey by Stack Overflow, SQL is the 3rd most used programming language in 2022. Stack Overflow is a knowledge-sharing website for professionals and programming enthusiasts. My ex said to me when programmers get stuck, their first go-to is Stack Overflow.
So yeah, these are my reasons. I honestly believe it can open many career paths and bring opportunities I wouldn't otherwise have.
Where to Start?
Here are the broad steps to learning SQL.
- Install or get access to DBMS
- Start with fundamentals
- Work on real projects
1. Install or get access to DBMS
DBMS stands for Database Management System, commonly referred to as database or platform. Check out my blog on Database Fundamentals if you want more information.
To use and learn about SQL, you'll need a DBMS or access to one. You can do without it. Some courses, like those offered on DataCamp, allow you to run queries in a browser. I am a subscriber of Datacamp, I have access to a DBMS at work, but I've also installed a DBMS on my personal computer to learn SQL. I suggest you install a DBMS even if you have access to it at work. There are some lessons you won't be able to practise using work DBMS. The administrators would have limited what you can do with your access, such as deleting and updating records in the database.
DBMS falls into two broad categories:
• Client- Server DBMS
• Shared-file DBMS
Client- Server DBMS are like your MariaDB, Microsoft SQL Server, MySQL, Oracle, PostgreSQL. Microsoft Access is an example of shared-file.
With client-server, there are two parts to the database. There is server software that is running on a server somewhere. The server could be your computer or hosted somewhere remote when it's on your computer.
The other part is the client software, which you use to type in your SQL and enter commands. A client connects to the server.
With shared-file, it is one and the same. There are serious limitations to shared-file, and it's not what you would use to learn SQL. I don't know what the serious limitations are. I tried googling but couldn't find a straight answer. I'm taking Ben Forta's word. Ben is a Senior Director of Education Initiatives at Adobe and has taught coding for over two decades.
Many DBMS are open sources, meaning free. The one I have on my personal computer is MySQL. It's the one I was instructed to install in the Udemy course I took: MySQL for Data Analytics and Business Intelligence. There are a few steps to follow to install it. Without a video for reference, it's easy to get lost. Since it's a paid course, I can't share the video. However, I have an alternative for you.
Microsoft SQL Server is another popular open source. Here are the links to download the client software and server software:
- Client Software: Microsoft SQL Server Management Studio (MSSS)
- Server Software: SQL Server
This video by Alex Freberg, a passionate data analyst, will walk you through the installation process.
2. Learn the fundamentals
Once your DBMS is installed, spend time understanding and familiarizing yourself with the client interface.
Also, understand basics like syntax, data types, operators, and database joins.
I would also suggest spending a little bit of time getting clarity on what you need to learn. It'll help guide and direct your focus. Below is a curriculum I collated from different sources. I hope you will find it helpful. It covers content ranging from beginners to advance concepts. It's geared towards users needing to manipulate and interact with databases like analysts and data scientists.
3. Work on Projects
When you have a good understanding, work on a project. Start small, and work on real-life datasets that interest you.
Here is a link to a post on project ideas: 10 Best SQL Project Ideas for Beginners.
How Long Does it Take to Learn SQL?
SQL is a relatively simple language to learn. If you're disciplined and invest 1 hour each day, you'll become familiar with the basics within a month and a half. However, you won't be fluent in the language.
I've been trying to learn SQL independently, and it's taken me a long time to be somewhat comfortable writing basic statements for retrieving, sorting, filtering, summarizing, grouping and joining tables. I know the theory of advanced SQL like aggregations, CTE and window functions, but I'm very shaky when it comes to execution. The key is to practice as much as possible. Don't be like me. Try and practice SQL regularly. You know what they say? Learning is not a spectator sport. You got to do it!
If you want to accelerate the process, I suggest a coding boot camp. People say you can master SQL within 3-6 months. I guess it's more intensive, and you won't be fluffing around trying to figure out what to learn. Additionally, it's more costly, so you're more likely to take it seriously and not waste the money.
Resources
Here are some resources that I used or have saved to look into:
- W3School
- Freebies Global: This isn't an SQL resource, but if you want free Udemy courses, check this site out. Keep your eyes peeled for free SQL courses on Udemy. Of course, you can also pay for it if you don't want to wait. Udemy courses are very affordable.
- SQL in 10 Minutes, Sams Teach Yourself by Ben Forta
- SQL ebook by D.Armstrong shared on LinkedIn by Alex Wang, a data scientist.
- Stack Overflow SQL Questions. Chances are, any SQL questions you'll have has already been answered here, so check it out.
- Alex Freberg's series on SQL: SQL Basics for Data Analysts, Intermediate SQL Tutorials, and Advanced SQL Tutorials.
That's a wrap, folks. Happy learning and SQLing~