Postgresql Not Null Constraint

Introduzione

Quando si crea una tabella in PostgreSQL, è possibile aggiungere determinati vincoli alle colonne. In SQL, i vincoli sono regole speciali che limitano il tipo di dati che possono essere memorizzati in una determinata colonna. Un tipo di vincolo è il vincolo NOT NULL, che impone che una determinata colonna non possa contenere alcun valore null. In questo articolo, daremo un’occhiata più da vicino al vincolo PostgreSQL NOT NULL e esamineremo alcuni esempi di come viene utilizzato il vincolo.

Prerequisiti

Prima di tentare di seguire questo tutorial, è necessario assicurarsi che questi importanti prerequisiti siano a posto:

  • Assicurati che PostgreSQL sia installato e funzionante sul tuo dispositivo. Il comando psql -V visualizzerà la versione di PostgreSQL installata sul computer.

  • Avrete bisogno di una conoscenza di base dei sistemi di gestione di database e comandi SQL in PostgreSQL.

Apri psql Command-line Interface

Per eseguire i comandi, dovremo aprire l’interfaccia della riga di comando psql.

Sono necessari due passaggi per connettersi alla console della riga di comando psql.

Il primo comando ti concederà di privilegi di accesso come postgres superuser dopo aver immesso la password:

1
sudo su – postgres

Dopo che abbiamo immettere la password del superuser, siamo in grado di avviare il terminale interattivo per Postgres:

1
psql

Una volta che si è connessi all’interfaccia psql, è possibile iniziare a eseguire query e comandi in PostgreSQL.

PostgreSQL not null

Per impostazione predefinita, un record di dati può contenere valori null in PostgreSQL. L’utilizzo del vincolo NOT NULL impone che il campo debba contenere un valore diverso da un valore null. Con questo vincolo in atto, non è possibile inserire o aggiornare un record senza aggiungere un valore per il campo in questione.

Crea un database in PostgreSQL

Creiamo un database su cui possiamo testare il vincolo NOT NULL. Assicurati che il nuovo nome del database scelto sia univoco; in caso contrario, PostgreSQL restituirà un errore.

Per creare un nuovo database, useremo la seguente sintassi:

1
postgres=# CREARE un DATABASE db_name;

useremo il nome db_name per il nostro database, ma è in grado di fornire qualsiasi nome che si desidera.

Per connettersi al database, immettere \c seguito dal nome del database. Riceverai una notifica che ora sei connesso al database ” db_name “come utente”postgres”.

Creare una Tabella di PostgreSQL

Per creare una tabella, si usa questa sintassi di base:

1
2
CREATE TABLE NOME_TABELLA( NOME COLONNA +
TIPO di DATI + COLUMN_CONSTRAINT);

si Noti che il tipo di dati è posto dopo il nome di colonna, ed è seguito dal vincolo, se utilizzato.

Utilizzare il tipo di dati per aggiungere il vincolo NOT NULL

I vincoli vengono utilizzati per definire le regole sul tipo di dati memorizzati in una tabella. Aiutano a limitare i dati che possono essere aggiunti a un campo in una tabella. Se vengono inseriti dati che violano il vincolo, verrà visualizzato un messaggio di errore da PostgreSQL.

1
2
3
db_name= # CREA TABELLA payroll(employee_id INT
CHIAVE PRIMARIA NON NULL, nome VARCHAR (30),
wage_rate INTEGER, stipendio REALE);

Usando PostgreSQL dove not null

In Postgres, il vincolo NOT NULL non accetterà mai alcun valore null. Non esiste un nome specifico per i dati null: non è equivalente a un valore zero o addirittura a una stringa vuota. In termini teorici di database, rappresenta informazioni sconosciute.

Selezionando usando where is not null in PostgreSQL

Diamo un’occhiata a un esempio in cui possiamo applicare il concetto di NOT NULL in un’istruzione SELECT :

1
db_name = # SELEZIONA * DAL libro paga DOVE employee_id NON È NULLO;

Questa query restituirà tutti i record in cui il valore di employee_id non è nullo. Poiché employee_id ha un vincolo not null, i risultati saranno simili ai seguenti:

1
2
3
4
5
6
7
8
9
employee_id | nome | wage_rate | stipendio
————-+——–+———–+——–
1 | hector | 400 | 10000
2 | justine| 400 | 10000
3 | sofia | 450 | 15000
4 | ivy | 400 | 10000
5 | henry | 500 | 25000
6 | myles | 500 | 25000
(6 RIGHE)

Se passiamo il nostro SELECT istruzione per utilizzare il NULL condizione, i nostri risultati sarebbe simile a questa:

1
2
3
4
db_name=# SELECT * FROM libro paga DOVE wage_rate È NULL;
employee_id | nome | wage_rate | stipendio
————-+——+———–+——–
(0 RIGHE)

Come abbiamo accennato in precedenza, il employee_id campo ha un vincolo NOT NULL, in modo che nessun record soddisfa i NULL stato specificato in questa query.

Usando l’aggiornamento dove not null

In PostgreSQL, possiamo anche usare la condizione NOT NULL in un’istruzione UPDATE.

Ecco un esempio:

1
2
db_name= # UPDATE payroll SET name = ‘Justine’ DOVE
employee_id NON È NULL;

Nell’esempio sopra, vediamo che la condizione PostgreSQL NOT NULL aggiornerà la tabella denominata payroll. Modificherà la colonna name per avere un valore di ‘Justine’ per tutti i record in cui employee_id non contiene un valore null.

Usando delete where not null

Possiamo anche applicare una condizione NOT NULL a un’istruzione DELETE usando la seguente sintassi:

1
db_name=# ELIMINA DAL libro paga CUI nome NON È NULL;

Questa sintassi DELETE tutti i record dalla tabella degli stipendi, dove il nome non ha un valore null.

Controlliamo se i record sono stati eliminati correttamente eseguendo un’istruzione SELECT * :

1
SELEZIONA * DA NOME_TABELLA;

Conclusione

Quando si desidera applicare determinate regole sui dati memorizzati nelle tabelle PostgreSQL, i vincoli sono il modo migliore per portare a termine il lavoro. In questo articolo, abbiamo focalizzato la nostra attenzione sul vincolo PostgreSQL NOT NULL e abbiamo esaminato diversi esempi di come utilizzare la condizione NOT NULL in una varietà di operazioni di database. Con questi esempi per guidarti, sarai in grado di utilizzare il vincolo NOT NULL nel tuo database PostgreSQL.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.