MariaDB - Valori nulli

Quando lavori con valori NULL, ricorda che sono valori sconosciuti. Non sono stringhe vuote o zero, che sono valori validi. Nella creazione della tabella, le specifiche delle colonne consentono di impostarle per accettare valori null o rifiutarli. Utilizza semplicemente una clausola NULL o NOT NULL. Questo ha applicazioni in caso di informazioni sui record mancanti come un numero ID.

Le variabili definite dall'utente hanno un valore NULL fino all'assegnazione esplicita. I parametri di routine memorizzate e le variabili locali consentono di impostare un valore di NULL. Quando una variabile locale non ha un valore predefinito, ha un valore NULL.

NULL non fa distinzione tra maiuscole e minuscole e ha i seguenti alias:

  • UNKNOWN (un valore booleano)
  • \N

Operatori NULL

Gli operatori di confronto standard non possono essere utilizzati con NULL (ad esempio, =,>,> =, <=, <o! =) Perché tutti i confronti con un valore NULL restituiscono NULL, non vero o falso. I confronti con NULL o eventualmente che lo contengono devono utilizzare l'operatore "<=>" (NULL-SAFE).

Altri operatori disponibili sono:

  • IS NULL - Verifica un valore NULL.

  • NON È NULLO - Conferma l'assenza di un valore NULL.

  • ISNULL - Restituisce un valore di 1 alla scoperta di un valore NULL e 0 in sua assenza.

  • COALESCE - Restituisce il primo valore non NULL di una lista, oppure restituisce un valore NULL in assenza di uno.

Ordinamento dei valori NULL

Nelle operazioni di ordinamento, i valori NULL hanno il valore più basso, quindi l'ordine DESC restituisce valori NULL in fondo. MariaDB consente di impostare un valore più alto per i valori NULL.

Ci sono due modi per farlo come mostrato di seguito:

SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;

L'altro modo -

SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;

Funzioni NULL

Le funzioni generalmente restituiscono NULL quando qualsiasi parametro è NULL. Tuttavia, esistono funzioni progettate specificamente per la gestione dei valori NULL. Sono -

  • IFNULL()- Se la prima espressione non è NULL, la restituisce. Quando restituisce NULL, restituisce la seconda espressione.

  • NULLIF() - Restituisce NULL quando le espressioni confrontate sono uguali, altrimenti restituisce la prima espressione.

Funzioni come SUM e AVG ignorano i valori NULL.

Inserimento di valori NULL

All'inserimento di un valore NULL in una colonna dichiarata NOT NULL, si verifica un errore. Nella modalità SQL predefinita, una colonna NOT NULL inserirà invece un valore predefinito basato sul tipo di dati.

Quando un campo è una colonna TIMESTAMP, AUTO_INCREMENT o virtuale, MariaDB gestisce i valori NULL in modo diverso. L'inserimento in una colonna AUTO_INCREMENT fa sì che il numero successivo nella sequenza venga inserito al suo posto. In un campo TIMESTAMP, MariaDB assegna invece il timestamp corrente. Nelle colonne virtuali, un argomento discusso più avanti in questo tutorial, viene assegnato il valore predefinito.

Gli indici UNIQUE possono contenere molti valori NULL, tuttavia, le chiavi primarie non possono essere NULL.

Valori NULL e comando Alter

Quando si utilizza il comando ALTER per modificare una colonna, in assenza di specifiche NULL, MariaDB assegna automaticamente i valori.