Ki sa ou ta dwe konnen sou Valè NULL

Konprann Sèvi ak NULLs pou evite pwoblèm baz done

Itilizatè yo nouvo nan mond lan nan baz done yo souvan konfonn pa yon valè espesyal patikilye nan jaden an - valè a NULL. Valè sa a ka jwenn nan yon jaden ki gen nenpòt kalite done epi li gen yon siyifikasyon trè espesyal nan yon kontèks yon baz relasyon. Li pwobableman pi bon yo kòmanse diskisyon nou an nan NULL ak yon kèk mo sou sa ki NULL se pa :

Olye de sa, NULL se valè a itilize yo reprezante yon moso enkoni nan done. Anpil fwa, programmers baz done yo pral itilize fraz "yon valè NULL", men sa a se kòrèk. Sonje: yon NULL se yon valè enkoni nan ki jaden an parèt vid.

NULL nan mond reyèl la

Ann pran yon gade nan yon senp egzanp: yon tab ki gen envantè a pou yon kanpe fwi. Sipoze ke envantè nou an gen 10 pòm ak twa zoranj. Nou menm tou nou prunye stock, men enfòmasyon envantè nou an se enkonplè epi nou pa konnen konbyen (si genyen) prunye yo nan stock. Lè l sèvi avèk valè a NULL, nou ta gen tab la envantè yo montre nan tablo ki anba a.

Fwi kanpe Envantè

InventoryID Item Kantite
1 Ponm 10
2 Zoranj 3
3 Plum NULL


Li ta klèman dwe kòrèk enkli yon kantite 0 pou dosye a prunye, paske sa ta vle ke nou pa te gen okenn prunye nan envantè. Okontrè, nou ka gen kèk prunye, men nou ap jis pa sèten.

NULL oswa PA NULL?

Yon tab ka fèt pou swa pèmèt valè NULL oswa ou pa.

Isit la se yon egzanp SQL ki kreye yon tab Envantè ki pèmèt kèk NULLs:

SQL> CREATE TAB Entèvyou (InventoryID INT PA NULL, Item VARCHAR (20) PA NULL, Kantite INT);

Tablo envantè a isit la pa pèmèt valè NULL pou InventoryID la ak kolòn yo Item , men pèmèt yo pou kolòn nan Kantite .

Pandan ke pèmèt yon valè NULL se parfe amann, Valè NULL ka lakòz pwoblèm paske nenpòt konparezon nan valè nan ki yon sèl se NULL toujou rezilta nan NULL.

Pou tcheke si tab ou a gen valè NULL, sèvi ak IS NULL la oswa IS pa operatè NULL. Isit la se yon egzanp IS NULL:

SQL> Chwazi envanteur, ITEM, KANTITE DE INVENTORY KI KANTITE KI PA NULL;

Etandone egzanp nou an isit la, sa a ta retounen:

InventoryID Item Kantite
3 Plum

Opere sou NULLs

K ap travay avèk valè NULL souvan pwodui rezilta NULL, depann sou operasyon an SQL . Pou egzanp, an konsideran ke A se NULL:

Operatè Aritmetik

Operatè konparezon

Sa yo se sèlman kèk egzanp nan operatè ki ap toujou retounen nil si yon sèl operand se NULL. Anpil demann plis konplèks egziste, ak tout yo konplike pa valè NULL. Pwen nan kay pran se ke, si ou pèmèt valè NULL nan baz done ou, konprann enplikasyon yo ak plan pou yo.

Sa a NULL nan yon Nutshell!