29 Giugno 2022
Expand search form

Cos’è un valore nullo in un database?

Juan Manuel Perafan

Un valore NULL è un marcatore speciale usato in SQL per indicare che un valore di dati non esiste nel database. In altre parole, è solo un segnaposto per indicare valori che mancano o che non conosciamo. NULL può essere confuso e ingombrante all’inizio. Ma è imperativo per ogni analista sapere come gestirli. Per questo motivo, ho deciso di scrivere alcuni suggerimenti e trucchi che dovreste conoscere sui valori NULL.

I confronti e le operazioni aritmetiche con un NULL, producono risultati NULL.

Il NULL è più grande di 10? Cos’è 100 volte NULL? Si può dividere NULL per 1000? La risposta a tutte queste domande è NULL! Se uno dei vostri valori è NULL, anche il risultato sarà NULL… indipendentemente dagli altri valori. Pensatela in questo modo: Se non conoscete uno dei valori, non potete conoscere nemmeno la risposta.

LEN(0) catturerà sia NULL che “”.

In pratica, alcuni dei modi più comuni per codificare valori di testo sconosciuti è usare NULL o come stringhe vuote. In alcuni casi, potreste anche trovare fonti di dati che usano un mix di entrambi. Questo è problematico se volete contare quanti valori NULL ci sono nel vostro database. Comandi come IS NULL ignoreranno gli spazi vuoti. Fortunatamente, LEN(0) è qui per aiutare.

“NULL”, “NA”, “” potrebbero essere convertiti in stringhe.

Sfortunatamente, è molto comune che quando si esportano dati da una piattaforma all’altra, i valori NULL e altri marcatori speciali (ad esempio NaN, NA, Inf) possano essere convertiti in stringhe e trattati come qualsiasi altro campo di testo. Questo è particolarmente problematico perché certi comandi come IS NULL o LEN(0) non funzioneranno più, il che significa che dovresti sempre essere scettico e controllare i tuoi dati.

Controllate sempre i vostri dati con un istogramma .

Alcune persone hanno la brutta tendenza a imputare la media o un valore arbitrario (ad esempio 99, 100, 0, -1) direttamente nel database. Se un valore appare sospettosamente spesso o sembra impossibile, potrebbe essere un tentativo di inserire valori NULL.

Solo per citare un paio di esempi: Una volta ho visto un database in cui tutti i clienti che hanno fatto un acquisto prima del 2005 avevano un’età di 27. In un altro set di dati, ho visto intervalli di tempo di -1 secondo.

NULL non è sempre casuale.

Rimuovere tutte le righe che contengono un valore NULL potrebbe non essere una decisione saggia. Soprattutto se c’è una ragione sistematica per cui sono NULL. In statistica, c’è una distinzione tra dati:

  • Mancanti completamente a caso (MCAR).
  • Mancanti a caso (MAR).
  • Mancanti non a caso (MNAR).

Le implicazioni di credere che i vostri valori NULL siano mancanti completamente a caso possono essere catastrofiche per la validità della vostra analisi. Solo per illustrare questo, una volta ho visto un set di dati in cui tutti i minori di 18 anni avevano uno stipendio NULL. Ignorare quelle righe aumenterebbe massicciamente l’età media dell’intero set di dati.

Anche degno di nota: In alcuni casi, specialmente quando i dati mancano non a caso, una colonna booleana che indica se qualcosa è NULL potrebbe essere una buona caratteristica per un modello statistico.

COUNT(*) vs COUNT(1)

A volte potreste preoccuparvi del numero di righe e a volte potreste preoccuparvi del numero di righe che non sono NULL. Per questi casi, potete aggiungere COUNT(*) e COUNT(1) rispettivamente alle vostre query SQL. In Tableau, COUNT([Colonna]) e SUM([Numero di record]) faranno lo stesso trucco.

Le righe mancanti non sono NULL

Questo potrebbe sembrare ovvio per alcuni e confuso per altri, ma è imperativo ricordare che le righe mancanti (cioè le righe che non sono presenti nei dati) si comportano diversamente da un valore mancante (cioè NULL).

Immaginate di avere un negozio che non apre mai la domenica. Quando analizzi le tue entrate giornaliere, non ci saranno dati di transazione per nessuna domenica (cioè righe che non sono presenti nei dati). Alla fine di un anno, avrete dati per circa 313 giorni (invece di 365 giorni).

Se state analizzando i dati per questo negozio, ci sono due cose che dovreste sapere:

  1. Il conteggio distinto dei giorni nella tua tabella dei fatti (cioè la tabella che registra le informazioni quantitative riguardanti gli eventi che accadono nella tua attività) sarà uguale al numero di giorni con acquisti. NON il numero di giorni che sono passati dall’apertura della tua attività.
  2. L’uso di comandi come IFNULL o ISNULL non avrà alcun effetto sulle righe mancanti (a meno che non si parta da un calendario aziendale e si unisca a sinistra i dati dei fatti). Questi hanno effetto solo sulle righe esistenti con valori NULL.

L’unico modo per aggirare queste limitazioni è quello di unire a sinistra la tua tabella dei fatti con una tabella contenente tutte le possibili date. In questo modo avrete una riga anche per i giorni senza transazioni.

Grazie per aver letto fin qui, spero che questo suggerimento sia stato utile. Se avete domande, pensieri o osservazioni sui valori NULL, sentitevi liberi di contattare me o uno dei nostri colleghi. Siamo sempre felici di discutere i vostri casi d’uso.

Potresti anche essere interessato agli argomenti

Cosa significa il valore NULL nel database?

