Duration of the online course: 4 hours and 14 minutes
4.73
(11)
Boost your data skills fast with a free PostgreSQL course: install, query, design tables, joins, and real SQL workflows—plus practice exercises.
In this free course, learn about
Core purpose of databases and relational databases; basics of SQL
What PostgreSQL is and key advantages vs Oracle
Install PostgreSQL on Mac/Windows; connect via GUI and psql (port 5432)
Create/connect/drop databases; understand dangerous DROP DATABASE usage
Create tables, choose data types (e.g., DATE for DOB) and apply constraints
Insert data correctly (ISO dates), list tables, and generate mock data (Mockaroo)
Query with SELECT, ORDER BY, DISTINCT, WHERE, AND, operators, IN, BETWEEN, LIKE/ILIKE
Group and filter aggregates with GROUP BY and HAVING
Use aggregates and math: MIN/MAX/SUM, arithmetic, ROUND, aliases (AS)
Handle nulls and errors with COALESCE and NULLIF
Work with timestamps/dates: intervals, subtraction, EXTRACT, AGE function
Keys and integrity: primary keys, UNIQUE, CHECK; SERIAL and UUID primary keys
Modify data safely: UPDATE, DELETE with WHERE; UPSERT via ON CONFLICT
Model relationships: foreign keys, join tables (INNER/LEFT), export results to CSV
Course Description
Build job-ready database skills by learning PostgreSQL from the ground up in a practical, beginner-friendly way. This free online course guides you through what databases are, how relational models work, and why SQL remains a core skill for roles in software development, data analysis, and backend engineering. You will gain confidence working with Postgres both conceptually and hands-on, so you can move from simply recognizing SQL syntax to actually thinking in queries.
You will set up PostgreSQL on your computer (Mac or Windows), understand how to connect using GUI tools and the terminal, and get comfortable navigating the psql experience. From there, the course focuses on the real tasks people use every day: creating databases and tables, choosing sensible data types, and applying constraints to keep data reliable as it grows. You will practice inserting and managing data safely, including techniques that help you avoid common mistakes and protect your work.
As you progress, you will learn to retrieve insight with SELECT queries, filter results with conditions, and shape outputs with ordering and uniqueness. You will also develop a solid foundation in writing expressive queries using comparison operators, pattern matching, ranges, grouping, and aggregate calculations. Date and time work is covered in a way that helps you reason about timestamps, extract fields, and perform time-based arithmetic for reporting and analysis.
The course goes beyond single-table thinking by teaching keys, relationships, and foreign key behavior, then ties everything together with joins so you can query across multiple tables with confidence. You will also work with practical database patterns such as upserts and conflict handling, and finish with useful workflows like exporting query results to CSV. By the end, you will have a clear path from installation to relational design to meaningful querying, along with practice exercises that reinforce each step.
Course content
Video class: PostgreSQL: What is a Database | Course | 201902m
Exercise: What is the primary function of a database?
Video class: PostgreSQL: What is SQL And Relational Database | Course | 201903m
Exercise: What is a relational database?
Video class: PostgreSQL: What is PostreSQL AKA Postrgres | Course | 201901m
Exercise: _What is one of the advantages of using Postgres instead of Oracle?
Video class: PostgreSQL: How To Download Postgres For MAC OS | Course | 201903m
Exercise: How to install and run PostgreSQL on a Mac?
Video class: PostgreSQL: How to Install PostrgreSQL (Windows) | Course | 201903m
Exercise: _What is the first step to download Postgres on Windows?
Video class: PostgreSQL: GUI Clients vs Terminal/CMD Clients | Course | 201904m
Exercise: What is the preferred method for connecting to a database according to the video?
Video class: PostgreSQL: How to Setup PSQL (MAC OS) | Course | 201903m
Exercise: _How do you connect to your database using the elephant icon?
Video class: PostgreSQL: PSQL05m
Exercise: What is the default port number for a local Postgres server?
Video class: PostgreSQL: How to Create Database | Course | 201903m
Exercise: _What is the command to create a new database in PostgresSQL?
Video class: PostgreSQL: How to Connect to Databases | Course | 201904m
Video class: PostgreSQL: A Very Dangerous Command | Course | 201903m
Exercise: _What is the command to delete a database in PostgreSQL?
Video class: PostgreSQL: How To Create Tables (KEYNOTE) | Course | 201904m
Exercise: Which Postgres data type should you use for storing a person's date of birth?
Video class: PostgreSQL: Creating Tables Without Constraints | Course | 201903m
Exercise: _What is the command to create a table in PostgresSQL?
Video class: PostgreSQL: Creating Tables with Constraints | Course | 201906m
Exercise: Which SQL constraint should not be applied to an email column when creating a 'person' table?
Video class: PostgreSQL: Insert Into (KEYNOTE) | Course | 201903m
Exercise: _What is the correct way to represent dates when inserting records into a table in PostgreSQL?
Video class: PostgreSQL: Insert Into | Course | 201903m
Exercise: What command is used to view only tables in psql?
Video class: PostgreSQL: Generate 1000 Rows with Mockaroo | Course | 201909m
Exercise: _What is the purpose of using the website "Maca Rule" in adding more data to the table in PostgreSQL?
Video class: PostgreSQL: Select From | Course | 201902m
Exercise: What does the SQL command 'SELECT *' do in a database query?
Video class: PostgreSQL: Order By | Course | 201904m
Exercise: _What is the default order when using the "order by" keyword in PostgreSQL?
Video class: PostgreSQL: Distinct | Course | 201902m
Exercise: What SQL keyword is used to return unique values from a query?
Video class: PostgreSQL: Where Clause and AND | Course | 201903m
Exercise: _What is the purpose of the WHERE clause in PostgreSQL?
Video class: PostgreSQL: Comparison Operators | Course | 201904m
Video class: PostgreSQL: IN | Course | 201903m
Exercise: _Which keyword can be used to simplify the query when selecting multiple values for a column?
Video class: PostgreSQL: Between | Course | 201902m
Video class: PostgreSQL: Like And iLike | Course | 201905m
Exercise: _What is the purpose of the like operator in PostgreSQL?
Video class: PostgreSQL: Group By | Course | 201903m
Video class: PostgreSQL: Group By Having | Course | 201905m
Exercise: _What is the purpose of the HAVING keyword in PostgresSQL?
Video class: PostgreSQL: Adding New Table And Data Using Mockaroo | Course | 201903m
Video class: PostgreSQL: Calculating Min, Max04m
Exercise: _What function do we use to find the most expensive car in the table?
Video class: PostgreSQL: Sum | Course | 201902m
Video class: PostgreSQL: Basics of Arithmetic Operators | Course | 201904m
Exercise: _What is the result of the query "select 10 plus 2 plus 8" in PostgresSQL?
Video class: PostgreSQL: Arithmetic Operators (ROUND) | Course | 201903m
Video class: PostgreSQL: Alias | Course | 201902m
Exercise: _What is the purpose of using the "as" keyword in PostgreSQL?
Video class: PostgreSQL: Coalesce | Course | 201903m
Video class: PostgreSQL: NULLIF | Course | 201904m
Exercise: _What is the purpose of the "no if" keyword in PostgreSQL?
Video class: PostgreSQL: Timestamps And Dates Course | 201903m
Video class: PostgreSQL: Adding And Subtracting With Dates | Course | 201902m
Exercise: _What keyword is used to subtract a specific time interval from a timestamp in PostgreSQL?
Video class: PostgreSQL: Extracting Fields From Timestamp | Course | 201901m
Video class: PostgreSQL: Age Function | Course | 201902m
Exercise: _What is the first argument that the age function takes in PostgreSQL?
Video class: PostgreSQL: What Are Primary Keys | Course | 201902m
Video class: PostgreSQL: Understanding Primary Keys | Course | 201905m
Exercise: _What is a primary key in PostgreSQL?
Video class: PostgreSQL: Adding Primary Key | Course | 201904m
Video class: PostgreSQL: Unique Constraints | Course | 201908m
Exercise: _What is the unique constraint in PostgreSQL?
Video class: PostgreSQL: Check Constraints | Course | 201905m
Video class: PostgreSQL: How to Delete Records | Course | 201906m
Exercise: _What is the recommended way to delete a record from a table in PostgreSQL?
Video class: PostgreSQL: How to Update Records | Course | 201904m
Video class: PostgreSQL: On Conflict Do Nothing | Course | 201905m
Exercise: _What is the purpose of using the "on conflict" keyword in PostgreSQL?
Video class: PostgreSQL: Upsert | Course | 201905m
Video class: PostgreSQL: What Is A Relationship/Foreign Keys | Course | 201903m
Video class: PostgreSQL: Adding Relationship Between Tables | Course | 201905m