У СКЛ-у Нулл је и вредност и кључна реч. Погледајмо прво НУЛЛ вредност -
Нула као вредност
Једноставно речено, НУЛЛ је једноставно држач места за податке који не постоје. Када изводите операције уметања на табелама, то ће бити времена када неке вредности поља неће бити доступне.
Да би испунио захтеве правих релационих система за управљање базама података, МиСКЛ користи НУЛЛ као држач места за вредности које нису предате. Снимак екрана испод приказује како НУЛЛ вредности изгледају у бази података.
Погледајмо сада неке од основа за НУЛЛ пре него што кренемо даље у расправу.
- НУЛЛ није тип података - то значи да није препознат као „инт“, „датум“ или било који други дефинисани тип података.
- Аритметичке операције које укључују НУЛЛ увек враћају НУЛЛ, на пример, 69 + НУЛЛ = НУЛЛ.
- Све агрегатне функције утичу само на редове који немају НУЛЛ вредности .
Хајде сада да покажемо како функција цоунт третира нулл вредности. Погледајмо тренутни садржај табеле чланова-
SELECT * FROM `members`;
Извршавање горње скрипте даје нам следеће резултате
membership_ number | full_ names | gender | date_of_ birth | physical_ address | postal_ address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Пребројимо све чланове који су ажурирали свој контакт_број
SELECT COUNT(contact_number) FROM `members`;
Извршење горњег упита даје нам следеће резултате.
COUNT(contact_number) |
---|
7 |
Напомена: Вредности које су НУЛЛ нису укључене
Што није?
НОТ логички оператор се користи за тестирање логичких услова и враћа труе ако је услов фалсе. Оператор НОТ враћа фалсе ако је тестирани услов тачан
Стање |
НЕ Резултат оператора |
Истинито |
Нетачно |
Нетачно |
Истинито |
Зашто користити НОТ нулл?
Биће случајева када ћемо морати извршити прорачуне на скупу резултата упита и вратити вредности. Извођење било којих аритметичких операција на ступцима који имају вредност НУЛЛ враћа нулл резултате. Да би се избегле такве ситуације, можемо употребити клаузулу НОТ НУЛЛ да бисмо ограничили резултате на којима послују наши подаци.
НОТ НУЛЛ Вредности
Претпоставимо да желимо да креирамо табелу са одређеним пољима која увек треба да имају вредности када убацујемо нове редове у табелу. Приликом креирања табеле можемо користити клаузулу НОТ НУЛЛ у датом пољу.
Пример приказан у наставку ствара нову табелу која садржи податке о запосленима. Увек треба навести број запосленог
CREATE TABLE `employees`(employee_number int NOT NULL,full_names varchar(255) ,gender varchar(6));
Покушајмо сада да убацимо нови запис без навођења имена запосленог и да видимо шта ће се догодити.
INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');
Извршавање горње скрипте у МиСКЛ радном окружењу даје следећу грешку -
НУЛЛ Кључне речи
НУЛЛ се такође може користити као кључна реч приликом извођења логичких операција на вредностима које укључују НУЛЛ. Кључна реч „ИС / НОТ“ се користи заједно са НУЛЛ речју у те сврхе. Основна синтакса када се нулл користи као кључна реч је следећа
`comlumn_name' IS NULL`comlumn_name' NOT NULL
ОВДЕ
- „ИС НУЛЛ“ је кључна реч која врши логичко поређење. Враћа труе ако је наведена вредност НУЛЛ и фалсе ако достављена вредност није НУЛЛ.
- „НОТ НУЛЛ“ је кључна реч која врши логичко поређење. Враћа труе ако наведена вредност није НУЛЛ и фалсе ако је наведена вредност нулл.
Погледајмо сада практични пример који користи кључну реч НОТ НУЛЛ да би елиминисао све вредности колона које имају нулл вредности.
Настављајући са горњим примером, претпоставимо да су нам потребни детаљи чланова чији контакт број није нулл. Можемо извршити упит попут
SELECT * FROM `members` WHERE contact_number IS NOT NULL;
Извршавање горњег упита даје само записе код којих контакт број није нулл.
Претпоставимо да желимо записе чланова где је контакт број нулл. Можемо користити следећи упит
SELECT * FROM `members` WHERE contact_number IS NULL;
Извршавање горњег упита даје детаље о члану чији је контакт број НУЛЛ
membership_ number | full_names | gender | date_of_birth | physical_address | postal_address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Поређење нулл вредности с
Логика са три вредности - извођење логичких операција под условима који укључују НУЛЛ може да врати „Непознато“, „Тачно“ или „Нетачно“.
На пример, употреба кључне речи „ИС НУЛЛ“ када радите операције поређења које укључују НУЛЛ може да врати тачно или нетачно . Коришћење других оператора упоређивања враћа „Непознато“ (НУЛЛ).
Претпоставимо да упоредите број пет са 5
SELECT 5 =5;
Резултат упита је 1 што значи ИСТИНА
5 =5 |
---|
1 |
Направимо исту операцију са НУЛЛ
SELECT NULL = NULL;
NULL = NULL |
---|
NULL |
Погледајмо још један пример
SELECT 5 > 5;
5> 5 |
---|
0 |
Резултат упита је 0, што значи ФАЛСЕ
Погледајмо исти пример користећи НУЛЛ
SELECT NULL > NULL;
NULL> NULL |
---|
NULL |
Хајде да користимо кључну реч ИС НУЛЛ
SELECT 5 IS NULL;
5 IS NULL |
---|
0 |
Резултат упита је 0 што је ФАЛСЕ
SELECT NULL IS NULL;
NULL IS NULL |
---|
1 |
Резултат упита је 1 што је ИСТИНА
Резиме
- НУЛЛ је држач места вредности за опционална поља табеле.
- МиСКЛ НУЛЛ вредност третира другачије од осталих типова података. Вредности НУЛЛ када се користе у услову процењују на лажну логичку вредност.
- Логичка операција НОТ користи се за тестирање логичких вредности и процењује на труе ако је Боолеова вредност нетачна и фалсе ако је логичка вредност тачна.
- Клаузула НОТ НУЛЛ користи се за уклањање НУЛЛ вредности из скупа резултата
- Извођење аритметичких операција на НУЛЛ вредностима увек враћа НУЛЛ резултате.
- Оператори упоређивања попут [, = итд.] Не могу се користити за поређење НУЛЛ вредности.