I NULL rappresentano dati mancanti e sconosciuti. Tutti i database SQL supportano i valori nulli. Un campo che ha un valore nullo è diverso da un campo vuoto in un file ISAM. Null significa che il valore non è noto. … I valori nulli non partecipano alle ricerche negli indici.

Continua…

Qual è l’uso di NULL nel database?

I valori NULL sono usati per indicare che si potrebbe avere un valore, ma non si sa ancora quale dovrebbe essere. Sono dei segnaposto finché non si raccolgono finalmente i dati necessari per riempire il campo della tabella con un valore reale. Non dovreste mai confondere i valori NULL con zeri o stringhe vuote.

Continua…

Cosa significa che un valore è NULL?

Un valore NULL è un marcatore speciale usato in SQL per indicare che un valore di dati non esiste nel database. In altre parole, è solo un segnaposto per indicare valori che mancano o che non conosciamo.Jul 22, 2019

Continua…

Come viene memorizzato NULL nel database?

Memorizza un array di bit (uno per colonna) con i dati per ogni riga per indicare quali colonne sono nulle e poi lascia i dati per quel campo in bianco.Ott 31, 2008

Continua…

NULL è NULL in SQL?

L’espressione “NULL = NULL” si valuta come NULL, ma in realtà non è valida in SQL; tuttavia ORDER BY tratta i NULL come uguali (qualunque cosa preceda o segua valori “regolari” è lasciato al fornitore del DBMS). L’espressione “x IS NOT NULL” non è uguale a “NOT(x IS NULL)”, come avviene in 2VL.Feb 2, 2014

Continua…

Cos’è il valore nullo in SQL?

Il NULL in SQL è il termine usato per rappresentare un valore mancante. Un valore NULL in una tabella è un valore in un campo che appare vuoto. Un campo con un valore NULL è un campo senza valore. È molto importante capire che un valore NULL è diverso da un valore zero o da un campo che contiene spazi.

Continua…

Null è nullo in SQL?

L’espressione “NULL = NULL” si valuta come NULL, ma in realtà non è valida in SQL; tuttavia ORDER BY tratta i NULL come uguali (qualunque cosa preceda o segua valori “regolari” è lasciato al fornitore del DBMS). L’espressione “x IS NOT NULL” non è uguale a “NOT(x IS NULL)”, come avviene in 2VL.Feb 2, 2014

Continua…

Cos’è un valore nullo in SQL?

Un valore nullo in un database relazionale viene utilizzato quando il valore di una colonna è sconosciuto o mancante. Un null non è né una stringa vuota (per i tipi di dati a carattere o datetime) né un valore zero (per i tipi di dati numerici).Nov 2, 2021

Continua…

Quando si dovrebbe usare null?

Permettete null solo se ha senso che un riferimento ad un oggetto non abbia “nessun valore associato ad esso”. Non usare null per segnalare condizioni di errore. Il concetto di null esiste solo per i tipi di riferimento. Non esiste per i tipi di valore.Jun 12, 2018

Continua…

Cosa si intende per valore nullo nel mio SQL?

Il valore NULL significa “nessun dato”. NULL può essere scritto in qualsiasi lettera maiuscola. Siate consapevoli che il valore NULL è diverso da valori come 0 per i tipi numerici o la stringa vuota per i tipi di stringa.

Continua…

SQL è vuoto?

La condizione IS NULL è usata in SQL per verificare la presenza di un valore NULL. Restituisce TRUE se viene trovato un valore NULL, altrimenti restituisce FALSE. Può essere usata in un’istruzione SELECT, INSERT, UPDATE o DELETE.

Continua…

Cos’è l’esempio del valore NULL?

Un valore nullo indica la mancanza di un valore, che non è la stessa cosa di un valore pari a zero. Per esempio, considerate la domanda “Quanti libri possiede Adam?”. La risposta può essere “zero” (sappiamo che non ne possiede nessuno) o “nullo” (non sappiamo quanti ne possiede).

Continua…

COSA è il valore NULL in MySQL?

In MySQL, un valore NULL significa sconosciuto. Un valore NULL è diverso da zero ( 0 ) o da una stringa vuota ” . Un valore NULL non è uguale a nulla, nemmeno a se stesso.

Continua…

NULL è NULL in Oracle?

Oracle Database attualmente tratta un valore di carattere con una lunghezza pari a zero come nullo. … Qualsiasi espressione aritmetica contenente un null viene sempre valutata come null. Per esempio, null aggiunto a 10 è nullo. Infatti, tutti gli operatori (eccetto la concatenazione) restituiscono null quando viene dato un operando nullo.

Continua…

Null è uguale a zero?

Un carattere nullo è un byte che ha tutti i suoi bit impostati su 0. contesto puntatore – NULL è usato e significa che il valore del puntatore è 0, indipendentemente dal fatto che sia 32bit o 64bit (un caso 4 byte l’altro 8 byte di zeri).Aug 19, 2009

Continua…

Articolo precedente

Quali sono gli effetti collaterali del collirio dilatante?

Articolo successivo

Come posso aggiungere il mio coniuge al titolo della mia casa in California?

You might be interested in …

Dove si trova il dotto mulleriano?

La sindrome del dotto mulleriano persistente è un disturbo dello sviluppo sessuale che colpisce i maschi. I maschi con questo disturbo hanno normali organi riproduttivi maschili, anche se hanno anche un utero e le tube […]

Harry Richardson è australiano?

Avete mai guardato la serie televisiva storica britannica Poldark su BBC One? Se sì, avete familiarità con il nome Harry Richardson che ha interpretato il ruolo principale di Drake Carne dal 2017-2019. Harry Richardson è […]