I'm curious about the purpose of database languages like SQL. It seems a bit redundant to have programming languages dedicated solely to reading databases. Why not just create a C API that handles these tasks? Is SQL mainly for making database access user-friendly for non-programmers? That's the only reason I can think of, but I'd love to hear more perspectives on this.
6 Answers
The main goal of a domain-specific language (DSL) like SQL is to represent the semantics of data in a way that reduces cognitive load. For example, relational algebra used in SQL abstracts away unnecessary complexities that aren't relevant to querying databases, which makes things much easier for developers.
SQL’s purpose is to create an abstraction layer for data access. This way, it hides the complexities of the underlying database structure and optimizations—the database engine handles it all. If we didn't have query languages like SQL, users would need extensive knowledge of the database schema to perform even simple queries.
At its core, SQL exists to simplify data retrieval. Think of it like giving someone directions to the store: do you want to tell them every single step to get there, or just the end result? SQL allows you to focus on what data you need without worrying about the process to retrieve it.
SQL is an implementation of relational algebra, created for convenience in database querying. It abstracts details of data management while providing powerful querying capabilities. Sure, you could write a C API to mimic this, but it wouldn't be as handy as SQL for regular use.
There's actually nothing stopping someone from creating a C API for database interactions, and some exist. However, SQL serves a unique purpose as a declarative language, meaning you specify what you want rather than how to do it. This makes it easier for databases to optimize queries without the user needing to know all the details about the data structure.
Great point! I never thought of it like that. Thanks for clarifying!
SQL is a query language designed for interacting with multiple databases using a single syntax. While some databases have direct APIs, SQL allows easier cross-database querying without the user needing to learn the specifics of each system.
Exactly! Plus, the existence of a standard like SQL makes it difficult for alternatives to take over, just like how JavaScript became the web standard.

And SQL has been around since the 1970s, designed to resemble English sentences, which makes it more user-friendly. It's not just about programming efficiency; it's about accessibility, too.