0Pricing
SQL Academy · Pelajaran

NULL: Nilai Kebenaran Ketiga

Kuasai makna NULL, alasan NULL tidak sama dengan apa pun (bahkan dengan dirinya sendiri), serta dampak logika tiga nilai pada klausa WHERE.

NULL: Nilai Kebenaran Ketiga adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Apa Itu NULL?

NULL menyatakan data yang tidak diketahui atau hilang. NULL bukan nol, bukan teks kosong, dan bukan false. NULL adalah ketiadaan nilai yang dinyatakan secara eksplisit.

NULL Tidak Sama dengan Apa Pun (Bahkan Dirinya Sendiri)

Inilah aturan yang sering membingungkan semua orang:

SELECT NULL = NULL;       -- NULL (not true!)
SELECT NULL = 0;          -- NULL
SELECT NULL = '';        -- NULL
SELECT NULL <> 1;         -- NULL

Gunakan IS NULL dan IS NOT NULL

Untuk menguji NULL, Anda harus menggunakan predikat khusus IS NULL dan IS NOT NULL:

SELECT email FROM users WHERE deleted_at IS NULL;       -- active users
SELECT email FROM users WHERE deleted_at IS NOT NULL;   -- deleted users

Logika Tiga Nilai

Logika boolean SQL memiliki THREE nilai: TRUE, FALSE, dan UNKNOWN (NULL).

ABA AND BA OR B
TRUENULLNULLTRUE
FALSENULLFALSENULL
NULLNULLNULLNULL

WHERE Membuang Baris saat Predikatnya NULL

Jika WHERE x = 5 menghasilkan NULL untuk sebuah baris (karena x adalah NULL), baris tersebut tidak dikembalikan. Hanya baris yang predikatnya bernilai TRUE yang dipertahankan.

-- Suppose age is NULL for some users:
SELECT * FROM users WHERE age >= 18;
-- Users with NULL age are NOT returned, even though we
-- don't actually know they're under 18.

Jebakan NULL pada NOT IN

Kueri ini mengembalikan ZERO baris jika nama apa pun dalam subkueri bernilai NULL:

SELECT * FROM users
WHERE name NOT IN (SELECT excluded_name FROM blocklist);
-- If blocklist has a NULL row, the whole NOT IN evaluates to NULL
-- → no rows returned

-- Safer:
SELECT * FROM users u
WHERE NOT EXISTS (
  SELECT 1 FROM blocklist b WHERE b.excluded_name = u.name
);

COALESCE: Mengganti NULL dengan Nilai Bawaan

COALESCE mengembalikan argumen pertama yang bukan NULL:

SELECT id, COALESCE(full_name, email, 'Anonymous') AS display_name
FROM users;

-- If full_name is NULL, use email; if that's NULL too, use 'Anonymous'.

NULLIF: Kebalikannya

NULLIF(a, b) mengembalikan NULL ketika a = b, dan mengembalikan a jika tidak. Berguna untuk memperlakukan nilai penanda seperti '' atau 0 sebagai NULL.

SELECT NULLIF(price, 0) FROM products;
-- Returns NULL when price is 0, useful for AVG() that should ignore zeros.

NULL dalam Fungsi Agregat

Fungsi agregat (kecuali COUNT(*)) melewati masukan NULL:

-- Suppose:  prices = [10, 20, NULL, 30]
SELECT COUNT(*)     FROM products;  -- 4 (counts rows)
SELECT COUNT(price) FROM products;  -- 3 (counts non-NULL prices)
SELECT AVG(price)   FROM products;  -- 20  (60 / 3, not 60 / 4)
SELECT SUM(price)   FROM products;  -- 60

Pengurutan NULL

Secara bawaan, PostgreSQL mengurutkan NULL di akhir saat menaik dan di awal saat menurun. Anda dapat menggantinya:

SELECT * FROM users ORDER BY last_login_at DESC NULLS LAST;

Menyimpan NULL vs Teks Kosong

Tentukan untuk setiap kolom: apakah '' merupakan nilai yang valid? Jika tidak, gunakan NULL untuk berarti "tidak ada nilai". Jika ya, NULL berarti sesuatu yang berbeda (misalnya, "belum ditanyakan").

Gunakan secara konsisten — jangan mencampur keduanya dalam kolom yang sama.

Ringkasan

NULL adalah nilai kebenarannya sendiri.

  • Uji dengan IS NULL, jangan pernah dengan = NULL
  • Filter WHERE hanya mempertahankan baris yang bernilai TRUE
  • Fungsi agregat melewati masukan NULL
  • COALESCE sangat membantu

Pemeriksaan Singkat

Apa hasil dari SELECT NULL = NULL;?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “NULL: Nilai Kebenaran Ketiga” gratis?

Ya — teks lengkap “NULL: Nilai Kebenaran Ketiga” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “NULL: Nilai Kebenaran Ketiga”?

Kuasai makna NULL, alasan NULL tidak sama dengan apa pun (bahkan dengan dirinya sendiri), serta dampak logika tiga nilai pada klausa WHERE. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “NULL: Nilai Kebenaran Ketiga” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Apa Itu RDBMS dan Mengapa Tabel Penting
  2. Kunci Utama dan Keunikan
  3. NULL: Nilai Kebenaran Ketiga
  4. Ikhtisar Tipe Data: INT VARCHAR DATE BOOLEAN
← Kembali ke SQL Academy