MySQL JEST NULL & NIE JEST NULL Tutorial with EXAMPLES

Spisie treści:

Anonim

W SQL Null jest zarówno wartością, jak i słowem kluczowym. Przyjrzyjmy się najpierw wartości NULL -

Null jako wartość

Mówiąc najprościej, NULL jest po prostu miejscem na dane, które nie istnieją. Podczas wykonywania operacji wstawiania na tabelach będą to chwile, w których niektóre wartości pól nie będą dostępne.

Aby spełnić wymagania prawdziwych systemów zarządzania relacyjnymi bazami danych, MySQL używa NULL jako miejsca zastępczego dla wartości, które nie zostały przesłane. Poniższy zrzut ekranu pokazuje, jak wartości NULL wyglądają w bazie danych.

Przyjrzyjmy się teraz niektórym podstawom NULL, zanim przejdziemy dalej do dyskusji.

  • NULL nie jest typem danych - oznacza to, że nie jest rozpoznawany jako „int”, „data” ani żaden inny zdefiniowany typ danych.
  • Operacje arytmetyczne obejmujące NULL zawsze zwracają NULL, na przykład 69 + NULL = NULL.
  • Wszystkie funkcje agregujące wpływają tylko na wiersze, które nie mają wartości NULL .

Pokażmy teraz, jak funkcja count traktuje wartości null. Zobaczmy aktualną zawartość tabeli członków-

SELECT * FROM `members`;

Wykonanie powyższego skryptu daje nam następujące wyniki

 
membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
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

Policzmy wszystkich członków, którzy zaktualizowali swój numer kontaktowy

SELECT COUNT(contact_number) FROM `members`;

Wykonanie powyższego zapytania daje nam następujące wyniki.

 
COUNT(contact_number)
7

Uwaga: wartości NULL nie zostały uwzględnione

Co nie jest?

Operator logiczny NOT jest używany do testowania warunków boolowskich i zwraca prawdę, jeśli warunek jest fałszywy. Operator NOT zwraca fałsz, jeśli testowany warunek jest prawdziwy

Stan: schorzenie

NIE Wynik operatora

Prawdziwe

Fałszywy

Fałszywy

Prawdziwe

Dlaczego używać NOT null?

Będą przypadki, w których będziemy musieli wykonać obliczenia na zestawie wyników zapytania i zwrócić wartości. Wykonywanie jakichkolwiek operacji arytmetycznych na kolumnach, które mają wartość NULL, zwraca wyniki o wartości NULL. Aby uniknąć takich sytuacji, możemy zastosować klauzulę NOT NULL, aby ograniczyć wyniki, na których działają nasze dane.

Wartości NIE NULL

Załóżmy, że chcemy utworzyć tabelę z określonymi polami, do których zawsze należy podawać wartości przy wstawianiu nowych wierszy do tabeli. Możemy użyć klauzuli NOT NULL na danym polu podczas tworzenia tabeli.

Poniższy przykład tworzy nową tabelę zawierającą dane pracownika. Zawsze należy podać numer pracownika

CREATE TABLE `employees`(employee_number int NOT NULL,full_names varchar(255) ,gender varchar(6));

Spróbujmy teraz wstawić nowy rekord bez podawania nazwiska pracownika i zobaczmy, co się stanie.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

Wykonanie powyższego skryptu w środowisku roboczym MySQL powoduje następujący błąd -

NULL Keywords

NULL może być również używane jako słowo kluczowe podczas wykonywania operacji logicznych na wartościach, które zawierają NULL. Do takich celów słowo kluczowe „IS / NOT” jest używane w połączeniu ze słowem NULL. Podstawowa składnia, gdy null jest używane jako słowo kluczowe, jest następująca

`comlumn_name' IS NULL`comlumn_name' NOT NULL

TUTAJ

  • „IS NULL” jest słowem kluczowym wykonującym porównanie logiczne. Zwraca prawdę, jeśli podana wartość jest równa NULL, i fałsz, jeśli podana wartość nie jest równa NULL.
  • „NOT NULL” jest słowem kluczowym wykonującym porównanie logiczne. Zwraca prawdę, jeśli podana wartość nie jest równa NULL, i fałsz, jeśli podana wartość jest równa null.

Przyjrzyjmy się teraz praktycznemu przykładowi, który używa słowa kluczowego NOT NULL w celu wyeliminowania wszystkich wartości kolumn, które mają wartości null.

Kontynuując powyższy przykład, załóżmy, że potrzebujemy danych członków, których numer kontaktowy nie jest pusty. Możemy wykonać zapytanie takie jak

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

Wykonanie powyższego zapytania daje tylko rekordy, w których numer kontaktowy nie jest pusty.

Załóżmy, że chcemy rekordów członków, w których numer kontaktowy jest pusty. Możemy użyć następującego zapytania

SELECT * FROM `members` WHERE contact_number IS NULL;

Wykonanie powyższego zapytania podaje dane członka, którego numer kontaktowy to NULL

 
membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
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

Porównanie wartości null s

Logika trójwartościowa - wykonywanie operacji boolowskich na warunkach, które obejmują NULL, może zwrócić „Nieznane”, „Prawda” lub „Fałsz”.

Na przykład użycie słowa kluczowego „IS NULL” podczas wykonywania operacji porównania obejmujących wartość NULL może zwrócić prawdę lub fałsz . Użycie innych operatorów porównania zwraca „Nieznane” (NULL).

Załóżmy, że porównujesz liczbę pięć z 5

SELECT 5 =5;

Wynik zapytania to 1, co oznacza PRAWDA

 
5 =5
1

Zróbmy tę samą operację z wartością NULL

SELECT NULL = NULL;
 
NULL = NULL
NULL

Spójrzmy na inny przykład

SELECT 5 > 5;
 
5> 5
0

Wynik zapytania to 0, co oznacza FAŁSZ

Spójrzmy na ten sam przykład przy użyciu wartości NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Użyjmy słowa kluczowego IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Wynik zapytania to 0, czyli FAŁSZ

SELECT NULL IS NULL;
 
NULL IS NULL
1

Wynik zapytania to 1, czyli PRAWDA

Podsumowanie

  • NULL to symbol zastępczy wartości dla opcjonalnych pól tabeli.
  • MySQL traktuje wartość NULL inaczej niż inne typy danych. Wartości NULL użyte w warunku dają fałszywą wartość logiczną.
  • Operacja logiczna NOT jest używana do testowania wartości boolowskich i zwraca prawdę, jeśli wartość logiczna to fałsz, a fałsz, jeśli wartość logiczna to prawda.
  • Klauzula NOT NULL służy do eliminowania wartości NULL z zestawu wyników
  • Wykonywanie operacji arytmetycznych na wartościach NULL zawsze zwraca wyniki NULL.
  • Operatory porównania, takie jak [, = itp.], Nie mogą być używane do porównywania wartości NULL.