Skip to content

Key Points#

Engine Types

There are two types of databases that you're going to encounter in the wild: SQL and NoSQL.

SQL databases are your relational systems that have a structure in place ahead of time. The data you insert into the database (tables) must comply with this structure. You're going to find relational databases are the most common in the industry, and for a good reason. They're also the more complex to maintain and manage due to their structured nature.

SQL databases have managed service offerings, like AWS' Relational Database Service and Azure's SQL Database. It's recommended you use such services versus hosting a database yourself.

NoSQL databases are also a popular choice that you're going to encounter during your career. And more so as time passes. They're becoming popular due to their schema-less nature and speed. They're also easier to adopt due to this fact.

NoSQL databases have managed offerings too, as well as proprietary managed services that offer a unique take on NoSQL workloads, such as AWS DynamoDB. Be careful using these services - they get expensive, fast, and they're 100% vendor lock-in.

SQLite

SQLite is, without you knowing it, the most widely used database in the world. This is because of its use in embedded mobile platforms. A lot of mobile applications use SQLite to store user data locally on the device itself.

As an engine, it's powerful yet simple. It's not as feature rich as MySQL, PostgreSQL, SQL Server, etc., but it has its place and it's very good at what it does.

SQLite operates out of a single file and has no running process or networked service. it can operate entirely out of RAM.

SQL

SQL, or Structured Query Language, is the language we use to "speak" to a database. We use SQL to query for data, insert data, delete data, organise and sort data, and more, inside of a relational database.

Understanding basic SQL is useful for debugging database issues and more.

MySQL

One of the most popular database engines in use today is MySQL. It's used heavily with web applications, such as Wordpress.

Unlike SQLite it does have a process (and threads) that run on a networked port (3306). Clients connect to this port and run operations against the database, such as creating tables, users, inserting data, and more.

MySQL is a networked database service and as such, is more complex in nature than SQLite.