MySQL - NULL Values

Hai teman-teman, penggemar database yang sedang berkembang! Hari ini, kita akan melihat dunia yang menarik dari nilai NULL di MySQL. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk mengantar Anda dalam perjalanan ini. Jadi, ambil secangkir minuman favorit Anda, dan mari kita mulai!

MySQL - NULL Values

The MySQL NULL Values

Apa itu nilai NULL?

Sebelum kita masuk ke detailnya, mari kita pahami apa arti sebenarnya NULL. Dalam MySQL, NULL mewakili nilai yang hilang atau tak diketahui. Itu seperti saat Anda bertanya kepada teman Anda apa yang mereka makan untuk sarapan, dan mereka menjawab, "Saya tidak ingat." Itu adalah nilai NULL dalam kehidupan nyata!

NULL bukan nol, string kosong, atau false. Itu adalah keabsenya nilai manapun. Pahamiannya seperti placeholder yang mengatakan, "Hey, seharusnya ada sesuatu di sini, tapi kita belum tahu apa itu!"

Mengapa nilai NULL penting?

Nilai NULL memainkan peran penting dalam manajemen database. Mereka memungkinkan kita untuk:

  1. Mewakili informasi yang hilang
  2. Membedakan antara nol dan nilai yang tak diketahui
  3. Melakukan operasi dan perbandingan khusus

Mari kita lihat contoh sederhana:

CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
grade FLOAT
);

INSERT INTO students (id, name, age, grade) VALUES
(1, 'Alice', 20, 85.5),
(2, 'Bob', 21, NULL),
(3, 'Charlie', NULL, 92.0);

Dalam contoh ini, kita tidak tahu nilai nilai Bob atau umur Charlie. Sebaliknya menjadikan tebakan atau memasukkan informasi yang salah, kita menggunakan NULL.

Membuat Tabel tanpa Nilai NULL

Apa bila kita ingin memastikan bahwa beberapa kolom selalu memiliki nilai? Itu adalah saat NOT NULL constraint berguna. Itu seperti mengatakan kepada murid Anda, "Tidak ada alasan untuk tidak mengirimkan tugas Anda!"

Mari kita buat tabel tempat kita memerlukan nilai untuk semua field:

CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
hire_date DATE NOT NULL
);

Dalam tabel ini, setiap kolom memiliki NOT NULL constraint. Jika kita mencoba memasukkan baris tanpa memberikan semua nilai, MySQL akan dengan sopan menolak permintaan kita dan memberikan kesalahan.

-- Ini akan berhasil
INSERT INTO employees VALUES (1, 'John', 'Doe', '[email protected]', '2023-01-15');

-- Ini akan gagal
INSERT INTO employees (id, first_name, last_name) VALUES (2, 'Jane', 'Smith');

Penyisipan kedua akan gagal karena kita tidak memberikan nilai untuk email dan hire_date, yang adalah field NOT NULL.

Memperbarui Nilai NULL di Tabel

kadang-kadang, kita mungkin ingin memperbarui nilai NULL di tabel kita. Mungkin kita akhirnya mengetahui umur Charlie dari contoh sebelumnya. Berikut adalah cara kita melakukannya:

UPDATE students SET age = 22 WHERE name = 'Charlie';

Tapi apa bila kita ingin menset nilai menjadi NULL? Kita juga bisa melakukan itu, selama kolom mengijinkan nilai NULL:

UPDATE students SET grade = NULL WHERE name = 'Alice';

Ingat, Anda tidak bisa menset kolom NOT NULL menjadi NULL. Itu seperti mencoba menghapus tinta permanen – itu hanya tidak akan bekerja!

Menghapus Record dengan Nilai NULL

kadang-kadang, kita mungkin ingin menghapus record yang memiliki nilai NULL di beberapa kolom. Berikut adalah cara kita melakukannya:

DELETE FROM students WHERE grade IS NULL;

Perhatikan kita menggunakan IS NULL bukan = NULL. Ini karena NULL bukan nilai, jadi kita tidak bisa menggunakan operator kesetaraan dengannya. Itu adalah salah satu keanehan yang membuat NULL khusus!

Nilai NULL dalam Program Klien

Saat bekerja dengan nilai NULL di program klien (seperti script PHP yang menghubungkan ke MySQL), penting untuk menanganinya dengan benar. Berikut adalah contoh PHP sederhana:

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM students";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "Name: " . $row["name"]. " - Age: " .
($row["age"] === NULL ? "Unknown" : $row["age"]) .
" - Grade: " . ($row["grade"] === NULL ? "Not graded" : $row["grade"]) . "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>

Dalam script ini, kita menggunakan operator ternary untuk memeriksa apakah umur atau nilai nilai NULL, dan jika begitu, kita menampilkan "Unknown" atau "Not graded" masing-masing.

Kesimpulan

Dan begitu pun, teman-teman! Kita telah melakukan perjalanan melalui negeri nilai NULL di MySQL. Ingat, NULL bukanlah nihil – itu adalah yang diketahui tetapi tak diketahui, tanda tanya di database Anda, bagian yang hilang dari puzzle. Embrasi nilai NULL, pahami itu, dan gunakanlah dengan bijak dalam perjalanan database Anda!

Sebelum kita berpisah, mari kita rangkum metode yang kita diskusikan:

Metode Deskripsi Contoh
Membuat kolom NOT NULL Memastikan kolom selalu memiliki nilai CREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50) NOT NULL);
Menyisipkan nilai NULL Menambahkan baris dengan nilai NULL (jika diijinkan) INSERT INTO students (id, name, age) VALUES (1, 'Alice', NULL);
Memperbarui nilai ke NULL Menset nilai menjadi NULL (jika diijinkan) UPDATE students SET grade = NULL WHERE name = 'Bob';
Memperbarui dari NULL Mengganti NULL dengan nilai UPDATE students SET age = 22 WHERE name = 'Charlie';
Menghapus record dengan NULL Menghapus baris dengan nilai NULL di kolom tertentu DELETE FROM students WHERE grade IS NULL;
Memeriksa nilai NULL Menggunakan IS NULL atau IS NOT NULL dalam query SELECT * FROM students WHERE age IS NOT NULL;

Selamat coding, dan semoga database Anda selalu sadar terhadap NULL!

Credits: Image by storyset