PostgreSQL - NULL Values

Assalamualaikum, penggemar basis data yang bersemangat! Hari ini, kita akan mendalami konsep menarik di PostgreSQL: nilai NULL. Sebagai guru sains komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk mengantar Anda melalui topik ini secara bertahap. Jangan khawatir jika Anda baru belajar pemrograman - kita akan mulai dari dasar dan maju perlahan-lahan. Jadi, ambil secangkir kopi (atau teh, jika itu yang Anda sukai), dan mari kita mulai petualangan NULL ini bersama!

PostgreSQL - NULL Values

Apa Itu NULL?

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

Definisi NULL

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

Mengapa NULL penting?

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

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

Misalnya, jika Anda memiliki basis data karyawan dan nomor telepon mereka, nilai NULL dalam kolom nomor telepon dapat berarti "Kami belum mendapatkan nomor telepon karyawan ini," yang berbeda dari string kosong yang mungkin berarti "Karyawan ini secara eksplisit mengatakan bahwa mereka tidak memiliki telepon."

Sintaks 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 Sintaks 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 maka mengembalikan nilai1

Mari kita masuk ke setiap dari 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 untuk NULL. Mari kitauraikan apa yang kita lakukan:

  1. Alice memiliki semua informasinya.
  2. Bob tidak memiliki nomor telepon (itu NULL).
  3. Charlie tidak memiliki email (itu NULL).
  4. David misterius dan tidak memiliki 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 di sini: kondisi IS NULL memeriksa nilai NULL dalam kolom email. Itu seperti bertanya, "Hei PostgreSQL, bisakah Anda menemukan semua siswa yang belum memberikan alamat email mereka?"

Mari kita coba yang 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 seperti pisau suwis Army 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 di sini? COALESCE memeriksa kolom email. Jika itu menemukan NULL, itu menggantinya dengan 'No email provided'. Itu seperti memiliki asisten yang ramah yang mengisi ruang kosong untuk Anda!

Menggunakan NULLIF

NULLIF seperti seorang ahli magi - itu dapat membuat nilai menghilang (menjadi NULL) di bawah kondisi 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 yang ada di sini? NULLIF membandingkan setiap nomor telepon dengan '123-456-7890'. Jika mereka cocok, itu mengubah hasil menjadi NULL. Itu seperti mengatakan, "Jika ini adalah nomor kantor standar kita, jangan tunjukkan itu."

Kesimpulan

Dan begitu saja, teman-teman saya! Kita telah berpetualangan melalui 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 latihan, tetap curiga, dan jangan takut bertanya. Setelah semuanya, di dunia belajar, tidak ada nilai NULL - hanya kesempatan untuk tumbuh!

Credits: Image by storyset