Dialects and RDBMS
Before we start writing SQL code, it’s worth introducing two more concepts that you will come across in your learning journey:
- Relational Database Management Systems (RDBMS)
Dialects are the “flavours” of SQL
SQL is not a single entity. The original SQL standard was defined in the 1970s, but has since been adapted and extended. Nowadays, there are 20+ different flavours of SQL known as dialects, each with their own special features.
Some of the most popular dialects are:
- SQLite - A lightweight version of SQL which is simple to use and widely available
- MySQL - A dialect used for interacting with MySQL databases
- pgSQL - A dialect used for interacting with PostgreSQL databases
- Transact-SQL (T-SQL) - A proprietary dialect developed by Microsoft and primarily used for interacting with databases in Microsoft SQL Server
- Google SQL - A dialect used for interacting with databases in BigQuery on Google Cloud
All dialects share 95%+ in common, and the core SQL syntax is the same across all dialects. It’s sort of like how “English” has many different dialects (British English, American English, Canadian English, etc.), which share a majority of features and are easily transferrable.
At this stage, you don’t need to worry about the differences (that’s an advanced topic which will come much later in your SQL learning journey). For now, it’s just good to know that different dialects exist. In this tutorial, we’ll use SQLite as it’s the most easily transferrable and won’t require any special installations on your computer.
A RDBMS is the “engine” which powers our database
Another key concept is the Relational Database Management System (RDBMS), which refers to the software which takes our plain old tables and connects them up in relationships and ensures their integrity.
At this stage, we won’t deep into the details. When you write SQL, you don’t need to know how the RDBMS works! You just need to know that the RDBMS is the thing which will execute or run your query and process/return the results of your code.