Ritorna alla lezione |
dataimm
e numposti
verrà usato il valore di default che, in mancanza di specificazione, è proprio NULL
.
NULL
, senza le virgolette o gli apici. Altrimenti non è più il valore nullo, ma la stringa formata dalle lettere N, U, L ed L. Ad esempio, se al posto di
insert into aerei values ('minijet','MDD','Super80',NULL,NULL);
scrivo
insert into aerei values ('minijet','MDD','Super80','NULL','NULL');
ottengo due warning, e il seguente risultato:
mysql> select * from aerei; +----------+------------+---------+------------+----------+ | id | produttore | modello | dataimm | numposti | +----------+------------+---------+------------+----------+ | superjet | boeing | 747 | 2000-10-10 | 350 | | minijet | MDD | Super80 | 0000-00-00 | 0 | +----------+------------+---------+------------+----------+ 2 rows in set (0.00 sec)
È successo che le due stringhe 'NULL'
non sono del tipo giusto per i campi dataimm
e numposti
, rispettivamente di tipo date
e int
, e MySQL ha deciso di sotituirli con due valori nulli, ad indicare una situazione di errore.
Per quanto riguarda la II parte dell'esercizio, non è possibile ottenere nessuna delle due tabelle indicate, in quanto id
è una chiave primaria e non può contenere nè valori nulli nè un valore duplicato. È vero, tuttavia, che è possibile scrivere qualcosa nel campo id
della tabella che, col comando SELECT * FROM AEREI
, sembri simile a NULL
o a superjet
. Ad esempio:
INSERT INTO aerei VALUES ('NULL','boeing','767','2001-2-4',400);
che invece di inserire il valore NULL
come chiave primaria inserisce una stringa 'NULL'
.
aerei
sono i seguenti: