Belajar SQL menggunakan PostgreSQL dari dasar hingga advanced: pre-requisites & setup environment, sejarah konsep RDBMS & mengapa memilih PostgreSQL, konsep desain relasional normalisasi & DDL, data types di postgresql & constraints management, data manipulation language DML & basic querying, filtering sorting paging & aggregation query, advanced table joins, subqueries set operations & expressions, advanced data types JSONB & array support, window functions, common table expressions CTE & recursive queries, transaction management ACID & concurrency control, views materialized views & generated columns, stored procedures functions PL/pgSQL & triggers, deep dive indexing strategies, query optimization & explain analyze, roles security management & row level security, full-text search & pgvector, table partitioning untuk data skala besar, backup replication & pgbouncer, hingga studi kasus production-grade e-commerce database dengan total 21 episode.
Sebelum masuk lebih dalam ke SQL dan PostgreSQL, ada beberapa skill dasar dan tools yang perlu kalian siapkan terlebih dahulu, mulai dari kemampuan mengoperasikan terminal, instalasi PostgreSQL server, hingga mengenal psql dan GUI client untuk mempermudah eksplorasi database.

Episode ini membahas sejarah lahirnya model data relasional dari Edgar F. Codd pada tahun 1970, evolusi PostgreSQL dari proyek Ingres di UC Berkeley hingga nama resminya, alasan mengapa PostgreSQL menjadi pilihan database modern, serta perbandingannya dengan MySQL, MariaDB, dan SQLite.

Episode ini membahas fondasi desain database relasional: Entity Relationship Diagram, Primary Key dan Foreign Key, prinsip normalisasi data dari 1NF hingga BCNF, serta praktik langsung Data Definition Language (DDL) untuk membuat, mengubah, dan menghapus database serta tabel.

Episode ini membahas tipe data utama PostgreSQL: numerik, karakter, tanggal dan waktu, boolean, serta UUID. Selain itu dibahas manajemen constraint seperti NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY dengan referential action, dan CHECK untuk menjaga integritas data.

Episode ini membahas Data Manipulation Language (DML): INSERT untuk memasukkan data, UPDATE untuk mengubah, dan DELETE untuk menghapus. Selain itu dibahas fitur khas PostgreSQL yaitu RETURNING clause untuk mengambil data yang baru dimanipulasi secara langsung.

Episode ini membahas cara membaca dan mengolah data: SELECT dengan aliases dan DISTINCT, filtering dengan operator komparasi dan logical, sorting dengan ORDER BY, paging dengan LIMIT OFFSET, serta agregasi data menggunakan GROUP BY dan HAVING.

Episode ini membahas konsep join dalam database relasional: INNER JOIN, LEFT RIGHT dan FULL OUTER JOIN, CROSS JOIN, serta SELF JOIN untuk data hierarki, termasuk teknik menggabungkan tiga tabel atau lebih dalam satu query.

Episode ini membahas subquery di clause WHERE FROM dan SELECT, logika percabangan CASE WHEN, fungsi penanganan NULL COALESCE dan NULLIF, serta operasi himpunan UNION, INTERSECT, dan EXCEPT untuk menggabungkan hasil beberapa query.

Episode ini membahas sisi hybrid PostgreSQL sebagai RDBMS sekaligus document store: perbedaan JSON dan JSONB, operator query JSONB seperti panah dan @>, fungsi manipulasi jsonb_set, serta tipe data array dengan operator ANY, @>, dan UNNEST.

Episode ini membahas window functions untuk analisis data lanjutan: perbedaan dengan GROUP BY, anatomi clause OVER dengan PARTITION BY dan window framing, fungsi ranking ROW_NUMBER RANK DENSE_RANK NTILE, serta fungsi value LAG LEAD FIRST_VALUE dan LAST_VALUE.
