Հասկացեք NULL- ի օգտագործումը, որպեսզի խուսափեք բազայի խնդիրներից
Տվյալների բազաների աշխարհում նոր օգտվողները հաճախ շփոթվում են տվյալ դաշտում հատուկ արժեքով `NULL արժեքով: Այս արժեքը կարելի է գտնել ցանկացած տիպի տվյալներ պարունակող դաշտում եւ ունի հատուկ նշանակություն հարաբերական տվյալների բազայի համատեքստում: Հավանաբար լավագույնն է NULL- ի մեր քննարկման մեկնարկը մի քանի բառով, թե ինչ NULL- ը չէ :
- NULL համարը զրոյի չէ:
- NULL- ը դատարկ գծի ("") արժեք չէ:
Փոխարենը, NULL- ը արժեքի արժեքն է, որն օգտագործվում է անհայտ կտոր ներկայացնի: Հաճախ, տվյալների բազայի ծրագրավորողները կօգտագործեն «NULL արժեք» արտահայտությունը, բայց դա սխալ է: Հիշեք `NULL- ը անհայտ արժեք է, որի դաշտը դատարկ է:
Իրական աշխարհում NULL- ը
Եկեք նայենք պարզ օրինակին. Սեղան, որը պարունակում է մանրածախ դիրքորոշման գույքագրումը: Ենթադրենք, մեր գույքագրում պարունակում է 10 խնձոր եւ երեք նարինջ: Մենք նաեւ ֆոնդային սալորներ ենք, բայց մեր գույքագրման տեղեկատվությունը թերի է, եւ մենք չգիտենք, թե քանի (եթե առկա) սալորները գտնվում են ֆոնդային բորսայում: Օգտագործելով NULL- ի արժեքը, մենք կունենանք գույքագրման աղյուսակը ստորեւ ներկայացված աղյուսակում:
Մրգային կախովի առարկա
Գրապահոց ID | Նյութը | Քանակ |
1 | Խնձոր | 10 |
2 | Պտուղներ | 3 |
3 | Սալոր | ԴԱՏԱՐԿ |
Պարզապես սխալ կլինի ընդգրկել սալորների գրանցման համար 0-ի քանակությունը, քանի որ դա ենթադրում էր, որ գորգերի մեջ սալոր չկա: Ընդհակառակը, մենք կարող ենք ունենալ մի քանի սալոր, բայց մենք պարզապես համոզված չենք:
NULL- ին կամ ոչ NULL- ին:
Սեղան կարելի է նախագծել կամ թույլ տալ NULL արժեքները, թե ոչ:
Ահա մի SQL օրինակ, որը ստեղծում է գույքագրման աղյուսակ, որը թույլ է տալիս որոշ NULLs:
SQL> ՍՏԵՂԾԵԼ ՏԵՔՍՏԱՅԻՆ ԻՆՎԵՆՏՈՐՈւԹՅՈւՆ (InventoryID INT N NOT, Item VARCHAR (20) NULL, քանակի INT);Գույքի աղյուսակը այստեղ թույլ չի տալիս NULL արժեքները Գրապահոցի եւ առարկայի սյունակներում, բայց թույլ է տալիս նրանց Քանակական սյունակում:
Թույլատրելով NULL- ի արժեքը կատարելապես լավ է, NULL- ի արժեքները կարող են խնդիրներ առաջացնել, քանի որ արժեքների ցանկացած համեմատություն, որի դեպքում NULL- ը միշտ հանգեցնում է NULL:
Ստուգելու համար, թե արդյոք ձեր աղյուսակը պարունակում է NULL արժեքներ, օգտագործեք IS NULL կամ NULL օպերատորը: Ահա IS NULL- ի օրինակ է.
SQL> SELECT INVENTORYID, ITEM, QUANTITY INVENTORY- ից, որտեղ քանակությունը NULL չէ;Հաշվի առնելով մեր օրինակը, դա կվերադառնա.
Գրապահոց ID | Նյութը | Քանակ |
---|---|---|
3 | Սալոր |
Գործող NULL- ներում
NULL- ի հետ աշխատող արժեքները հաճախ աշխատում են NULL արդյունքներից `կախված SQL- ի գործարկությունից : Օրինակ, ենթադրելով, որ A- ն NULL է:
Հաշվիչ օպերատորներ
- A + B = NULL
- A - B = NULL
- A * B = NULL
- A / B = NULL
Համեմատության օպերատորներ
- A = B = NULL
- A! = B = NULL
- A> B = NULL
- A!
Սրանք ընդամենը մի քանի օպերատորների օրինակներ են, որոնք միշտ վերադարձնում են NULL, եթե մեկ operand- ն NULL է: Շատ ավելի բարդ հարցումներ կան, եւ բոլորը բարդ են NULL արժեքներով: Վերցրեք տնային կետը այն է, որ եթե դուք թույլատրում եք NULL- ի արժեքները ձեր տվյալների բազայում, հասկացեք հետեւանքները եւ դրանց պլանավորեք:
Դա NULL- ն ընկույզով է: