06aSQLiteIntro

Database Management

Mick McQuaid

University of Texas at Austin

12 May 2026

Introduction

Let’s review some concepts first, then talk about SQLite in particular

Kinds of databases

  • Relational databases (SQLite, MySQL, PostgreSQL, Oracle, etc.)
  • NoSQL databases (MongoDB, etc.)
  • Graph databases (Neo4j, etc.)
  • Key-value databases (Memcached, etc.)
  • Columnar databases (MonetDB, etc.)
  • Document databases (CouchDB, etc.)
  • Time-series databases (InfluxDB, etc.)
  • Object-oriented databases (ObjectDB, etc.)
  • … and many more

Relational databases

  • The software we’ll use is a relational database
  • The data is represented in tables
  • The tables have columns and rows
  • The tables are related to each other
  • The tables are stored in a database

Another way to categorize databases

  • Embedded databases (SQLite)
  • Client-Server databases (MySQL, PostgreSQL, Oracle, etc.)
  • Cloud databases (AWS, Azure, etc.)
  • … and others

The difference between embedded and client-server databases

  • Embedded databases are embedded in an application
  • Client-server databases may be used by many applications

A client-server database

Client-server idea

  • There are two processes
  • One process is the client (you)
  • The other process is the server (where the data is stored)
  • The client sends requests to the server
  • The server sends responses to the client
  • The client and server are usually on different computers

Usefulness of client-server databases

  • Client-server databases are used by enterprises
  • An enterprise is an entire business or agency
  • An enterprise may have many applications
  • An enterprise may have many users
  • An enterprise database can serve them all

Why we don’t use a client-server database in this class

  • We’re mainly interested in the client
  • In the workplace, the server and the communication between the client and server are set up by IT professionals called database administrators (DBAs) and network administrators (NAs)
  • We’re not interested in the server or the communication between the client and server
  • Hence, we’re going to use an embedded database, SQLite

SQLite

  • SQLite is an embedded relational database
  • In practice, it’s two things: (A) a library and (B) a command-line interface
  • We’re just going to use the command-line interface
  • The interface is in a file called sqlite3 (or, on Windows, sqlite3.exe)

Installing SQLite on macOS

  • On macOS it’s already installed
    • You can verify this by typing which sqlite3 in the terminal
    • Or you can type sqlite3 --version in the terminal

Installing SQLite on Windows

  • On Windows, it’s not installed
  • Look under Precompiled Binaries for Windows
  • Download the version marked sqlite-tools (third in the list)
  • Unzip the file
  • Move the files to C:\sqlite (which you’ll need to create)
  • Add C:\sqlite to your PATH environment variable

Next time

In the next video, I will say more about SQLite and give some examples of using it

END

Colophon

This slideshow was produced using quarto

Fonts are Roboto Light, Roboto Bold, and JetBrains Mono Nerd Font