|
La progettazione di un database mysql, per il quale, ai fini dell'ottimizzazione delle prestazioni dei dati, le considerazioni sul tipo di campo sono molto importanti, ha raccolto alcune informazioni, raccolte e condivise, che riguardano la sintassi di mysql integer bigint, int, mediumint, smallint e tinyint, come segue: 1. bigint
Dati interi (tutti i numeri) da -2^63 (-9223372036854775808) a 2^63-1 (9223372036854775807), intervallo senza segno da 0 a
18446744073709551615. Un bit corrisponde a 8 byte.
2, int
Un numero intero di dimensioni normali. Dati interi firmati (tutti i numeri) nell'intervallo da -2^31 (-2.147.483.648) a 2^31 - 1 (2.147.483.647), senza segno nell'intervallo da 0 a 4294967295. Un bit corrisponde a 4 byte. Il sinonimo SQL-92 di int è integer.
3. mediumint
Un numero intero di medie dimensioni, con segno da -8388608 a 8388607, senza segno da 0 a 16777215. La dimensione di un bit è di 3 byte.
4, smallint
Un numero intero piccolo. L'intervallo firmato va da -2^15 (-32.768) a 2^15 - 1 (32.767) numeri interi, l'intervallo senza segno va da 0 a 65535. la dimensione di un bit è di 2 byte. le funzionalità fornite da MySQL sono più che adeguate e, poiché MySQL è un software open source, il costo totale di proprietà può essere notevolmente ridotto.
5. tinyint
L'intervallo firmato è compreso tra -128 e 127 e l'intervallo non firmato è compreso tra 0 e 255. La dimensione dei bit è di 1 byte.
Si noti che tutte le operazioni aritmetiche vengono eseguite con valori firmati BIGINT o DOUBLE, quindi non si dovrebbero usare numeri interi firmati di dimensioni superiori a 9223372036854775807 (63 bit), tranne che per le funzioni di bit! Si noti che -, + e * utilizzano operazioni BIGINT quando entrambi gli argomenti sono valori INTEGER! Ciò significa che se si moltiplicano 2 numeri interi di grandi dimensioni (o da una funzione che restituisce un numero intero), si possono ottenere risultati inaspettati se il risultato è maggiore di 9223372036854775807. Un numero in virgola mobile, che non può essere privo di segno, può avere una precisione <=24 per un numero in virgola mobile a singola precisione, e compresa tra 25 e 53 per un numero in virgola mobile a doppia precisione; questi tipi, come i tipi FLOAT e DOUBLE, sono descritti immediatamente di seguito.FLOAT(X) ha lo stesso intervallo dei corrispondenti FLOAT e DOUBLE, ma la dimensione di visualizzazione e il numero di cifre decimali sono indefiniti. In MySQL 3.23, si tratta di un vero valore in virgola mobile. Nelle versioni precedenti di MySQL, FLOAT(precision) ha sempre 2 cifre decimali. Questa sintassi è fornita per compatibilità con ODBC.
Intervalli di valore per ciascun tipo di dati in MySQL
TINYINT -128 - 127 TINYINT SENZA SEGNO 0 - 255 PICCOLO SMALLINT -32768 - 32767 SMALLINT SENZA SEGNO 0 - 65535 MEDIUMINT -8388608 - 8388607 MEDIUMINT SENZA SEGNO 0 - 16777215 INT o INTEGER -2147483648 - 2147483647 INT NON SIGNIFICATO o INTEGER NON SIGNIFICATO 0 - 4294967295 PUNTO GRANDE -9223372036854775808 - 9223372036854775807 BIGINT SENZA SEGNO 0 - 18446744073709551615 PIANO -3.402823466e+38 - -1.175494351e-38,0,1.175494351e-38 - 3.402823466e+38 DOPPIO o DOPPIA PRECISIONE o REALE -1.7976931348623157e+308 - -2.2250738585072014e-308,0,2.2250738585072014e-308 - 1.7976931348623157e+308 DECIMALE[(M,[D])] o NUMERICO(M,D) Determinato da M (la lunghezza del numero intero, incluso il punto decimale, il numero di cifre a sinistra del punto decimale, il numero di cifre a destra del punto decimale, ma non include il segno meno) e D (il numero di cifre a destra del punto decimale) per determinare il numero di cifre, M predefinito a 10, D predefinito a 0 DATA 1000-01-01 - 9999-12-31 DATA 1000-01-01 00:00:00 - 9999-12-31 23:59:59 TIMESTAMP 1970-01-01 00:00:00 - 2037 (non so esattamente che giorno sia, lol) TEMPO -838:59:59' a 838:59:59 ANNO[(2|4)] Predefinito è il formato a 4 bit, l'intervallo di formato a 4 bit è 1901 - 2155.0000, l'intervallo di formato a 2 bit è 70-69(1970-2069). CHAR(M) [BINARY] o NCHAR(M) [BINARY] L'intervallo di M è 1 - 255, se non c'è una voce BINARY, è insensibile alle maiuscole e minuscole, NCHAR significa che viene utilizzato il set di caratteri predefinito. Nel database con un complemento di spazio, ma nel recupero della fine dello spazio verrà automaticamente rimosso. [NAZIONALE] VARCHAR(M) [BINARIO] L'intervallo di M è 1 - 255. Lo spazio finale verrà rimosso automaticamente nel database. TINYBLOB o TINYTEXT 255 (2^8-1) caratteri. BLOB o TESTO 65535(2^16-1) caratteri BLOB MEDIO o TESTO MEDIO 16777215 (2^24-1) caratteri LONGBLOB o TESTO LUNGO 4294967295 (2^32-1) caratteri ENUM('valore1','valore2',...) Ci possono essere un totale di 65535 valori diversi SET('valore1','valore2',...) Fino a 64 membri |
Articolo precedente: Interruzione di riga PHP PHP_EOLArticolo successivo: linux update comando yum update
|