| 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: