PostgreSQL not null Constraint

wprowadzenie

gdy tworzysz tabelę w PostgreSQL, masz możliwość dodania pewnych ograniczeń do kolumn. W języku SQL ograniczenia są specjalnymi regułami, które ograniczają rodzaj danych, które mogą być przechowywane w danej kolumnie. Jednym z typów ograniczeń jest ograniczenie NOT NULL, które nakazuje, że dana kolumna nie może zawierać żadnych wartości null. W tym artykule przyjrzymy się bliżej ograniczeniu PostgreSQL NOT NULL i przejrzymy kilka przykładów użycia tego ograniczenia.

wymagania wstępne

przed przystąpieniem do wykonania tego samouczka musisz upewnić się, że te ważne wymagania wstępne są spełnione:

  • upewnij się, że PostgreSQL jest zainstalowany i działa na Twoim urządzeniu. Polecenie psql -V wyświetli wersję PostgreSQL zainstalowaną na twoim komputerze.

  • będziesz potrzebował podstawowej wiedzy na temat systemów zarządzania bazami danych i poleceń SQL w PostgreSQL.

Otwórz interfejs wiersza poleceń psql

aby wykonać polecenia, musimy otworzyć interfejs wiersza poleceń psql.

aby połączyć się z konsolą wiersza poleceń psql, wymagane są dwa kroki.

pierwsze polecenie nada Ci uprawnienia do logowania jako superużytkownik postgres po wpisaniu hasła:

1
sudo su-postgres

po wpisaniu hasła superużytkownika możemy uruchomić interaktywny terminal dla Postgres:

1
psql

po połączeniu się z interfejsem psql możesz rozpocząć wykonywanie zapytań i poleceń w PostgreSQL.

PostgreSQL nie null

domyślnie rekord danych może zawierać wartości null w PostgreSQL. Użycie ograniczenia NOT NULL wymusza, że pole musi zawierać wartość inną niż wartość null. Dzięki temu ograniczeniu nie można wstawiać ani aktualizować rekordu bez dodania wartości dla danego pola.

Utwórz bazę danych w PostgreSQL

stwórzmy bazę danych, na której możemy przetestować ograniczenie NOT NULL. Upewnij się, że wybrana nowa nazwa bazy danych jest unikalna; w przeciwnym razie PostgreSQL zwróci błąd.

aby utworzyć nową bazę danych, użyjemy następującej składni:

1
postgres= # CREATE DATABASE db_name;

użyjemy nazwy db_name w naszej bazie danych, ale możesz podać dowolną nazwę.

aby połączyć się z bazą danych, wprowadź \c, a następnie nazwę bazy danych. Zostaniesz powiadomiony, że jesteś teraz połączony z bazą danych ” db_name „jako użytkownik”postgres”.

Utwórz tabelę PostgreSQL

aby utworzyć tabelę, używamy tej podstawowej składni:

1
2
Utwórz TABLE TABLE_NAME (COLUMN NAME +
typ danych + COLUMN_CONSTRAINT);

zauważ, że typ danych jest umieszczony po nazwie kolumny, a po nim następuje ograniczenie, jeśli jest ono używane.

użyj typu danych, aby dodać ograniczenie NOT NULL

ograniczenia są używane do definiowania reguł dotyczących rodzaju danych przechowywanych w tabeli. Pomagają one ograniczyć dane, które można dodać do pola w tabeli. Jeśli wprowadzone zostaną dane naruszające ograniczenie, PostgreSQL wyświetli monit o błąd.

1
2
3
db_name=# CREATE TABLE payroll(employee_id INT
klucz podstawowy NOT NULL, name VARCHAR (30),
wage_rate INTEGER, payment REAL);

używając PostgreSQL, gdzie not null

w Postgres, ograniczenie NOT NULL nigdy nie zaakceptuje żadnych wartości null. Nie ma konkretnej nazwy dla danych null– nie jest ona równoważna wartości zerowej ani nawet pustemu łańcuchowi. Pod względem teoretycznym reprezentuje nieznane informacje.

Wybieranie za pomocą where nie jest null w PostgreSQL

spójrzmy na przykład, w którym możemy zastosować koncepcję NOT NULL w instrukcji SELECT :

1
db_name= # SELECT * FROM payroll WHERE employee_id IS NOT NULL;

to zapytanie zwróci wszystkie rekordy, w których wartość employee_id nie jest równa null. Ponieważ employee_id ma ograniczenie not null, wyniki będą wyglądać następująco:

1
2
3
4
5
6
7
8
9
employee_id / name / wage_rate / payment
————-+——–+———–+——–
1 | hector | 400 / 10000
2| justine | 400 / 10000
3 | sofia | 450 | 15000
4 | ivy | 400 | 10000
5 | henry | 500 | 25000
6 | myler | 500 / 25000
(6 rzędów)

jeśli przełączymy nasze polecenie SELECT na warunek NULL , nasze wyniki będą wyglądać tak:

1
2
3
4
db_name= # SELECT * FROM payroll WHERE wage_rate IS NULL;
employee_id | name / wage_rate / Payroll
————-+——+———–+——–
(0 wiersze)

jak wspomnieliśmy wcześniej, pole employee_id ma ograniczenie NOT NULL, więc żadne rekordy nie pasują do warunku NULL określonego w tym zapytaniu.

używając update where not null

w PostgreSQL, możemy również użyć warunku NOT NULL w instrukcji UPDATE.

oto przykład:

1
2
db_name= # UPDATE payroll SET name = 'Justine’ gdzie
employee_id nie jest NULL;

w powyższym przykładzie widzimy, że warunek PostgreSQL NOT NULL zaktualizuje tabelę o nazwie payroll. Zmodyfikuje kolumnę name, aby miała wartość 'Justine’ dla wszystkich rekordów, w których employee_id nie zawiera wartości null.

używając delete where not null

możemy również zastosować warunek NOT NULL do instrukcji DELETE używając następującej składni:

1
db_name= # usuń z listy płac, gdzie nazwa nie jest NULL;

ta składnia będzie zawierać DELETE wszystkie rekordy z tabeli płac, w których nazwa nie ma wartości null.

Sprawdźmy, czy rekordy zostały pomyślnie usunięte, wykonując polecenie SELECT * :

1
SELECT * FROM TABLE_NAME;

wniosek

jeśli chcesz egzekwować pewne reguły dotyczące danych przechowywanych w tabelach PostgreSQL, ograniczenia są najlepszym sposobem na wykonanie zadania. W tym artykule skupiliśmy naszą uwagę na ograniczeniu PostgreSQL NOT NULL i przyjrzeliśmy się kilku przykładom użycia warunku NOT NULL w różnych operacjach bazy danych. Dzięki tym przykładom będziesz mógł skorzystać z ograniczenia NOT NULL we własnej bazie danych PostgreSQL.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.