Kion Vi Devus Scii Pri NULL Valoroj

Komprenu la Uzo de NULLoj por Eviti Datumajn Problemojn

Uzantoj novaj al la mondo de datumbazoj ofte konfuzas per speciala valoro aparte al la kampo - la valoro NULL. Ĉi tiu valoro troviĝas en kampo enhavanta ajnan tipon de datumoj kaj havas tre specialan signifon ene de la kunteksto de rilata datumbazo. Eble plej bone komencu nian diskuton pri NULL kun kelkaj vortoj pri kio NULL ne estas :

Prefere, NULL estas la valoro uzita por reprezenti nekonatan pecon da datumoj. Ofte, datumbazaj programistoj uzos la frazon "NULL valoro", sed ĉi tio estas malĝusta. Memoru: NULL estas nekonata valoro en kiu la kampo aperas malplena.

NULL en la Reala Mondo

Ni rigardu simplan ekzemplon: tablo enhavanta la inventaron por frukta stelo. Supozu, ke nia inventaro enhavas 10 pomojn kaj tri oranĝojn. Ni ankaŭ provizas prunojn, sed nia inventara informo estas nekompleta kaj ni ne scias kiom da (se ekzistas) prunoj estas en stoko. Uzante la valoron de NULL, ni havus la inventarblan tablon montrita en la tablo sube.

Frukta Stakonto

InventaroID Item Kvanto
1 Pomoj 10
2 Oranĝoj 3
3 Prunoj NULL


Ĝi klare estus malĝusta inkluzivi kvanton de 0 por la pruntaj rekordoj, ĉar tio implicus, ke ni ne havis prunojn en inventaro. Kontraŭe, ni eble havas iujn prunojn, sed ni simple ne certas.

Al NULL aŭ NOT NULL?

Tablo povas esti desegnita por permesi NULL valorojn aŭ ne.

Jen ekzemplo de SQL kiu kreas Inventaron-tablon kiu permesas iujn NULLojn:

SQL> KREVAS TABLE-INVENTO (InventoryID INT NOT NULL, Item VARCHAR (20) NE NULL, Kvanto INT);

La tabelo de Inventaro ĉi tie ne permesas valorojn de NULL por InventoryID kaj la Elementaj kolumnoj, sed permesas ilin por la Kvanto- kolumno.

Permesante, ke la valoro de NULL estas perfekte bela, la valoroj de NULL povas kaŭzi problemojn, ĉar ĉiu komparo de valoroj, en kiu oni estas NULL ĉiam rezultas en NULL.

Por kontroli ĉu via tablo enhavas NULL valorojn, uzu la IS NULL aŭ NE-NOTA-telefoniston. Jen ekzemplo de IS NULL:

SQL> Elektu INVENTORIDO, ITEMO, KANOJ DE INVENTOJ Kie KANTO NE estas NULL;

Donita nian ekzemplon ĉi tie, ĉi tio revenus:

InventaroID Item Kvanto
3 Prunoj

Funkciante en NULLoj

Laborante kun NULL-valoroj ofte produktas NULL-rezultojn, depende de la operacio de SQL . Ekzemple, supozante, ke A estas NULL:

Aritmetikaj Funkciistoj

Komparantaj Funkciistoj

Ĉi tiuj estas nur kelkaj ekzemploj de telefonistoj, kiuj ĉiam redonas NULL se unu opero estas NULL. Ekzistas multe pli kompleksaj konsultoj, kaj ĉiuj estas komplikitaj per NULL-valoroj. La demando de la hejmo estas, ke se vi permesas la valorojn de NULL en via datumbazo, komprenu la implikaĵojn kaj planojn por ili.

Jen NULL en malmultaj vortoj!