When most developers start building backend applications, they're usually focused on one thing, getting an API working. Express routes, controllers, some auth, a bit of middleware, that's usually the whole mental model in the beginning.
But sooner or later, a bigger question shows up. How exactly should your application be talking to the database?
And that's when a bunch of unfamiliar words start floating around. Raw SQL, database drivers, ORMs, Prisma, Drizzle, query builders. Some people will tell you to never touch an ORM and just write SQL yourself. Others will swear Prisma made their life ten times easier. And then there's a smaller crowd that prefers Drizzle specifically because it stays close to SQL instead of hiding it.
So what's actually going on here? Why do all these tools even exist, and how do you know which one to reach for? Let's build this up from the ground.
First, understand how data actually moves






