La progettazione di database MySQL, tra cui, per l'ottimizzazione delle prestazioni dei dati, la considerazione dei tipi di campo è molto importante, raccolta di alcune informazioni, ordinata e condivisa; questo articolo riguarda l'introduzione della sintassi di mysql integer bigint, int, mediumint, smallint e tinyint, come segue:
1、bigint
Da -2^63 (-9223372036854775808) a 2^63-1 (9223372036854775807) dati interi (tutti numeri), l'intervallo senza segni va da 0 a
18446744073709551615。 Un bit è di 8 byte.
2、int
Un intero di dimensione normale. L'intervallo di segni è da -2^31 (-2.147.483.648) a 2^31 - 1 (2.147.483.647) dati interi (tutti numeri), e l'intervallo senza segni è da 0 a 4294967295. Un bit è grande 4 byte. Il sinonimo SQL-92 per int è intero.
3、Medium Int
Un intero di medie dimensioni con un intervallo con segno da -8388608 a 8388607 e un intervallo senza segno da 0 a 16777215. Un bit è di 3 byte.
4、smallint
Un intero piccolo. L'intervallo con segno è da -2^15 (-32.768) a 2^15 - 1 (32.767) dati interi, e l'intervallo senza segno è da 0 a 65535. Un bit è di 2 byte. MySQL offre funzionalità più che sufficienti e, poiché MySQL è software open source, può ridurre significativamente il costo totale di proprietà.
5、tinyint
L'intervallo di segni è -128 - 127, e l'intervallo non segnato è costituito da dati interi da 0 a 255. Un bit è grande 1 byte.
Nota che tutte le operazioni aritmetiche vengono eseguite con valori BIGINT o DOPPI firmati, quindi non dovresti usare numeri interi grandi con segnato maggiori di 9223372036854775807 (63 bit), tranne che per funzioni di bit! Nota che quando i due parametri sono valori INTERI,-、 + e * useranno l'operazione BIGINT! Questo significa che se moltiplichi per 2 numeri interi grandi (o da una funzione che restituisce un intero), puoi ottenere risultati inaspettati se il risultato è maggiore di 9223372036854775807. Un numero in virgola mobile non può essere non segnato; per un numero in virgola mobile a precisione singola, la sua precisione può essere <=24, per un numero in virgola mobile a doppia precisione è compreso tra 25 e 53; questi tipi come FLOAT e DOUBLE sono descritti di seguito. FLOAT(X) ha lo stesso intervallo di FLOAT e DOUBLE, ma la dimensione del display e il numero di decimali non sono definiti. In MySQL 3.23, questo è un vero valore in virgola mobile. Nelle versioni precedenti di MySQL, FLOAT(precision) aveva sempre 2 decimali. Questa sintassi è fornita per la compatibilità ODBC.
L'intervallo di valori di ogni tipo di dato in MySQL
TINYINT -128 - 127 TINYINT SENZA FIRMARE 0 - 255 SMALLINT -32768 - 32767 SMALLINT NON FIRMATO 0 - 65535 MEDIUMINT -8388608 - 8388607 MEDIA SENZA SEGNALAZIONE 0 - 16777215 INT o INTERO -2147483648 - 2147483647 INT UNSIGNED o INTEGER UNSIGNED 0 - 4294967295 BIGINT -9223372036854775808 - 9223372036854775807 BIGINT NON FIRMATO 0 - 18446744073709551615 CARRO ALLEGICO -3.402823466E+38 - -1.175494351E-38,0,1.175494351E-38 - 3.402823466E+38 DOPPIA o DOPPIA PRECISIONE o REALE -1.7976931348623157E+308 - -2.2250738585072014E-308,0,2.2250738585072014E-308 - 1.7976931348623157E+308 DECIMALE[(M,[D])] o NUMERICA(M,D) Determinato da M (la lunghezza dell'intero numero, incluso il punto decimale, il numero di cifre a sinistra del punto decimale, il numero di cifre a destra del punto decimale, ma non il segno negativo) e D (il numero di cifre a destra del punto decimale), M di default è 10 e D di default 0 DATA 1000-01-01 - 9999-12-31 DATA-ORA 1000-01-01 00:00:00 - 9999-12-31 23:59:59 TIMESTAMP 1970-01-01 00:00:00 - Un giorno nel 2037 (Non so esattamente quale giorno, hehe) ORE -838:59:59' a 838:59:59 ANNO[(2|4)] Il formato predefinito è a 4 bit, quello a 4 bit è 1901 - 2155.0000, e il formato a 2 bit è 70-69 (1970-2069) CHAR(M) [BINARIO] o NCHAR(M) [BINARIO] M varia da 1 a 255, e se non c'è un elemento BINARIO, è distinto dalla maiuscolo e minuscolo, e NCHAR significa usare il set di caratteri predefinito. Riempi con spazi nel database, ma quelli alla fine verranno automaticamente rimossi quando li rimuovi. [NAZIONALE] VARCHAR(M) [BINARIO] M varia da 1 a 255. Gli spazi alla fine del database verranno automaticamente rimossi. TINYBLOB o TINYTEXT 255 (2^8-1) caratteri BLOB o TESTO 65535 (2^16-1) caratteri MEDIUMBLOB o MEDIUMTEXT 16777215 (2^24-1) personaggi LONGBLOB o TESTO LUNGO 4294967295 (2^32-1) personaggi ENUM('value1','value2',...) Possono esserci in totale 65.535 valori diversi SET('value1','value2',...) Ci sono fino a 64 membri
|