che differenza c'è tra INT, TINYINT e SMALLINT se io definisco la lunghezza?
es. INT(3) è uguale a SMALLINT(3) ???![]()
![]()
che differenza c'è tra INT, TINYINT e SMALLINT se io definisco la lunghezza?
es. INT(3) è uguale a SMALLINT(3) ???![]()
![]()
think simple think ringo
è uguale
la dimesione dei tipi interi non è obbligatoria, si presume ad es. che quando dichiari un campo int senza specificare la dimensione, quel campo assuma come dimensione 10, così per tutti gli altri tipi numerici. Quando specifichi la dimensione invece il nome del tipo non ha più molta importanza
tutto questo sempre nei tipi numerici
nei tipi stringa cmq c'è un comportamento analogo, se specifichi un campo char una lunghezza superiore a 255 diventa text
meglio una precisazione.....![]()
I campi NUMERICI hanno una dimensione prefissata. L'indicazione numerica abbinata es.: INT(8) si riferisce al numero dei digit da visualizzare e non alla dimensione del campo.
L'occupazione in memoria non varia ed e' la seguente:
TINYINT - 1 Byte
SMALLINT - 2 BYTE
MEDIUMINT - 3 BYTE
INT - 4 BYTE
BIGINT - 8 BYTE
FLOAT(M,D) - 4 BYTE
DOUBLE(M,D) - 8 BYTE
DECIMAL(M,D) - Valore di M + 2 byte.
I campi char / varchar (fino a 255 byte) hanno la seguente caratteristica:
CHAR N. dei byte dichiarati con occupazione fissa con riempimento di spazi per lo spazio eventualmente non impegnato.
VARCHAR N. dei byte occupati + 1 con occupazione dinamica fino al max 256 o al numero dei byte dichiarati.
Ma.... MySQL non e' in grado di gestire campi char e varchar contemporaneamente nella stessa tabella, per cui se in una tabella ha un campo dichiarato di tipo dinamico, eventuali campi CHAR presenti vengono cambiati in campi VARCHR, in modo silento, cioe' senza avvviso.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
quindi se devo fare un campo int che può essere lungo fino a 5 è meglio uno SMALLINT?
aarrrghh!!!!
Credo bastino..... Non si tratta di digit, ma di valori. Ora se tu devi rappresentare un n. fino a 99.999 dovresti utilizzare un campo MEDIUMINT(5) occupando sempre 3 byte in memoria.codice:nome del campo intervallo valori senza segno algebrico(UNSIGNED) TINYINT DA -128 A 127 0 - 255 SMALLINT -32768 A 32767 0 - 65.535 MEDIUMINT -8388608 A 8388607 0 - 16.777.215 INT -2147483648 0 - 4.294.967.295 A 2147483647
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
ok, ok calmati scusaOriginariamente inviato da piero.mac
aarrrghh!!!!![]()
grazie mille
![]()