Што вы павінны ведаць аб значэнні NULL

Разуменне Выкарыстанне значэння NULL, каб пазбегнуць праблем з базамі дадзеных

Карыстальнікі новых у свеце баз дадзеных часта блытаюцца спецыяльным значэннем канкрэтнага ў поле - значэнне NULL. Гэта значэнне можна знайсці ў поле, якое змяшчае дадзеныя любога тыпу і мае асаблівае значэнне ў кантэксце рэляцыйнай базы дадзеных. Гэта , верагодна , лепш , каб пачаць наша абмеркаванне NULL некалькі слоў пра тое , што NULL не з'яўляецца:

Хутчэй за ўсё, NULL значэнне выкарыстоўваецца для прадстаўлення невядомай часткі дадзеных. Часта праграмісты баз дадзеных будзе выкарыстоўвацца фраза «значэнне NULL», але гэта няправільна. Памятаеце: NULL з'яўляецца невядомым значэннем, у якім з'яўляецца гэтае поле.

NULL ў рэальным свеце

Давайце разгледзім просты прыклад: табліца, якая змяшчае інвентар для фруктовага стэнда. Выкажам здагадку, што наш інвентар змяшчае 10 яблыкаў і тры апельсіна. Мы таксама забяспечвае слівы, але наша інфармацыя інвентарызацыі з'яўляецца няпоўным, і мы не ведаем, колькі (калі такія маюцца) Слівы ёсць у наяўнасці. Выкарыстоўваючы значэнне NULL, то мы б табліцу інвентарызацыі, паказаную ў табліцы ніжэй.

Fruit Stand Інвентар

InventoryID пункт колькасць
1 яблыкі 10
2 апельсіны 3
3 слівы NULL


Было б відавочна няправільны ўключаць колькасць 0 для запісу зліваў, так як гэта азначала б , што мы не мелі сліў ў інвентары. Наадварот, мы маглі б мець сліў, але мы проста не ўпэўненыя.

Каб NULL або NOT NULL?

Табліца можа быць распрацавана, каб альбо дазволіць значэння NULL ці не.

Вось SQL прыклад, які стварае табліцу Inventory, якая дазваляе некалькі NULLs:

SQL> CREATE TABLE інвентарызацыя (InventoryID INT NOT NULL, Кропка VARCHAR (20) NOT NULL, Колькасць INT);

Табліца Inventory тут не дапускае NULL значэння для InventoryID і слупкоў Кропка, але сапраўды дазваляе ім у слупку Колькасць.

Дапушчаючы значэнне NULL выдатна падыходзіць, NULL значэнне можа выклікаць праблемы, паколькі любое параўнанне значэнняў, у якіх адзін з'яўляецца NULL заўсёды прыводзіць да NULL.

Для таго, каб праверыць, калі табліца змяшчае NULL значэння, выкарыстоўвайце IS NULL або IS NOT NULL аператар. Вось прыклад IS NULL:

SQL> SELECT InventoryID, ITEM, КОЛЬКАСЦЬ АД інвентарызацыі ГДЕ КОЛЬКАСЦЬ IS NOT NULL;

Улічваючы наш прыклад тут, будзе вернуты:

InventoryID пункт колькасць
3 слівы

Дзейнічаючы на ​​значэння NULL

Праца з NULL значэннямі часта прыводзіць NULL вынікі, у залежнасці ад аперацыі SQL . Напрыклад, калі выказаць здагадку, што гэта значэнне NULL:

арыфметычныя аператары

аператары параўнання

Такія толькі некаторыя прыклады аператараў , якія заўсёды будуць вяртаць NULL , калі адзін з аперанд роўны NULL. існуюць значна больш складаныя запыты, і ўсё ўскладняецца NULL значэннямі. Ўзяць дадому Справа ў тым, што, калі дазволіць NULL значэння ў базе дадзеных, зразумець наступствы і план для іх.

Гэта NULL ў двух словах!