Lavorare con valori NULL in SQL Server

Non possiamo prevedere i valori per la maggior parte dei futuri punti di dati mentre si lavora con i sistemi di database. Ad esempio, le tabelle utilizzate per le informazioni sui clienti hanno spesso una colonna del numero di cellulare. È possibile che un cliente non contenga un numero di cellulare o, per motivi di privacy, non voglia condividere il suo numero di cellulare. In questi casi, possiamo usare valori NULL per indicare i futuri punti dati incerti.

Cos'è NULL?

NULL è una parola chiave che significa che non esiste alcun valore.

Considerando i valori NULL durante la progettazione di tabelle

Abbiamo bisogno di determinare quali campi stanno per consentire i valori NULL. Durante la progettazione di tabelle, dobbiamo considerare quali campi sono obbligatori o obbligatori da compilare dall'utente e quali campi non sono obbligatori. Sulla base di questo, possiamo decidere se consentire i valori NULL.

CREATE TABLE Customer (Customer_id INT PRIMARY KEY, FirstName VARCHAR (50) NOT NULL, LastName VARCHAR (50) NOT NULL, MobileNo VARCHAR (15) NULL);

Abbiamo progettato una tabella, Cliente, in cui è richiesto ogni campo (NOT NULL), ad eccezione del campo MobileNo che consente i valori NULL.

Nota: i vincoli della chiave primaria sono sempre NOT NULL, quindi non è necessario specificarlo esplicitamente.

NOT NULL indica che un valore è obbligatorio (da fornire). NULL indica che il valore non è obbligatorio.

Inserimento di valori NULL

Stiamo utilizzando NULL per il numero di cellulare in Caso 2 perché non abbiamo un numero di cellulare per CustomerId = 2 al momento. Assicurati di non mettere le virgolette singole su NULL poiché verrà considerato come una stringa in cui NULL è una parola chiave speciale.

Caso 1: abbiamo un MobileNo valido.

Inserisci in dbo.Customer (Customer_id, FirstName, LastName, MobileNo) Valori (1, 'Hen', 'Kaz', 9833844);

Caso 2: non abbiamo un MobileNo e, quindi, lo stiamo inserendo come NULL.

Inserisci in dbo.Customer (Customer_id, FirstName, LastName, MobileNo) valori (2, 'Rec', 'John', NULL);

Interrogare i NULL

L'interrogazione dei valori NULL in SQL è diversa dall'esecuzione di query sui dati normali poiché non è possibile eseguire una query per la stringa letterale "NULL" o cercare un valore uguale a NULL.

Caso 1: query errata

SELEZIONA * DAL CLIENTE DOVE MobileNo = NULL

Caso 2: query errata

SELEZIONA * DAL CLIENTE DOVE IL cellulareNo piace "NULL"

Caso 3: Query valida per trovare MobileNos con valore NULL

SELEZIONA * DAL CLIENTE DOVE IL cellulare NON È NULL

Caso 4: Query valida per trovare MobileNos che non ha un valore NULL

SELEZIONA * DAL CLIENTE DOVE IL cellulare NON È NULL

Aggiornamento NULLS

Ora, abbiamo ricevuto il numero di cellulare per id cliente = 2, che in precedenza era NULL.
Cerchiamo di aggiornare il numero di cellulare per ID cliente = 2, dove il numero di cellulare è ora NULL.

--Per ID cliente 2 di cui MobileNo è ora SELEZIONA NULL * DAL CLIENTE DOVE IL cellulare NON È NULL E Customer_id = 2 - Aggiornamento MobileNo UPDATE CUSTOMER SET MobileNo = 91244 DOVE MobileNo È NULL E Customer_id = 2 --Vedere le modifiche SELEZIONA * DA CLIENTE WHERE Customer_id = 2 - Impostare di nuovo MobileNo su NULL di nuovo per includerlo in delete NULL UPDATE CUSTOMER SET MobileNo = NULL WHERE Customer_id = 2 SELEZIONARE * DA CLIENTE DOVE MobileNo È NULL E Customer_id = 2

Eliminazione di valori NULL

Quando si aggiornano NULL, si consiglia di aggiornare MobileNo per ID cliente = 2 nuovamente su NULL.

Utilizzare quanto segue per eliminare le righe con valori NULL:

Elimina dal Cliente dove MobileNo È NULL