Skip to content

Perihal NULL dalam SQL

September 12, 2011

Perihal NULL dalam SQL

September 12th, 2011 by admin

NULL, Kosong yang bukan karakter kosong

Sering kali dalam menggunakan sintaks database, kita temui istilah NULL. Konon, Null adalah KOSONG, tapi apakah benar NULL itu kosong? Samakah dengan karakter kosong, atau angka 0? Perhatikan kilasan contoh table dan script di bawah ini:

SELECT * FROM `biodata` WHERE `tempatlahir` IS NOT ('');

apakah perbedaan dengan

SELECT * FROM `biodata` WHERE `tempatlahir` IS NOT NULL;

Dalam dunia programming, dan terutama SQL, NULL tidak dianggap sebagai karakter dan tidak bernilai. NULL memang kosong, tapi bukan karakter kosong. Beda antara

SELECT ('');

dengan

SELECT (NULL);

Dengan perbedaan value tersebut, maka terdapat perbedaan pembahasaan NULL. Misal akan dicari isi biodata yang tempatlahir BUKAN NULL, maka akan seperti ini

SELECT * FROM `biodata` WHERE `tempatlahir` IS NOT NULL

(Pilih dari tabel biodata yang TIDAK KOSONG)
bukan

SELECT * FROM `biodata` WHERE `tempatlahir` NOT IN(NULL);

Jika akan dicari tempat lahir yang null maka akan seperti ini:

SELECT * FROM `biodata` WHERE `tempatlahir` IS NULL;

(Pilih dari tabel biodata yang tempat lahirnya ADALAH KOSONG)
bukan

SELECT * FROM `biodata` WHERE `tempatlahir`=NULL

Sedangkan untuk sekedar karakter kosong, maka Operasional Query akan menjadi seperti ini

SELECT * FROM `biodata` WHERE `tempatlahir` NOT IN('');

(Pilih dari tabel biodata yang tempat lahirnya tidak ”)

dan

SELECT * FROM `biodata` WHERE `tempatlahir`='';

Dengan sifat NULL tersebut, maka tidak seharusnya NULL dikenai operasional matematis, baik penjumlahan, equal, samadengan, tidak sama dengan, kurang dari, dan lain-lainnya. Namun pembahasaannya adalah : IS NOT NULL (tidak kosong), IS NULL (adalah kosong)

SELECT (“”) berisi nilai karakter kosong. Tetapi dia sebenarnya tidak kosong, sehingga NOT NULL
SELECT (0) memang berisi angka 0, tetapi dia tidak kosong maka dia tidak NULL, NOT NULL

Tanda NULL dalam SQL akan ditandai dengan kata NULL dalam record yang berisi nilai tersebut.

Untuk mengetahui sebuah record berisi nilai NULL maka dapat menggunakan sintaks sejenis berikut :

SELECT ISNULL(`namafield`) FROM `table`;

Jika NULL maka akan berisi angka 1, dan jika tidak null akan berisi 0

Sekian, semoga berguna

bimosaurus
eof

From → Tak Berkategori

Tinggalkan sebuah Komentar

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: