Lompati ke konten utama
eLearner.app

Kursus interaktif

Kursus SQL

Pelajari SQL dari awal, dalam bahasa Inggris, dengan Postgres asli yang berjalan di browser Anda.

01 · Modul 1 - PILIH Dasar

4 pelajaran

Dasar-dasarnya: membaca data dari tabel dan memfilternya.

  1. 1.1Pengantar SQLApa itu SQL, mengapa digunakan, dan seperti apa databasenya.~5 min
  2. 1.2PILIH… DARIKueri paling sederhana: membaca baris dari tabel.~10 min
  3. 1.3Memfilter dengan WHEREMemilih hanya baris yang memenuhi suatu kondisi.~10 min
  4. 1.4Menyortir dengan ORDER BYMengurutkan hasil, menaik atau menurun.~8 min

02 · Modul 2 — SELECT yang lebih kuat

4 pelajaran

Batasi, hapus duplikat, ganti nama, dan hitung: alat yang Anda gunakan setiap hari.

  1. 2.1Membatasi dengan LIMITHanya mengembalikan N baris pertama, misalnya untuk membuat papan peringkat.~6 min
  2. 2.2Nilai unik dengan DISTINCTMenghapus duplikat dari hasil SELECT.~6 min
  3. 2.3Mengganti nama dengan ASMemberikan nama yang lebih mudah dibaca pada kolom dan ekspresi pada hasilnya.~6 min
  4. 2.4Menghitung dan meringkas: COUNT, AVG, MAXFungsi agregat: mendapatkan satu nomor dari banyak baris.~8 min

03 · Modul 3 - GABUNG dan KELOMPOK OLEH

4 pelajaran

Menggabungkan beberapa tabel dan menghasilkan laporan berdasarkan kelompok: inti dari setiap kueri sebenarnya.

  1. 3.1Menggabungkan dua tabel: INNER JOINMenggabungkan baris dari tabel berbeda mengikuti hubungannya.~12 min
  2. 3.2Menyimpan semuanya di sebelah kiri: LEFT JOINTermasuk baris yang tidak ada kecocokannya pada tabel lainnya.~10 min
  3. 3.3Pengelompokan dengan GROUP BYMenghitung agregat per grup, misalnya per departemen.~10 min
  4. 3.4Kelompok penyaringan: MEMILIKIMempertahankan hanya kelompok yang memenuhi suatu kondisi secara agregat.~8 min

04 · Modul 4 — SQL Praktis

4 pelajaran

Alat yang membuat perbedaan dalam pekerjaan nyata: daftar, rentang, NULL, dan logika kondisional.

  1. 4.1Daftar dan rentang: DALAM dan ANTARAFilter ringkas untuk "salah satu dari ini" dan "antara A dan B".~8 min
  2. 4.2Menangani NULL: IS NULL dan COALESCEMengenali dan menangani nilai-nilai yang hilang tanpa kejutan.~10 min
  3. 4.3Logika bersyarat: KASUS KAPANMengubah nilai menjadi kategori langsung di SELECT.~10 min
  4. 4.4Kueri di dalam subkueri lain:Menggunakan hasil SELECT di dalam SELECT lain.~12 min

05 · Modul 5 — GABUNG Tingkat Lanjut

4 pelajaran

Operasi GABUNG multi-tabel, gabungan mandiri, OUTER, CROSS, dan set: menggabungkan data seperti seorang profesional.

  1. 5.1GABUNG pada tiga tabel atau lebihMelintasi rantai hubungan: pesanan → pelanggan → produk, dalam satu kueri.~12 min
  2. 5.2Self-JOIN: meja dengan dirinya sendiriHierarki dan hubungan internal: membaca tabel dengan dua peran (anak dan orang tua).~10 min
  3. 5.3OUTER JOIN: menemukan "celah"Menggunakan LEFT/RIGHT/FULL OUTER JOIN untuk menemukan baris yang tidak cocok.~10 min
  4. 5.4UNION, INTERSECT, KECUALI (dan CROSS JOIN)Menggabungkan hasil sebagai himpunan: gabungan, perpotongan, selisih, dan perkalian kartesius.~12 min

06 · Modul 6 — Fungsi bawaan

4 pelajaran

