PostgreSQL: używanie klauzul NULL i nie NULL

nieznane wartości tabeli bazy danych są inaczej traktowane przez SQL. Jeżeli jedno lub więcej pól tabeli musi być puste, to słowo kluczowe null jest używane podczas tworzenia tabeli i wartość NULL może być użyta do wybrania, Wstawienia lub aktualizacji danych tabeli. Wartość NULL nie oznacza wartości zerowej ani pustej. Jest on używany głównie dla tego pola, w którym wartość jest brakująca lub nieznana lub żadna wartość nie ma zastosowania. Ale jeśli jakiekolwiek pole tabeli musi być ustawione jako obowiązkowe, to musisz użyć słowa kluczowego NOT NULL podczas tworzenia tabeli. Jak można używać klauzul NULL i nie NULL w PostgreSQL do uruchamiania select, insert, update I delete instrukcji SQL są pokazane w tym samouczku.

Utwórz tabelę używając NULL i nie NULL

Utwórz tabelę firma
( company_id INT NOT NULL klucz podstawowy,
nazwa VARCHAR(40) nie NULL,
adres VARCHAR(150),
znak telefonu(20),
kraj VARCHAR(50),
website_url varchar(50) null );

Utwórz elementy tabeli
(item_id SERIAL,
name VARCHAR(40) DEFAULT(’not Assign’),
quantity INT NULL,
company_id INT,
PRIMARY KEY (item_id),
FOREIGN KEY (company_id) referencje firma (company_id) );

Wstaw kilka danych do tabel:

wstaw do tabeli firm:

INSERT INTO company (company_id, name, address, phone, country, website_url)
VALUES (1, 'Samsung’, ’ 123….’, '+337277888′, 'Korea’, 'www.samsung.com’);
INSERT INTO company (company_id, name, address, phone, country, website_url)
VALUES (2, ’67/A ….’, '+42343567′, 'Chaina’, 'www.symphony.com’);
wstaw do firmy (identyfikator firmy, nazwa, adres, telefon, kraj)
wartości (3, 'LG’, ’45/B ….”, „, „Japonia’);

wstaw do tabeli przedmiotów:

INSERT INTO items (name, quantity, company_id)
VALUES (’LG 122′, 4000,3 );
INSERT INTO items (name, quantity, company_id)
VALUES (’Samsung 460′, 7000, 1 );
INSERT INTO items (name, quantity, company_id)
VALUES (’Symfonia E80′, 2200,2 );

przykład-1: Użycie NULL i nie NULL w zapytaniu SELECT

a) NULL

poniższe zapytanie pobierze wszystkie dane nazwy i adresu z tabeli firm, gdzie wartość website_url jest równa null. Istnieje tylko jeden rekord, w którym wartość website_url jest równa NULL.

wybierz nazwę, adres
z firmy
gdzie website_url jest NULL;

B) NOT NULL

wyjście NOT NULL jest odwrotne do NULL. Poniższe zapytanie select zwróci wszystkie rekordy z tabeli firm, w której pole website_url zawiera dowolne dane.

wybierz nazwę, telefon
z firmy
gdzie website_url nie jest NULL;

przykład-2: Użycie NULL lub nie NULL w zapytaniu INSERT

następujące zapytanie wstawi wartość company_id z tabeli firm do tabeli items, która nie ma wartości website_url. W firmie jest jeden rekord, w którym website_url jest równe NULL. Tak więc, jeden rekord zostanie wstawiony po wykonaniu zapytania.

wstaw do pozycji
(company_id)
wybierz company_id
z firmy
gdzie website_url jest NULL;

przykład-3: Użycie NULL w zapytaniu aktualizacyjnym

nazwa pole wartość pozycji tabela zostanie zaktualizowana, który rekord zawiera NULL w polu Ilość. Zgodnie z danymi jeden rekord zostanie zaktualizowany po wykonaniu zapytania.

UPDATE items
SET name = „New Value”
WHERE quantity NULL;

przykład-4: Użycie NULL lub nie NULL w zapytaniu aktualizacyjnym

następujące zapytanie usunie rekordy z tabeli items, gdzie wartość quantity jest równa NULL. W tabeli items jest tylko jeden rekord, w którym wartość quantity jest równa NULL. Tak więc jeden rekord zostanie usunięty po wykonaniu zapytania.

usuń z pozycji
gdzie ilość jest NULL;

można zastosować klauzule NULL i NOT NULL z klauzulą WHERE do wykonania dowolnego zapytania opartego na tabeli, jeśli tabela zawiera jakąkolwiek wartość NULL. Ale wartość NULL i pusty łańcuch nie są identyczne. Jeśli utworzysz dowolne pole tabeli bez opcji NULL i zachowasz puste dane w tym polu, to klauzula NULL nie będzie działać dla tego pola. Można zastosować klauzulę NULL dla dowolnej tabeli w oparciu o strukturę tabeli.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.