Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119

    [MySQL] INT, TINYINT, SMALLINT...

    che differenza c'è tra INT, TINYINT e SMALLINT se io definisco la lunghezza?
    es. INT(3) è uguale a SMALLINT(3) ???

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    think simple think ringo

  3. #3
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    è 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

  4. #4
    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.

  5. #5
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119
    quindi se devo fare un campo int che può essere lungo fino a 5 è meglio uno SMALLINT?

  6. #6
    aarrrghh!!!!

    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
    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.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente bannato
    Registrato dal
    Apr 2003
    Messaggi
    1,119
    Originariamente inviato da piero.mac
    aarrrghh!!!!
    ok, ok calmati scusa
    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.