Hi all, I have been working on back-end development for quite some time now, using mongoose/mongodb databases the entire time.
Now, I would like to work on my Sql skills aswell, but it’s not as clear to me where to start, compared to the mongo world.
People seem to use different management systems (postgresql, sqlite, mysql) and there is the option of using sequelize, which mongoose-like so you don’t have to write pure Sql.
So which direction should I go in order to call myself more or less fluent in Sql, let’s say for a job?
Do I need pure sql code or sequelize or both? Do I pick one management system (let’s say postgres) or doesn’t it matter that much? Is one more populare than the others nowadays?
As always, thanks in advance.
There are 3 SQL DBMSes that are the most prevalent - MySQL, SQL Server, and PostgreSQL. They’re probably all about equally popular. Each DBMS uses a particular dialect of SQL, so they’re not 100% drop-in interchangeable, but the general principles behind SQL remain the same across all 3.
It doesn’t really matter which DBMS you use. MySQL is well-established and has been around a long time. PostgreSQL is newer and very popular too though. SQL Server tends to be used most often with Microsoft-stack applications. It can be used with non-Microsoft platforms though.
Things like Sequelize are used in “real-world” production apps to simplify development as applications get more complicated. When you’re building your own app, consider it an “optional” tool. You don’t have to use it, but you’ll see it (or something like it) used in production apps. Learn how to use it, but don’t rely on it either.
SQL as a general language is very easy to learn, pretty much on the scale of HTML. You can learn the basics in a day, and you should. There are lots of resources on general-purpose dialect-free SQL. As far as the DBMSes go, it doesn’t matter which one you pick, because there’s a decent chance you’ll probably use a different one in an actual job. But MySQL is probably the easiest to get started with.
Sequelize is an ORM. Basically it is something like JQuery to Javascript. Should make things simpler, but sometimes adds limitations and an extra layer - a language upon SQL.
IMHO, go for Vanilla SQL! If you need Sequelize in the future, you can better cope with the limitations.
I have been in a few interviews for a software developer and they asked simple questions such as given two tables, return data using a join… etc. So learning all the different queries is useful.
I personally was used to having Spring do it for me with the ORM, so I was kind of lost the first time I saw it in an interview…