MySQL - NULL Values

Hai saudara, para penggemar basis data yang bersemangat! Hari ini, kita akan melihat dunia yang menarik nilai NULL dalam MySQL. Seperti teman pendidik komputer di sebelah Anda, saya sangat gembira untuk mengantar Anda dalam perjalanan ini. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai!

MySQL - NULL Values

The MySQL NULL Values

Apa itu nilai NULL?

Sebelum kita masuk ke dalam hal yang mendalam, mari kita pahami apa arti NULL sebenarnya. Dalam MySQL, NULL mewakili nilai yang hilang atau tak diketahui. Itu seperti saat Anda bertanya kepada teman Anda tentang 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 keabsenan nilai manapun. Pikirkan itu sebagai penanda 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 basis data. Mereka memungkinkan kita untuk:

  1. Menyajikan 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's grade atau Charlie's age. Sebaliknya untuk menduga atau memasukkan informasi yang salah, kita gunakan NULL.

Membuat Tabel Tanpa Nilai NULL

Apa bila kita ingin memastikan bahwa kolom tertentu selalu memiliki nilai? Itu di mana konstrain NOT NULL berguna. Itu seperti mengatakan ke murid Anda, "Tidak ada alasan untuk tidak mengirimkan tugas Anda!"

Mari kita buat tabel di mana kita memerlukan semua field memiliki nilai:

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 konstrain NOT NULL. Jika kita mencoba memasukkan baris tanpa memberikan semua nilai, MySQL akan 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 dalam Tabel

kadang-kadang, kita mungkin ingin memperbarui nilai NULL dalam tabel kita. Mungkin kita akhirnya mengetahui umur Charlie dari contoh sebelumnya. Mari kita lihat bagaimana kita bisa melakukan itu:

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

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

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

Ingat, Anda tidak bisa menset kolom NOT NULL ke 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 dalam kolom tertentu. Mari kita lihat bagaimana kita bisa melakukan itu:

DELETE FROM students WHERE grade IS NULL;

Catatan bahwa kita menggunakan IS NULL bukan = NULL. Ini karena NULL bukanlah nilai, jadi kita tidak bisa menggunakan operator kesamaan dengannya. Itu adalah salah satu keunikan yang membuat NULL istimewa!

Nilai NULL dalam Program Klien

Saat bekerja dengan nilai NULL dalam program klien (seperti skrip PHP yang menghubungkan ke MySQL), penting untuk menghandle mereka dengan benar. Mari kita lihat 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 skrip ini, kita menggunakan operator ternary untuk memeriksa apakah umur atau nilai nilai NULL, dan jika begitu, kita menampilkan "Unknown" atau "Not graded" secara berurutan.

Kesimpulan

Dan itu adalah, teman-teman! Kita telah melakukan perjalanan melalui negeri nilai NULL dalam MySQL. Ingat, NULL bukanlah sesuatu - itu adalah yang diketahui yang tak diketahui, tanda tanya dalam basis data Anda, dan bagian yang hilang dari tebakan. Embrasi NULL, memahaminya, dan gunakanlah dengan bijaksana dalam petualangan basis data Anda!

Sebelum kita berpisah, ini adalah tabel ringkasan 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 (dimungkinkan) INSERT INTO students (id, name, age) VALUES (1, 'Alice', NULL);
Memperbarui ke NULL Menset nilai ke NULL (dimungkinkan) 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 NULL Menghapus baris dengan NULL di kolom tertentu DELETE FROM students WHERE grade IS NULL;
Memeriksa NULL Menggunakan IS NULL atau IS NOT NULL dalam queri SELECT * FROM students WHERE age IS NOT NULL;

Selamat coding, dan semoga basis data Anda selalu NULL-sadari!

Credits: Image by storyset