I get this question a lot, which is understandable as there are several meanings depending on the context the question is being asked. The quick response is that it is a language and a server.
Let’s start on the language side. SQL stands for Structured Query Language and is used to communicate with databases. It was originally developed at IBM in the early 1970s and was called SEQUEL (Structured English Query Language). It was later shortened to just SQL, but it is still pronounced sequel or sometimes just S – Q – L. There are several variations of SQL. For example, Microsoft uses T-SQL, Oracle uses PL/SQL, and IBM uses SQL-PL. But thanks to the American National Standards Institute (ANSI), all the variations are very similar in most cases.
So, let’s say we went to a library and wanted to find books by Isaac Asimov? In English, we would ask the librarian, “Where are the books by Isaac Asimov'” However, databases currently would not be able to understand that request. So, we would need to ask the question so the database would understand. An example of this would be as follows:
For the database designers out there who may read this… Yes, there are some normalization issues with this hypothetical database, but that is for another blog post.
Now on to the server products. And this is where the confusion comes into play, back in the mid-1990s Microsoft named their database server, Microsoft SQL Server because they are great at marketing. So, when people think SQL, it could mean the language or the Microsoft product. But there are 350 distinct types of database servers that use a variation of Structured Query Language (SQL). If you are curious, you can find the rankings of these servers over at DB-Engines.com,
And while this could be a different blog post, Let’s discuss the terms Client and Server. A server is a computer or application that provides data to a client. A client is a computer or application that requests data from a server. For example, if I went to a fancy restaurant and requested a cup of tea. I would be the tea client and the person that provided the tea would be the tea server.
The same thing is true of databases, an application like SQL Server Management Studio is a client that requests data and will connect to a server that provides data, in the case of Microsoft, the SQL Server Database Engine.