When we create a table in this way:
CREATE TABLE people (
age INTEGER,
name TEXT
);
SQL freely accepts empty values as records:
INSERT INTO people VALUES (null, null);
This might be a problem, because now we have a row with null values:
To solve this, we can declare constraints on our table rows. NOT NULL
prevents null values:
DROP TABLE people;
CREATE TABLE people (
age INTEGER NOT NULL,
name TEXT NOT NULL
);
If we try to execute this query again:
INSERT INTO people VALUES (null, null);
We’d get an error, like this:
This is an example of the DBMS setting boundaries on the data we insert.
Very helpful to keep the data clean.