- Introduzione
- Prerequisiti
- Apri psql Command-line Interface
- PostgreSQL not null
- Crea un database in PostgreSQL
- Creare una Tabella di PostgreSQL
- Utilizzare il tipo di dati per aggiungere il vincolo NOT NULL
- Usando PostgreSQL dove not null
- Selezionando usando where is not null in PostgreSQL
- Usando l’aggiornamento dove not null
- Usando delete where not null
- Conclusione
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.