SQL Fundamentals

Most web applications rely on storing their data in a relational database, consisting of tables which are comprised of columns and rows. PostgreSQL, MySQL and SQLite are the most popular and established relational databases, and luckily, they have a LOT in common.

SQL Fundamentals

Stage One Foundations of Relational Databases

Before we dive into our workshop project, we will spend some time to lay the foundation for relational databases and SQL. Learning whether a given task is best handled by your database or application layer is a big part of ensuring your apps perform well under heavy loads.

  • Duration: 100 minutes
Schedule

Stage Two Retrieving Data

The first thing we will learn is how to get data out of a database in a variety of ways. We will begin with the simplest possible queries; move on to filtering our result set; join tables together to retrieve the data we are interested as quickly and easily as possible.

  • Duration: 210 minutes
Schedule

Stage Three Querying Across Tables

Time to put our newfound knowledge of relational algebra into practice! One of the great advantages of a relational database is the ability to mix tables together in queries, and aggregate or group across columns. Databases are built to do this kind of work, so it's often much faster to build the right query than to move similar logic into our application code.

  • Duration: 110 minutes
Schedule

Stage Four Creating, Updating and Deleting

Now that we have gotten used to the different ways to retrieve data from our database, we will learn how to create, manipulate and destroy records.

  • Duration: 135 minutes
Schedule

Stage Five The Schema Evolves

Over time, you will often need to update the schema or "shape" of your data to meet your application's needs. In this unit, we will learn about using migrations to manage these changes. We can apply database-level constraints via the schema to ensure that even if our application logic misbehaves, our data is always consistent.

  • Duration: 150 minutes
Schedule