Ko jums vajadzētu zināt par NULL vērtībām

Izprast NULL izmantošanu, lai izvairītos no datu bāzes problēmām

Lietotājiem, kuri ir jauni datubāzu pasaulē, bieži vien sajaucas ar īpašu vērtību laukam - NULL vērtība. Šo vērtību var atrast laukā, kurā ir jebkura veida dati, un tam ir īpaša nozīme relāciju datu bāzes kontekstā. Iespējams, vislabāk ir sākt diskusiju par NULL ar dažiem vārdiem par to, kas NULL nav :

Drīzāk NULL ir vērtība, ko izmanto, lai pārstāvētu nezināmu datu daļu. Bieži vien datu bāzes programmētāji izmantos frāzi "NULL vērtība", bet tas ir nepareizs. Atcerieties: NULL ir nezināma vērtība, kurā lauks ir tukšs.

NULL reālajā pasaulē

Apskatīsim vienkāršu piemēru: tabulu, kurā iekļauts augļu stenda uzskaite. Pieņemsim, ka mūsu inventarizācijā ir 10 āboli un trīs apelsīni. Mēs arī uzkrājam plūmes, taču mūsu inventarizācijas informācija nav pilnīga, un mēs nezinām, cik daudz (ja tādi ir) ir plūmju krājumi. Izmantojot NULL vērtību, mums nākamajā tabulā parādīsies uzskaites tabula.

Augļu stenda inventarizācija

InventoryID Vienums Daudzums
1 Āboli 10
2 Apelsīni 3
3 Plūmes NULL


Būtu nepareizi iekļaut daudzumu 0 plūmju uzskaitei, jo tas nozīmētu, ka mums nebija plūmju krājumos. Gluži pretēji, mums var būt plūmju, bet mēs vienkārši neesam pārliecināti.

NULL vai NULL?

Tabulu var izveidot, lai vai nu atļautu NULL vērtības vai nē.

Šeit ir SQL piemērs, kas izveido Inventāra tabulu, kas ļauj veikt dažus NULL:

SQL> CREATE TABLE INVENTORY (InventoryID INT NAV NULL, Vienība VARCHAR (20) NAV NULL, Daudzums INT);

Inventarizācijas tabula šeit neļauj NULL vērtības InventoryID un kolonnas Elementam , bet atļauj tās kolonnas Daudzums .

Atļaujot NULL vērtību pilnīgi labi, NULL vērtības var radīt problēmas, jo jebkura vērtību salīdzināšana, kurā tā ir NULL, vienmēr rada NULL.

Lai pārbaudītu, vai jūsu tabulā ir NULL vērtības, izmantojiet IS NULL vai IS NOT NULL operatoru. Šeit ir IS NULL piemērs:

SQL SELECT INVENTORYID, ITEM, daudzums no INVENTORY, ja daudzums nav NULL;

Ņemot vērā mūsu piemēru, tas atgriezīsies:

InventoryID Vienums Daudzums
3 Plūmes

Darbojas NULL

Darbs ar NULL vērtībām bieži rada NULL rezultātus, atkarībā no SQL operācijas . Piemēram, pieņemot, ka A ir NULL:

Aritmētikas operatori

Salīdzinājuma operatori

Šie ir tikai daži operatoru piemēri, kas vienmēr atgriezīs NULL, ja viens operands ir NULL. Pastāv daudz sarežģītāki jautājumi, un tos visus sarežģī NULL vērtības. Uzņemšanās no mājas ir tas, ka, ja jūs atļaujat NULL vērtības savā datubāzē, izprotiet sekas un plānojiet tās.

Īsumā tas ir NULL !