Database
 sql >> Base de Dados >  >> RDS >> Database

SQL, Manipulando células vazias


Quando criamos uma tabela desta forma:
CREATE TABLE people (
  age INT,
  name CHAR(20)
);

SQL aceita livremente valores vazios como registros:
INSERT INTO people VALUES (null, null);

Isso pode ser um problema, porque agora temos uma linha com valores nulos:
 age |  name  
-----+--------
  37 | Flavio
   8 | Roger
     | 

Para resolver isso, podemos declarar restrições nas linhas da nossa tabela. NOT NULL impede valores nulos:
CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL
);

Se tentarmos executar esta consulta novamente:
INSERT INTO people VALUES (null, null);

Receberíamos um erro, assim:
ERROR:  null value in column "age" violates not-null constraint
DETAIL:  Failing row contains (null, null).

Observe que uma string vazia é um valor não nulo válido.