Learning SQL: Reasons and Resources
SQL stands for Structured Query Language and used for creating, maintaining, and communicating with databases. Databases are essential part of the website, games, and other software we interact with on daily basis. They make the storing, transfer of data quick and efficient and make our daily digital experiences smooth and enjoyable.
There is incredible amount data created everyday, everywhere. Databases make storing them and using them possible. SQL is a standard language for relational database management systems. While the usage of SQL have differences between different systems, for the most part they share the common language, commands, and syntax.
I would like to share my experiences and reasons to learn SQL, and would like to share resources I found useful. My first introduction to SQL was by using SteemSQL. Initially I would borrow scripts others were using, modify a little bit based on what I was trying to accomplish at the time. Then I started reading up more on SQL, just enough to make simple queries.
Another reason is, as I was working on my python projects that dealt with financial data like historical stock and crypto prices using various APIs I became more convinced that having an ability to create databases for such projects may increase efficiency. Some of my scripts run for hours due to the data being in large amounts. I believe this time could significantly be decreased by created local database.
Reasons to consider learning SQL will be different for everyone. They may range from learning new skills for career purposes, developing software, automating personal or work projects, etc. Besides the reasons, it is also important to consider resources available and time that may require these skills. While there are plenty of resources online for free or courses for a small price, I found a couple to be very useful.
First one is, The Complete SQL Bootcamp 2021: Go from Zero to Hero by Jose Portilla. This course focuses on teaching PostgreSQL while pointing out what may be different in other systems like MSSQL, etc. This is a great course for any beginner. Jose has a unique approach of teaching that keeps things simple, keeps the student interested, recognizes where new learners may have difficulty understanding beforehand. It also utilized practical approach of keeping learners engaged by giving tasks to complete, and assessment tests.
When it comes to SQL skills, in my understanding there are two main use cases. The first being an ability to build and maintain databases for others to use. This would be the database architects and administrators. The second is getting data from the database, using the database for various purposes. This could be data analysts, data scientists, and other data users. We can only query data from the SQL database servers. We don't have to worry about how it is created and maintained.
Just learning how to retrieve data with SQL queries alone can be a powerful skill to have. In such cases we don't even have to worry about the database creating, data manipulation, adding, deleting, and altering data aspects of the SQL.
Jose does a great job recognizing this, and starts out teaching how to retrieve data and all possible ways of dealing with database and tables to obtain desired data and results. At later stages of the course he does cover creating and maintaining databases as well. However, he doesn't go too much into details. He teaches just enough for any beginner to get started and provides other resources like documentation and how to read them to gain more skill and the beginner progresses in this journey. Lastly, Jose shows ways of utilizing python in combination with SQL.
The second course I would recommend is SQL Server Tutorial for Beginners | SQL Tutorial for Beginners by Venkat at Pragim Technologies. It is free and consists of 150 parts. All of the videos are available on youtube. This course uses MS SQL and more in-depth compared to Jose's courses.
I am a Mac user and had no issues with using PostgreSQL tools like pgAdmin recommended at Jose's course. However, since this second course by Venkat uses MS SQL Server and SQL Server Management Studio, I had to purchase a Windows computer. If you are a Windows user, it should be easy to follow the steps to install needed software at the start of the course. Mac users may have difficulty following this course, since the software used are not available for Mac.
Unlike Jose, Venkat starts out with teaching how to creating and altering databases and database objects. He doesn't start talking about how to retrieve data from a database until Part 10. Those of us who initially might be interested in learning how to write queries to get data from databases, may get discourages at the beginning. For this reason I would suggest to start with Part 10-17 after Part 1, which shows how to install needed software. After covering Parts 10-17, go back to Part 2 and continue from there. Or just start from the start and don't give up too early.
Venkat's teaching methodology may seem boring at first, but after going through multiple parts it becomes very obvious that the course is structured very well to build the knowledge and skills one step at a time. I am half way through this course and really like. I like how the parts are divided up on certain topics, which makes it easy to go back and review.
He doesn't provide any practice tests and assessment tests to keep learners engaged with the topic. But it is expected that learners practice on their computers and use the codes taught as they watch the lessons. That makes a big difference in learning any programming language.
His approach is very detailed. He goes into all details when covering a topic and shows various ways of achieving given tasks.
These are two courses I would suggest to anyone who is interested in learning SQL. I hope you find them useful. If you have other resources to share that helps with learning SQL, feel free to share in the comments.