Database
 sql >> Database >  >> RDS >> Database

SQL, Gestione delle celle vuote

Quando creiamo una tabella in questo modo:

CREATE TABLE people (
  age INT,
  name CHAR(20)
);

SQL accetta liberamente valori vuoti come record:

INSERT INTO people VALUES (null, null);

Questo potrebbe essere un problema, perché ora abbiamo una riga con valori null:

 age |  name  
-----+--------
  37 | Flavio
   8 | Roger
     | 

Per risolvere questo problema, possiamo dichiarare vincoli sulle righe della nostra tabella. NOT NULL impedisce valori nulli:

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL
);

Se proviamo a eseguire nuovamente questa query:

INSERT INTO people VALUES (null, null);

Otterremmo un errore, come questo:

ERROR:  null value in column "age" violates not-null constraint
DETAIL:  Failing row contains (null, null).

Nota che una stringa vuota è un valore non null valido.