Newsgroup: it.comp.software.database
Titolo: null

è consigliabile l'utilizzo di "null" o di "0" e "" ?
Grazie

 Grazie
0   e' un valore numerico.
     Esempio: il mio conto corrente e' a 0.
     Significa che ho un conto corrente, ma ho finito i soldi.
"" e' un valore testuale.
    Esempio: Il commento al mio conto e' "".
    Significa che ho un commento, ma che ho cancellato tutte le lettere
    che ci avevo scritto.
NULL e' l'assenza di valori.
    Esempio: la mia stampante e' NULL.
    Significa che NON HO una stampante .
Una parabola laica:
Molti anni fa, quando l'anno 2000 sembrava lontanissimo, molti 
programmatori usavano il valore 9/9/99 per indicare una data 
impossibile, e cioe', nella loro visione, nulla.
Si capisce facilmente che tutte quelle applicazioni, all'approssimarsi 
del 9 settembre 1999 hanno mostrato i loro limiti.
Se i programmatori avessero usato un valore NULL, invece, le migliaia di 
ore spese a correggere le applicazioni sballate sarebbero state risparmiate.
Capita la differenza?
Ciao
gmax
-- 
   ____ ____  _____ _   _
  / _  |    \(____ ( \ / )
( (_| | | | / ___ |) X (
  \___ |_|_|_\_____(_/ \_)
(_____|
Sapere, saper fare, fare, far sapere
http://gmax.oltrelinux.com

 Capita la differenza?
non credo sia questo il motivo che spinge ad utilizzare null.
io utilizzando 1900-01-01 non ho mai avuto problemi.
poi ho provato ad utilizzare il null ovunque non ci fossero valori..
e vai di errori e di casini... il null va gestito.. nelle query va scritto
letteralmente "null", i controlli per la data non accettano null come
input...
problemi su problemi.
per questo mi stavo chiedendo: è effettivamente utile? c'è qualche
ottimizzazione sotto?
con 1900-01-01 non mi trovavo male per quanto riguarda le date. mentre per i
valori numerici e testuali "0" e "" non saranno "assenza di valore" ma son
sempre campi azzerati.

     Significa che NON HO una stampante .
Oppure che hai una stampante ma che non si conosce il modello.
Oppure che non si sa se tu abbia una stampante.
Ricordiamo che il NULL è trino e divino e significa tre cose con una.
Nelle religioni questo significa grandezza e spiritualità, nelle scienze
questo significa guai.

 sempre campi azzerati.
Fai come vuoi. Io ti ho detto la mia, che viene da 16 anni di uso dei 
database.


 database.
ti ringrazio della risposta.
penso che continuerò ad utilizzare Null allora.
anche se a volte mi fa impazzire :-S

 (o sto sbagliando io qualcosa?)
Ciao Utopian,
Se vuoi confrontare il contenuto di un campo con il valore NULL, devi stare
attento all'opzione SET ANSI_NULLS per la connessione in uso.
I BOL dicono: "When SET ANSI_NULLS is ON, a comparison in which one or more
of the expressions is NULL does not yield either TRUE or FALSE; it yields
UNKNOWN. This is because a value that is unknown cannot be compared
logically against any other value. This occurs if either an expression is
compared to the literal NULL, or if two expressions are compared and one of
them evaluates to NULL".
Di default il SQL Server ODBC driver ed il Microsoft OLE DB Provider for SQL
Server settano a ON questa opzione (per es. apri il Query Analyzer e fai
click su Tools, Options... Connection properties vedrai che la check box SET
ANSI_NULLS è selezionata).
E' consigliabile utilizzare la clausola IS NULL per confrontare
un'espressione con il valore NULL..
...
WHERE laData IS NULL
Per maggiori informazioni, leggi il paragrafo "NULL Comparison Search
Conditions" sui Books Online:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_ts_1cdv.asp
Ciao!
-- 
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org

 Grazie
Usa NULL ogni volta che devi segnalare l'inesistenza e/o la mancanza
dell'informazione.
Cerca di usare sempre, tra quelli che hai a disposizione, gli strumenti  piů
adatti a risolvere un problema.

 Conditions"
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8
_qd_06_7xir.asp
grazie ;-)
in pratica se voglio confrontare un null con un segno di uguaglianza e il
termine null devo impostare ANSI_NULLS su ON
...
mi sa che continuo con "Is Null" e "Is Not Null" (anche se i miei dubbi son
partiti da li).
ringrazio tutti per le risposte

 ringrazio tutti per le risposte
Prego.


 Grazie
Esiste una diatriba tra i sostenitori del NULL e chi invece ne
evidenzia i limiti. Maggiori info quì:
http://www.firstsql.com/inulls.htm
ciao