Define a table with a DEFAULT name specified:
CREATE TABLE cats3
(
name VARCHAR(20) DEFAULT 'no name provided',
age INT DEFAULT 99
);
Notice the change when you describe the table:
DESC cats3;
Insert a cat without a name:
INSERT INTO cats3(age) VALUES(13);
Or a nameless, ageless cat:
INSERT INTO cats3() VALUES();
Combine NOT NULL and DEFAULT:
CREATE TABLE cats4
(
name VARCHAR(20) NOT NULL DEFAULT 'unnamed',
age INT NOT NULL DEFAULT 99
);
Notice The Difference:
INSERT INTO cats() VALUES();
SELECT * FROM cats;
INSERT INTO cats3() VALUES();
SELECT * FROM cats3;
INSERT INTO cats3(name, age) VALUES('Montana', NULL);
SELECT * FROM cats3;
INSERT INTO cats4(name, age) VALUES('Cali', NULL);