Pregunte a los expertos: ¿Cómo obtener el valor máximo de un tipo de datos en SQL?
Tome el tipo entero (int, smallin.tinyint.bigint) como ejemplo. El número de números escritos entre paréntesis es el espacio de almacenamiento para el número máximo de decimales 1. Además, compruebe si se admiten valores negativos.
Por ejemplo, Tinyint(4) uz es un valor entero de 8 bits que oscila entre 0 y 255.
El número máximo de tres dígitos es 999 1, por lo que 4 representa un número de tres dígitos y el número de tres dígitos es un byte, es decir, el entero uz de 8 bits (binario) no tiene signo. No se admiten valores negativos. Entonces es 0-255
Tinyint(4) es un entero de 8 bits con signo con un rango de valores de -127~127.
Smallint(6) El valor máximo de uz es 65535 y el valor mínimo es 0, que es un entero de 16 bits.
El valor máximo de int(11) es 2147483647 y el valor mínimo es -2147483647 10 dígitos (10 decimales), por lo que se escribe como 11 entre paréntesis.
int(11) El valor máximo de uz es 4294967295 y el valor mínimo es 0.
Por analogía, bigint (20) corresponde a un entero largo (64 bits de longitud) y tinyint (1) corresponde a 1 bit, es decir, 0 o 1 se utilizan para representar bool.
La enumeración Enum en realidad puede ser una forma de enumeración de enteros de 8, 16 y 32 bits. Lo extraño del drama americano de MySQL es si comienza con 1.
El conjunto puede ser en realidad un tipo de conjunto de 8 bits, 16 bits, 32 bits, 64 bits, etc. 64 elementos son 64 bits.
En cuanto a la cadena, en realidad es una matriz de caracteres. Si está codificada en UTF8, el número real de dígitos puede no ser igual. Si utf16 admite cadenas Notnull, cada carácter debe requerir 16 bits. Si UTF 16 admite valores NULL, la longitud admitida equivale a dos bytes menos o 16 bits menos.
Por ejemplo, varchar(16) notnull en realidad requiere entre 16 y 48 bytes de espacio de almacenamiento, y la codificación utf-8 es muy complicada.
La codificación está fijada en 32 bytes. Si hay muchos caracteres en inglés, se desperdiciará espacio. Todos los caracteres chinos ahorran espacio)
Si varchar(15) puede ser nulo, en realidad se requieren entre 16 y 48 bytes de espacio de almacenamiento.