smallint significa que longitud example mysql

significa - tinyint mysql example



¿Cuál es la diferencia en int(11) e int(11) UNSIGNED? (8)

Creo que es posible que desee saber la diferencia entre int e int (10).

Vamos a dar un ejemplo para int (10) uno con la palabra clave zerofill, uno no, la tabla le gusta eso:

create table tb_test_int_type( int_10 int(10), int_10_with_zf int(10) zerofill, unit int unsigned );

Vamos a insertar algunos datos:

insert into tb_test_int_type(int_10, int_10_with_zf, unit) values (123456, 123456,3147483647), (123456, 4294967291,3147483647) ;

Entonces

select * from tb_test_int_type; # int_10, int_10_with_zf, unit ''123456'', ''0000123456'', ''3147483647'' ''123456'', ''4294967291'', ''3147483647''

Podemos ver eso

  • con la palabra clave zerofill , num menos de 10 llenará 0, pero sin zerofill no lo hará

  • En segundo lugar, con la palabra clave zerofill , int_10_with_zf pasa a ser unsigned int type, si inserta un signo menos, obtendrá el error Out of range value for column..... Pero puedes insertar menos en int_10. Además, si inserta 4294967291 en int_10 obtendrá el error Out of range value for column.....

Conclusión:

  1. int (X) sin la palabra clave zerofill , es igual al rango int -2147483648 ~ 2147483647

  2. int (X) con la palabra clave zerofill , el campo es igual al rango int sin signo 0 ~ 4294967295, si la longitud de num es menor que X, llenará 0 a la izquierda

¿Cuál es la diferencia en int(11) e int(11) UNSIGNED ?


El que no tiene firma no puede contener números negativos.


INT va de -2147483648 a +2147483647
INT NO FIRMADO va de 0 a 4294967295

el 11 entre llaves no tiene efecto en el número, solo cómo se muestra.


Todos los tipos de enteros pueden tener un atributo opcional (no estándar) UNSIGNED. El tipo sin firmar se puede usar para permitir solo números no negativos en una columna o cuando se necesita un rango numérico superior más grande para la columna. Por ejemplo, si una columna INT está DESIGNADA, el tamaño del rango de la columna es el mismo, pero sus puntos finales cambian de -2147483648 y 2147483647 hasta 0 y 4294967295.

mira aquí: documentation


UNSIGNED significa que solo puede contener valores no negativos, es decir, no puede contener, por ejemplo, -20


Un entero sin signo puede manejar valores de 0 a 2 ^ (tamaño en bits del campo entero). Un entero con signo puede manejar valores de -2 ^ (tamaño del campo entero-1) a 2 ^ (tamaño del campo entero-1) -1.


Un tipo UNSIGNED no puede ser negativo, pero por otro lado tiene el doble de rango para los enteros positivos. Los tipos TINYINT, SMALLINT, MEDIUMINT, INT y BIGINT tienen versiones firmadas y sin firmar.

Para INT, los rangos se definen de la siguiente manera:

Type Storage Min Max INT 4 -2147483648 2147483647 INT UNSIGNED 4 0 4294967295

Los tipos con signo y sin signo toman el mismo espacio de almacenamiento (4 bytes para INT).

Ver la documentation para más detalles.


UNSIGNED es exactamente eso, son todos números positivos (sin signo). El tamaño de los bytes es el mismo, pero si sus datos nunca son negativos, puede obtener números positivos más grandes. El 11 es el valor predeterminado de cuántos caracteres obtendrá y mostrará. Para el tamaño exacto, haga una búsqueda del DBMS que está usando y el tipo.