Transformasi dan manipulasi data dengan fungsi asli PostgreSQL: string, tanggal, angka, konversi tipe.

  1. 6.1Fungsi stringBAWAH, ATAS, PANJANG, penggabungan, SUBSTRING, TRIM, REPLACE, LIKE dan ILIKE.~12 min
  2. 6.2Fungsi tanggal dan stempel waktuEKSTRAK, DATE_TRUNC, interval dan perbedaan tanggal.~12 min
  3. 6.3Fungsi numerikBULAT, CEIL, LANTAI, ABS, MOD dan pembagian bilangan bulat vs desimal.~10 min
  4. 6.4CAST dan ketik konversiMengonversi antar tipe dengan `::type` dan `CAST(... AS ...)`.~10 min

07 · Modul 7 — Analisis tingkat lanjut

4 pelajaran

Kueri multi-langkah (CTE), peringkat dan total yang berjalan (fungsi jendela), hierarki tak terbatas (DENGAN REKURSIF).

  1. 7.1CTE: kueri multi-langkah dengan WITHMemecah kueri kompleks menjadi langkah-langkah bernama agar mudah dibaca dan digunakan kembali.~12 min
  2. 7.2Fungsi jendela: pemeringkatan dan penghitungan per grupROW_NUMBER, RANK, DENSE_RANK dengan OVER(PARTITION BY …) untuk peringkat dalam grup.~14 min
  3. 7.3LAG, LEAD dan total berjalanMembandingkan setiap baris dengan baris sebelumnya/berikutnya dan menghitung jumlah kumulatif.~12 min
  4. 7.4CTE rekursif: hierarki mendalam yang sewenang-wenangDENGAN REKURSIF untuk melintasi hierarki seperti kategori.~14 min

08 · Modul 8 — Menulis dan memodifikasi data

4 pelajaran

INSERT, UPDATE, DELETE, CREATE TABLE dengan batasan, transaksi: menutup loop dengan penulisan.

  1. 8.1Memasukkan data: MASUKKANKlausa INSERT, RETURNING tunggal dan multi-baris, yang secara eksplisit memilih kolom.~10 min
  2. 8.2Memperbarui dan menghapus: UPDATE dan DELETEPerubahan selektif dengan WHERE, dan mengapa WHERE yang terlupakan adalah bencana.~10 min
  3. 8.3Membuat tabel dan batasan: DDLBUAT TABEL dengan PRIMARY KEY, BUKAN NULL, UNIK, FOREIGN KEY, CHECK dan DEFAULT.~12 min
  4. 8.4Transaksi: semua atau tidak sama sekaliBEGIN, COMMIT, ROLLBACK: membuat sekelompok operasi menjadi atom.~10 min

09 · Modul 9 — Struktur data dan DDL

4 pelajaran

Membuat dan mengubah tabel, batasan lanjutan, tipe dan tampilan kompleks.

  1. 9.1Tipe data tingkat lanjut dan ENUMTipe numerik, tipe TEXT vs VARCHAR, BOOLEAN, UUID, dan ENUM khusus.~10 min
  2. 9.2Batasan berganda dan tingkat tabelBatasan UNIK dan PRIMARY KEY gabungan, CHECK lanjutan dan kunci asing (ON DELETE CASCADE).~12 min
  3. 9.3Mengubah struktur: ALTER TABLEMenambah, mengubah dan menghapus kolom atau batasan dari tabel yang ada.~10 min
  4. 9.4Tampilan dan abstraksi dataMembuat TAMPILAN untuk menyederhanakan kueri kompleks dan TAMPILAN MATERIALISASI untuk kinerja.~12 min

10 · Optimasi dan indeks

4 pelajaran

Seni membuat kueri dengan cepat: indeks, rencana eksekusi, dan optimalisasi basis data.

  1. 10.1Indeks dan B-TreesBuat indeks untuk mempercepat kueri pencarian pada tabel besar secara signifikan.~15 min
  2. 10.2JELASKAN dan ANALISISPelajari cara membaca rencana eksekusi database untuk mendiagnosis kemacetan.~15 min
  3. 10.3Indeks komposit dan parsialGunakan indeks pada beberapa kolom sekaligus atau hanya pada bagian data tertentu.~12 min
  4. 10.4Masalah N+1Masalah kinerja ORM yang terkenal dan metode SQL asli untuk mengatasinya dalam satu permintaan.~12 min

11 · Transaksi dan konkurensi

4 pelajaran

