Postgresql Not Null Constraint

Bevezetés

amikor táblát hoz létre a PostgreSQL-ben, bizonyos korlátozásokat adhat hozzá az oszlopokhoz. Az SQL-ben a korlátozások olyan speciális szabályok, amelyek korlátozzák az adott oszlopban tárolható adatok típusát. A kényszer egyik típusa a Not NULL kényszer, amely azt diktálja, hogy egy adott oszlop nem tartalmazhat null értékeket. Ebben a cikkben közelebbről megvizsgáljuk a PostgreSQL NOT NULL korlátozást, és áttekintünk néhány példát a korlátozás használatára.

előfeltételek

mielőtt megpróbálná követni ezt az oktatóanyagot, meg kell győződnie arról, hogy ezek a fontos előfeltételek a helyükön vannak:

  • győződjön meg arról, hogy a PostgreSQL telepítve van, és dolgozik az eszközön. A psql -V parancs megjeleníti a PostgreSQL gépre telepített verzióját.

  • szüksége lesz az adatbázis-kezelő rendszerek és az SQL parancsok alapvető ismereteire a PostgreSQL-ben.

nyissa meg a psql parancssori felületet

a parancsok végrehajtásához meg kell nyitnunk a psql parancssori felületet.

a psql parancssori konzolhoz való csatlakozáshoz két lépés szükséges.

az első parancs megadja a bejelentkezési jogosultságokat postgres superuserként a jelszó megadása után:

1
sudo su-postgres

miután megadtuk a superuser jelszót, elindíthatjuk a Postgres interaktív terminálját:

1
psql

Miután csatlakozott a psql felülethez, elkezdheti a lekérdezések és parancsok végrehajtását a PostgreSQL-ben.

PostgreSQL not null

alapértelmezés szerint egy adatrekord null értékeket tartalmazhat a PostgreSQL-ben. A NOT NULL kényszer használata kikényszeríti, hogy a mezőnek null értéktől eltérő értéket kell tartalmaznia. Ha ez a korlátozás érvényben van, nem szúrhat be vagy frissíthet rekordot anélkül, hogy hozzáadna egy értéket a kérdéses mezőhöz.

hozzon létre egy adatbázist a PostgreSQL-ben

hozzunk létre egy adatbázist, amelyen kipróbálhatjuk a Nem NULL kényszert. Győződjön meg arról, hogy a választott új adatbázisnév egyedi; különben a PostgreSQL hibát ad vissza.

új adatbázis létrehozásához a következő szintaxist használjuk:

1
postgres= # adatbázis létrehozása db_name;

a db_name nevet fogjuk használni az adatbázisunkban,de bármilyen nevet megadhat.

az adatbázishoz való csatlakozáshoz írja be a \c parancsot, majd az adatbázis nevét. Értesítést kap arról, hogy most csatlakozik az adatbázishoz “db_name” mint felhasználó “postgres”.

hozzon létre egy PostgreSQL táblát

táblázat létrehozásához ezt az alapvető szintaxist használjuk:

1
2
Táblázat létrehozása TABLE_NAME (oszlop neve +
adattípus + COLUMN_CONSTRAINT);

figyelje meg, hogy az adattípus az oszlop neve után kerül elhelyezésre, amelyet a kényszer követ, ha van ilyen.

az Adattípus használatával adja hozzá a Not NULL korlátozást

a megszorítások a táblában tárolt adatok típusára vonatkozó szabályok meghatározására szolgálnak. Segítenek korlátozni a táblázat egy mezőjéhez hozzáadható adatokat. Ha olyan adatot ad meg, amely megsérti a korlátozást, hibaüzenetet kap a PostgreSQL-től.

1
2
3
db_name = # Táblázat létrehozása bérszámfejtés (employee_id INT
elsődleges kulcs nem nulla, név VARCHAR(30),
wage_rate INTEGER, fizetés valós);

a PostgreSQL használata, ahol nem null

a Postgres-ben, a Not NULL kényszer soha nem fogad el null értékeket. A null adatoknak nincs konkrét neve– ez nem egyenértékű nulla értékkel vagy akár üres karakterlánccal. Elméleti adatbázis szempontjából ismeretlen információkat képvisel.

a where használata nem null A PostgreSQL-ben

nézzünk meg egy példát, ahol a NOT NULL fogalmát alkalmazhatjuk egy SELECT utasításban:

1
db_name= # SELECT * a bérszámfejtésből, ahol az employee_id értéke nem NULL;

ez a lekérdezés minden olyan rekordot visszaad, ahol a employee_id értéke nem null. Mivel a employee_id Nem null korlátozással rendelkezik, az eredmények a következőképpen fognak kinézni:

1
2
3
4
5
6
7
8
9
alkalmazott_id / név / bér_ráta / fizetés
————-+——–+———–+——–
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 sor)

ha a SELECT utasításunkat a NULL feltétel használatára váltjuk, az eredményeink így néznének ki:

1
2
3
4
db_name= # SELECT * a bérszámfejtésből, ahol a bérszámfejtés értéke NULL;
employee_id / név | bérszámfejtés | fizetés
————-+——+———–+——–
(0 sorok)

mint korábban említettük, a employee_id mező nem NULL korlátozással rendelkezik, így egyetlen rekord sem felel meg a lekérdezésben megadott NULL feltételnek.

a frissítés használata, ahol nem null

a PostgreSQL-ben a Not NULL feltételt is használhatjuk egy UPDATE utasításban.

Íme egy példa:

1
2
db_name= # bérszámfejtés frissítése SET name = ‘Justine’ ahol
employee_id értéke nem NULL;

a fenti példában azt látjuk, hogy a PostgreSQL NOT NULL feltétel frissíti a payroll nevű táblázatot. Módosítja a name oszlopot, hogy ‘Justine’ értéket kapjon minden olyan rekordnál, ahol a employee_id nem tartalmaz null értéket.

a delete where not null

használatával NOT NULL feltételt is alkalmazhatunk DELETE utasításra a következő szintaxis használatával:

1
db_name= # Törlés a bérszámfejtésből, ahol a név NEM NULL;

ez a szintaxis DELETE a bérszámfejtési tábla összes rekordját tartalmazza, ahol a névnek nincs null értéke.

ellenőrizzük, hogy a rekordokat sikeresen törölték-e egy SELECT * utasítás végrehajtásával:

1
válasszon * – tól TABLE_NAME;

következtetés

ha bizonyos szabályokat szeretne érvényesíteni a PostgreSQL táblákban tárolt adatokkal kapcsolatban, a korlátozások a legjobb módja a munka elvégzésének. Ebben a cikkben a PostgreSQL NOT NULL korlátozásra összpontosítottuk figyelmünket, és számos példát vizsgáltunk arra, hogyan kell használni a NOT NULL feltételt különböző adatbázis-műveletekben. Ezekkel a példákkal, hogy végigvezeti Önt, akkor képes lesz arra, hogy használja a NOT NULL kényszer a saját PostgreSQL adatbázisban.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.