INT (5) vs SMALLINT (5): números entre paréntesis después del tipo numérico


29

En las definiciones de tabla de MySQL, ¿hay alguna diferencia entre INT(5)y SMALLINT(5)? ¿O ambos representan el mismo tamaño?

Respuestas:


41

An inty a smallinttienen diferentes tamaños y consecuentemente rangos. El (5)es smallint(5)o int(5)se llama "Atributo de tipo numérico" y representa el "ancho de visualización" del campo,

MySQL admite una extensión para especificar opcionalmente el ancho de visualización de los tipos de datos enteros entre paréntesis después de la palabra clave base para el tipo. Por ejemplo, INT(4)especifica un INTcon un ancho de visualización de cuatro dígitos. Las aplicaciones pueden usar este ancho de visualización opcional para mostrar valores enteros que tengan un ancho menor que el ancho especificado para la columna al rellenarlos con espacios a la izquierda. (Es decir, este ancho está presente en los metadatos devueltos con los conjuntos de resultados. Si se usa o no, depende de la aplicación).

Cuando se usa junto con el atributo opcional (no estándar) ZEROFILL, el relleno predeterminado de espacios se reemplaza con ceros. Por ejemplo, para una columna declarada como INT(4) ZEROFILL, un valor de 5se recupera como 0005.

Esta es una "extensión" de MySQL, y zerofill es una "extensión" en una extensión.

Para el método sensato de controlar la visualización de un tipo numérico, no use Atributos de tipo numérico y en su lugar use

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.