Domanda banale, ma non voglio fare danni:
se cambio un campo da smallint (o mediumint) 9 a int(10) .... non perdo nulla vero?
e:
Stesso discorso per da tinyint(11) a int(10)???
Non perdo nulla?
Domanda banale, ma non voglio fare danni:
se cambio un campo da smallint (o mediumint) 9 a int(10) .... non perdo nulla vero?
e:
Stesso discorso per da tinyint(11) a int(10)???
Non perdo nulla?
se la dimensione dei campi e' maggiore non perdi nulla. Certo che serve parecchia fantasia per assegnare un tinyint = 11 digit per descrivere 1 byte.Originariamente inviato da Valeria75_bis
Domanda banale, ma non voglio fare danni:
se cambio un campo da smallint (o mediumint) 9 a int(10) .... non perdo nulla vero?
e:
Stesso discorso per da tinyint(11) a int(10)???
Non perdo nulla?
tanto per comoda memoria dalla guida di luca200 trovi scritto.
I dati di tipo TINYINT, SMALLINT, MEDIUMINT, INT e BIGINT rappresentano numeri interi composti rispettivamente da 1, 2, 3, 4 e 8 bytes.
Il TINYINT può contenere 256 valori, che vanno da -128 a +127 oppure da 0 a 255 nel caso di UNSIGNED. Allo stesso modo, SMALLINT può contenere 65536 valori, MEDIUMINT 16.777.216, INT oltre 4 miliardi, BIGINT circa 18 miliardi di miliardi.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Grazie per la risposta!!
Quindi anche in questo caso è OK?
da tinyint(11) a int(10)???
Posso senza problemi?
Grazie
il numerello tra parentesi indica il numero delle cifre da visualizzare e non la dimensione del campo perche' il campo ha dimensione fissa: tinyint = 1 byte, int = 4 byte.Originariamente inviato da Valeria75_bis
Grazie per la risposta!!
Quindi anche in questo caso è OK?
da tinyint(11) a int(10)???
Posso senza problemi?
Grazie
Quindi un numero intero di 1 byte ci sta parecchio comodo in un campo numerico di 4 byte
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Grazie per la risposta!!! Cosa intendi per "cifre da visualizzare"??
Quindi riserva 4byte e 11 cifre per l'intero??
Se l'intero avesse 12 cifre cosa succederebbe??
Pur avendo allocato 4byte avrei un errore?
Corretto?
i campi numerici non sono dimensionabili a piacere come un varchar tanto per semplificare.
Sono a dimensione prefissata come detto nel quote precedente.
La cifra che inserisci vale per il numero dei digit che sono da visualizzare nel caso, per esempio, tu impostassi il campo numerico con ZEROFILL, cioe' con una certa quantita' di zero davanti per avere, sempre per esempio, un numero di lunghezza visualizzata sempre identica (la lunghezza)
Se un campo TINYINT con capacita' 1 byte puo' visualizzare da -127 a +128 e quindi 4 digit nel caso di numero negativo fa un po' di tenerezza vedere un TINYINT(11) che e' il massimo che puo' visualizzare un INT che ha 4 byte. Ripeto ancora... la visualizzazione e' una cosa che nulla a che fare con la capacita' del campo. Se tu metti INT(3) e poi inserisci un numero di 6 cifre stai pur certa che non lo taglia ma lo inserisce tutto e lo visualizza tutto anche se tu hai messo INT(3)
per esempio il numero decimale 234567 equivale in un INT a
00000000 00000011 10010100 01000111 cioe' 4 byte.... sempre e solo 4 byte.
se l'intero superasse la capacita' massima andrebbe semplicamente in overflow ed il risultato sarebbe il riavvolgimento a zero del contatore. Vedi qui nel caso fosse INT:
claro???? Volgarmente si direbbe che taglia la cifra, in realta' andrebbe in overflow e per gestire il numero servirebbero 5 byte che INT non ha.codice:11111111 11111111 11111111 11111111 + 1 = ------------------------------------------- 1 00000000 00000000 00000000 00000000
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Grazie mille!!!