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

SQL, Umgang mit leeren Zellen

Wenn wir auf diese Weise eine Tabelle erstellen:

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

SQL akzeptiert leere Werte als Datensätze:

INSERT INTO people VALUES (null, null);

Dies könnte ein Problem sein, da wir jetzt eine Zeile mit Nullwerten haben:

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

Um dies zu lösen, können wir Einschränkungen für unsere Tabellenzeilen deklarieren. NOT NULL verhindert Nullwerte:

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

Wenn wir versuchen, diese Abfrage erneut auszuführen:

INSERT INTO people VALUES (null, null);

Wir würden einen Fehler wie diesen erhalten:

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

Beachten Sie, dass eine leere Zeichenfolge ein gültiger Nicht-Null-Wert ist.