PostgreSQL - NULL Values

Hai, para entusiastik basis data yang sedang berkembang! Hari ini, kita akan mendalami konsep yang menarik dalam PostgreSQL: nilai NULL. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk menggイド Anda melalui topik ini secara langkah demi langkah. Jangan khawatir jika Anda baru belajar pemrograman – kita akan mulai dari dasar dan kemudian maju. Jadi, ambil secangkir kopi (atau teh, jika itu hal Anda), dan mari kita mulai petualangan NULL bersama!

PostgreSQL - NULL Values

Apa itu NULL?

Sebelum kita melompat ke sintaksis dan contoh, mari kita pahami apa arti NULL dalam konteks basis data.

Definisi NULL

NULL adalah nilai khusus dalam basis data yang mewakili keabsenan data. Itu bukan nol, bukan string kosong, dan bukan false. Itu hanya... tak ada. Pahami itu sebagai penanda yang mengatakan, "Hey, seharusnya ada sesuatu di sini, tapi kita belum tahu apa itu!"

Mengapa NULL penting?

NULL sangat penting dalam basis data karena memungkinkan kita untuk membedakan antara:

  1. Nilai yang kita tahu (seperti 0 atau string kosong)
  2. Nilai yang kita tidak tahu atau yang tidak berlaku

Misalnya, jika Anda punya basis data karyawan dan nomor telepon mereka, NULL di kolom nomor telepon bisa berarti "Kami belum punya nomor telepon karyawan ini," yang berbeda dari string kosong yang mungkin berarti "Karyawan ini secara tegas mengatakan mereka tidak punya telepon."

Sintaksis untuk Bekerja dengan Nilai NULL

Sekarang kita mengerti apa itu NULL, mari kita lihat bagaimana kita dapat bekerja dengannya di PostgreSQL. Berikut adalah cara utama untuk berinteraksi dengan nilai NULL:

Operasi Sintaksis Deskripsi
Periksa jika nilai NULL IS NULL Mengembalikan true jika nilai NULL
Periksa jika nilai bukan NULL IS NOT NULL Mengembalikan true jika nilai bukan NULL
Tetapkan nilai default untuk NULL COALESCE() Mengembalikan nilai pertama yang bukan NULL dalam daftar
Nullif NULLIF(nilai1, nilai2) Mengembalikan NULL jika nilai1 sama dengan nilai2, jika tidak sama mengembalikan nilai1

Mari kita masuk ke setiap hal ini dengan beberapa contoh!

Contoh Bekerja dengan Nilai NULL

Membuat Tabel dengan Nilai NULL

Pertama, mari kita buat tabel sederhana untuk bekerja dengannya:

CREATE TABLE students (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100),
phone VARCHAR(20)
);

INSERT INTO students (name, email, phone) VALUES
('Alice', '[email protected]', '123-456-7890'),
('Bob', '[email protected]', NULL),
('Charlie', NULL, '987-654-3210'),
('David', NULL, NULL);

Dalam tabel ini, kita membiarkan kolom email dan phone menjadi NULL. Mari kita rincikan apa yang kita lakukan:

  1. Alice memiliki semua informasinya.
  2. Bob tidak punya nomor telepon (itu NULL).
  3. Charlie tidak punya email (itu NULL).
  4. David menjadi mistis dan tidak punya email maupun nomor telepon.

Memeriksa Nilai NULL

Sekarang, mari kita lihat bagaimana kita dapat menemukan siswa dengan informasi yang hilang:

SELECT name
FROM students
WHERE email IS NULL;

Query ini akan mengembalikan:

Charlie
David

Apa yang terjadi disini: kondisi IS NULL memeriksa nilai NULL di kolom email. Itu seperti bertanya, "Hei PostgreSQL, bisakah Anda menemukan semua siswa yang belum memberikan alamat email mereka?"

Mari kita coba sebaliknya:

SELECT name
FROM students
WHERE phone IS NOT NULL;

Ini akan memberikan kita:

Alice
Charlie

Kali ini, kita meminta siswa yang telah memberikan nomor telepon mereka.

Menggunakan COALESCE untuk Menangani Nilai NULL

COALESCE adalah seperti pisau瑞士 Army knife untuk menangani nilai NULL. Itu mengembalikan nilai pertama yang bukan NULL dalam daftar. Mari kita lihatnya dalam aksi:

SELECT name, COALESCE(email, 'No email provided') AS contact_info
FROM students;

Query ini akan mengembalikan:

Alice    | [email protected]
Bob      | [email protected]
Charlie  | No email provided
David    | No email provided

Apa yang terjadi disini? COALESCE memeriksa kolom email. Jika itu NULL, ia mengganti itu dengan 'No email provided'. Itu seperti memiliki asisten yang ramah yang mengisi ruang kosong untuk Anda!

Menggunakan NULLIF

NULLIF adalah seperti seorang magang – ia dapat membuat nilai menghilang (menjadi NULL) di bawah syarat tertentu. Mari kita lihat contoh:

SELECT name, NULLIF(phone, '123-456-7890') AS special_phone
FROM students;

Query ini akan mengembalikan:

Alice    | NULL
Bob      | NULL
Charlie  | 987-654-3210
David    | NULL

Apa keajaiban disini? NULLIF membandingkan setiap nomor telepon dengan '123-456-7890'. Jika mereka cocok, ia mengubah hasil menjadi NULL. Itu seperti mengatakan, "Jika ini adalah nomor kantor standar kami, jangan tunjukkan itu."

Kesimpulan

Dan begitu saja, murid-murid tercinta! Kita telah melakukan perjalanan melalui dunia nilai NULL di PostgreSQL. Kita telah melihat bagaimana NULL mewakili data yang tak diketahui atau hilang, bagaimana untuk memeriksa itu, dan bagaimana menangani itu dengan fungsi seperti COALESCE dan NULLIF.

Ingat, di dunia basis data, mengetahui tentang NULL sama pentingnya dengan mengetahui nilai aktual. Itu adalah perbedaan antara "Saya tidak tahu" dan "Saya tahu itu nol" – dan dalam data, perbedaan itu bisa sangat besar!

Terus latih, tetap curiga, dan jangan takut bertanya. Setelah semuanya, di dunia belajar, tidak ada nilai NULL – hanya kesempatan untuk berkembang!

Credits: Image by storyset