Wat jo witte wolle oer NULL-wearden

Ferwiderje de brûkers fan NULL's om problemen databank te foarkommen

Nije brûkers nei de wrâld fan databases wurde faak konfusearre troch in spesjale wearde dy't it fjild foarmet - de wearde NULL. Dizze wearde kin fûn wurde op in fjild dat alle soarten gegevens hat en hat in hiel bysûndere sin yn 'e kontekst fan in relaasje-database. It is wierskynlik it bêst om ús diskusje oer NULL te begjinnen mei in pear wurden oer wat NULL net is :

NULL is NULL de wearde dy't brûkt wurdt foar in unbekende stik fan gegevens. Faak wurde databankpromjitters de phrase "in NULL-wearde" brûke, mar dit is ferkeard. Tink derom: in NULL is in ûnbekende wearde wêr 't it fjild leech.

NULL yn 'e Real World

Litte wy nei in ienfâldige foarbyld sjen: in tafel mei de ynventaris foar in fruchtstien. Tink derom dat ús ynventaris 10 samlingen en trije orangen befettet. Wy sette ek plums, mar ús ynventarisaasje is ûnfoldwaande en wy witte net hoefolle (as der ien) plums binne op it stock. Mei de wearde NULL, hawwe wy de ynventaris tabel yn 'e tabel hjirûnder sjen litten.

Wetter - Agrarwetter

InventoryID Ûnderdiel Kwantiteit
1 Apples 10
2 Orangen 3
3 Plums NULL


It soe dúdlik wêze dat it net goed is om in kwantiteit fan 0 te meitsjen foar de plumsrapport, om't dat betsjutte dat wy gjin plums hawwe yn ynventarisaasje. Yn 'e oarder kinne wy ​​guon plums hawwe, mar wy binne gewoan net wis.

Nei NULL of NOT NULL?

In tafel kin ûntwurpen wurde om NULL-wearden of net te meitsjen.

Hjir is in SQL-foarbyld dy't in Inventory-tabel makket dy't inkele NULL's jout:

SQL> CREATE TABLE INVENTORY (InventoryID INT NET NULL, Item VARCHAR (20) NET NULL, MODE INT);

De tabel fan de ynventarisaasje hjirtroch jout NULL-wearden foar de InventoryID en de item kolommen net, mar makket se foar de Quantiteit kolom.

Wylst in NULL-wearde perfoarst falt, kinne NULL-wearden problemen liede, om't alle fergelykbere wearden wêryn ien NULL is, altyd in NULL-resultaat.

Om te kontrolearjen as jo tafel NULL-wearden befettet, brûk de IS NULL of IS NOT NULL operator. Hjir is in foarbyld fan IS NULL:

SQL> SELEKTE INVENTORYID, ITEM, QUANTITIK FROM Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û Û QUANTIT

Mei ús foarbyld hjirfoar, soe dit weromkomme:

InventoryID Ûnderdiel Kwantiteit
3 Plums

Operaasje op NULLs

Wurkje mei NULL-wearden produkt faak produkt NULL, ôfhinklik fan de SQL-operaasje . Bygelyks, oannimme dat A is NULL:

Aritmetika

Fergelyksbetellers

Dit binne mar in pear foarbylden fan operators dy't altyd weromkomme NULL as ien operand is NULL. In soad komplekere queries besteane, en alle binne komplete troch NULL-wearden. It nûmerpunt is dat, as jo NULL-wearden yn jo databank befetsje, de ymplikaasjes begripe en planje foar harren.

Dat is NULL yn in nutshell!