Skip to main content

NULL vērtību definīcija un pareiza izmantošana

Anonim

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 mūsu diskusiju par NULL ar dažiem vārdiem par to, kas ir NULL nē :

  • NULL nav nulles numurs.
  • NULL nav tukša virkne ("") vērtība.

    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

    InventoryIDVienumsDaudzums
    1Āboli10
    2Apelsīni3
    3PlūmesNULL

    Būtu nepareizi iekļaut daudzumu 0 plūmju ierakstiem, jo ​​tas nozīmētu, ka mums bija Nē plūmes krājumā. 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);

    Inventāra tabula šeit neļauj NULL vērtības par InventoryID un Vienums kolonnas, bet atļauj tos Daudzums sleja.

    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:

    InventoryIDVienumsDaudzums
    3Plū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

    • A + B = NULL
    • A - B = NULL
    • A * B = NULL
    • A / B = NULL

    Salīdzinājuma operatori

    • A = B = NULL
    • A! = B = NULL
    • A> B = NULL
    • A! <B = NULL

    Šie ir tikai daži operatoru piemēri vienmēr atgriezties 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!