poniedziałek, 24 września 2018

SQLite - Wartości NULL


SQLite - Wartości NULL

SQLite NULL to termin używany do reprezentowania brakującej wartości. Wartość NULL w tabeli jest wartością w polu, która wydaje się pusta.
Pole z wartością NULL jest polem bez wartości. Bardzo ważne jest zrozumienie, że wartość NULL jest inna niż wartość zerowa lub pole zawierające spacje.
Składnia
Poniżej znajduje się podstawowa składnia użycia NULL podczas tworzenia tabeli.
SQLite> CREATE TABLE PRACOWNIK(
   ID INT PRIMARY KEY     NOT NULL,
   nazwisko        TEXT    NOT NULL,
   wiek            INT     NOT NULL,
   adres           CHAR(50),
   pensja          REAL
);
W tym przypadku NOT NULL oznacza, że ​​kolumna powinna zawsze akceptować jawną wartość danego typu danych. Istnieją dwie kolumny, w których nie użyliśmy NOT NULL, co oznacza, że ​​kolumny te mogą mieć wartość NULL.
Pole z wartością NULL to taka, która pozostała pusta podczas tworzenia rekordu.
Przykład
Wartość NULL może powodować problemy przy wyborze danych, ponieważ porównując nieznaną wartość z dowolną inną wartością, wynik jest zawsze nieznany i nie jest zawarty w ostatecznych wynikach. Rozważ poniższą tabelę, PRACOWNIK z następującymi zapisami:
id          nazwisko    wiek        adres       pensja
----------  ----------  ----------  ----------  ----------
1           Adam        32          Warszawa    2000.0
2           Piotr       25          Piaseczno   1500.0
3           Tomasz      23          Grodzisk    2000.0
4           Marek       25          Płock       6500.0
5           Dawid       27          Halinów     8500.0
6           Katarzyna   22          Marki       4500.0
7           Jan         24          Kraków      4500.0
8           Paweł       24          Zielonka    3500.0
9           Jan         44          Kobyłka     5000.0
10          Jan         45          Nieporęt    5000.0
Pozwól nam użyć instrukcji UPDATE, aby ustawić kilka wartości zerowych jako NULL w następujący sposób -
sqlite> UPDATE PRACOWNIK SET ADRES = NULL, PENSJA = NULL where ID IN(6,7);
Teraz tabela PRACOWNIK będzie zawierała następujące rekordy.
id          nazwisko    wiek        adres       pensja
----------  ----------  ----------  ----------  ----------
1           Adam        32          Warszawa    2000.0
2           Piotr       25          Piaseczno   1500.0
3           Tomasz      23          Grodzisk    2000.0
4           Marek       25          Płock       6500.0
5           Dawid       27          Halinów     8500.0
6           Katarzyna   22          Marki       4500.0
7           Jan         24          Kraków      4500.0
8           Paweł       24          Zielonka    3500.0
9           Jan         44
10          Jan         45
Następnie zobaczmy użycie operatora IS NOT NULL , aby wyświetlić listę wszystkich rekordów, w których PENSJA nie ma wartości NULL.
sqlite> SELECT  id, nazwisko, wiek, adres, pensja
        FROM pracownik
        WHERE pensja IS NOT NULL;
Powyższa instrukcja SQLite wygeneruje następujący wynik -
id          nazwisko    wiek        adres       pensja
----------  ----------  ----------  ----------  ----------
1           Adam        32          Warszawa    2000.0
2           Piotr       25          Piaseczno   1500.0
3           Tomasz      23          Grodzisk    2000.0
4           Marek       25          Płock       6500.0
5           Dawid       27          Halinów     8500.0
6           Katarzyna   22          Marki       4500.0
7           Jan         24          Kraków      4500.0
8           Paweł       24          Zielonka    3500.0
Poniżej przedstawiono użycie operatora IS NULL , który wyświetli listę wszystkich rekordów, w których SALARY ma wartość NULL.
sqlite> SELECT  id, nazwisko, wiek, adres, pensja
        FROM pracownik
        WHERE pensja IS NULL;
Powyższa instrukcja SQLite wygeneruje następujący wynik.
id          nazwisko    wiek        adres       pensja
----------  ----------  ----------  ----------  ----------
9           Jan         44
10          Jan         45



Brak komentarzy:

Prześlij komentarz