Kelola modifikasi data bersamaan dengan aman: transaksi ACID, kunci, dan tingkat isolasi.

  1. 11.1Transaksi ACID (BEGIN/COMMIT)Jaga konsistensi data dengan BEGIN, COMMIT, dan ROLLBACK, kelompokkan kueri ke dalam satu blok yang tidak terlihat oleh orang lain.~15 min
  2. 11.2Kondisi balapanSkenario tepi: apa yang terjadi ketika dua karyawan database paralel bertindak pada keranjang pengguna yang sama.~10 min
  3. 11.3Mengunci dan PILIH UNTUK UPDATEMengunci baris secara aktif selama pembacaan, memaksa thread lain yang bermutasi menunggu giliran.~15 min
  4. 11.4Tingkat isolasiDorong hingga batasnya dengan menerapkan Serializable, atau turunkan ke Read Commited untuk kinerja yang tidak aman namun cepat.~12 min

12 · Fungsi dan pemicu

4 pelajaran

Otomatiskan logika bisnis di dalam database: tulis fungsi yang dapat digunakan kembali dan bereaksi terhadap peristiwa dengan pemicu.

  1. 12.1UDF dan SQL dasarBuat Fungsi Buatan Pengguna Anda sendiri untuk merangkum penghitungan kompleks dan menggunakannya kembali seperti makro di setiap kueri.~15 min
  2. 12.2Logika tingkat lanjut dengan PL/pgSQLBerikan kekuatan super pada fungsi Anda: variabel, cabang if-else, dan loop dalam gaya prosedural murni di dalam database.~15 min
  3. 12.3Pengantar pemicuTentukan fungsi khusus yang dapat langsung memeriksa data OUTGOING (OLD) atau INCOMING (NEW).~15 min
  4. 12.4Pemicu dan audit praktisKeamanan otomatis: perbarui secara otomatis tanggal "updated_at" dan arsipkan baris yang dihapus secara ajaib untuk kepatuhan.~12 min

13 · Fungsi jendela

4 pelajaran

Analisis data tingkat lanjut tanpa menciutkan baris: temukan OVER(), PARTITION BY, dan fungsi analitik.

  1. 13.1Pendahuluan dan klausa OVERJalankan komputasi agregat (seperti SUM atau AVG) sambil mempertahankan masing-masing baris asli.~15 min
  2. 13.2Pengelompokan dengan PARTISI BYBuat pengelompokan logis (jendela) di dalam data untuk menerapkan fungsi, tanpa menggunakan GROUP BY.~15 min
  3. 13.3Peringkat: ROW_NUMBER, RANK, dan DENSE_RANKTetapkan nomor baris berurutan dan peringkat ke hasil, dengan menangani ikatan dengan benar.~15 min
  4. 13.4Pergeseran: LAG dan LEADAkses nilai dari baris sebelumnya atau berikutnya langsung dari baris saat ini untuk menghitung delta dan variasi.~12 min

14 · CTE dan kueri hierarki (DENGAN)

3 pelajaran

Sederhanakan kueri berukuran besar dengan Common Table Expressions dan navigasikan pohon data tanpa batas dengan CTE rekursif.

  1. 14.1Pengantar CTE (DENGAN)Ganti subkueri bersarang yang tidak dapat dibaca dengan format prosedural yang bersih dengan mendeklarasikan "tabel virtual" sementara.~12 min
  2. 14.2CTE ganda dan berantaiKurangi kompleksitas dengan memecah pemrosesan menjadi beberapa langkah berurutan dalam satu pernyataan WITH.~15 min
  3. 14.3CTE Rekursif: data berbentuk pohonMenavigasi tanpa batas hierarki manajer dan kategori induk-anak dengan memanggil CTE dari dirinya sendiri.~18 min

15 · PostgreSQL JSON dan NoSQL

2 pelajaran

Manfaatkan kekuatan relasional yang dipadukan dengan dukungan dokumen fleksibel melalui JSON dan JSONB tanpa menggunakan database eksternal.

  1. 15.1Integrasi JSON dan JSONBSimpan dokumen kompleks di dalam kolom dan kueri bidangnya dengan operator panah.~15 min
  2. 15.2Fungsi agregasi JSONHasilkan file JSON atau array objek dengan cepat secara native di SQL menggunakan json_build_object() dan json_agg().~15 min