Resumen: en este tutorial, aprenderá sobre el tipo de datos MySQL INT
o entero y cómo utilizarlo en el diseño de su tabla de base de datos. Además, le mostraremos cómo utilizar los atributos de ancho de visualización y ZEROFILL de una columna de tipo entero.
Introducción al tipo INT de MySQL
En MySQL, INT
representa el número entero que es un número entero. Un entero puede ser escrito sin un componente fraccionario, por ejemplo, 1, 100, 4, -10, y no puede ser 1.2, 5/3, etc. Un entero puede ser cero, positivo y negativo.
MySQL soporta todos los tipos enteros estándar de SQL INTEGER
o INT
y SMALLINT
. Además, MySQL proporciona TINYINT
MEDIUMINT
, y BIGINT
como extensiones del estándar SQL.
El tipo de datos INT
MySQL puede ser con y sin signo. La siguiente tabla ilustra las características de cada tipo de entero incluyendo el almacenamiento en bytes, el valor mínimo y el valor máximo.
Tipo | Almacenamiento | Valor mínimo | Valor máximo |
---|---|---|---|
(Bytes) | (Con/sin signo) | (Con/sin signo) | |
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32767 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | -9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
Ejemplos del tipo de datos INT de MySQL
Veamos algunos ejemplos de uso del tipo de datos entero.
A) Uso de MySQL INT para un ejemplo de columna
Debido a que el tipo integer representa números exactos, se suele utilizar como clave primaria de una tabla. Además, la columna INT
puede tener un atributo AUTO_INCREMENT
.
Cuando se inserta un valor NULL
o 0 en la columna INT AUTO_INCREMENT
, el valor de la columna se establece en el siguiente valor de secuencia. Observe que el valor de la secuencia comienza con 1.
Cuando usted inserta un valor, que no es NULL
o cero, en la columna AUTO_INCREMENT
, la columna acepta el valor. Además, la secuencia se restablece al siguiente valor del valor insertado.
Primero, cree una nueva tabla llamada items
con una columna de números enteros como clave primaria:
Code language: SQL (Structured Query Language) (sql)
Puede utilizar tanto INT
como INTEGER
en la sentencia CREATE TABLE
anterior porque son intercambiables. Cada vez que se inserta una nueva fila en la tabla items
, el valor de la columna item_id
se incrementa en 1.
A continuación, la siguiente sentencia INSERT
inserta tres filas en la tabla items
.
Code language: SQL (Structured Query Language) (sql)
A continuación, consulte los datos de la tabla items
utilizando la siguiente sentencia SELECT
:
Code language: SQL (Structured Query Language) (sql)
Después, inserte una nueva fila cuyo valor de la columna item_id
se especifica explícitamente.
Code language: SQL (Structured Query Language) (sql)
Como el valor actual de la columna item_id
es 10, la secuencia se restablece a 11. Si se inserta una nueva fila, la columna AUTO_INCREMENT
utilizará 11 como siguiente valor.
Code language: SQL (Structured Query Language) (sql)
Por último, consulte los datos de la tabla items
de nuevo para ver el resultado.
Code language: SQL (Structured Query Language) (sql)
Tenga en cuenta que a partir de MySQL 5.1, la columna AUTO_INCREMENT
sólo acepta valores positivos y no permite valores negativos.
B) Utilizando el ejemplo de MySQL INT UNSIGNED
Primero, cree una tabla llamada classes
que tenga la columna total_member
con el tipo de datos entero sin signo:
Code language: SQL (Structured Query Language) (sql)
Segundo, inserte una nueva fila en la tabla classes
:
Code language: SQL (Structured Query Language) (sql)
Ha funcionado como se esperaba.
Tercer intento de insertar un valor negativo en la columna total_member
:
Code language: SQL (Structured Query Language) (sql)
MySQL emitió el siguiente error:
Code language: SQL (Structured Query Language) (sql)
MySQL INT con el atributo de ancho de pantalla
MySQL proporciona una extensión que permite especificar el ancho de pantalla junto con el tipo de datos INT
. El ancho de visualización se envuelve dentro de paréntesis después de la palabra clave INT
por ejemplo, INT(5)
especifica un INT
con el ancho de visualización de cinco dígitos.
Es importante tener en cuenta que el atributo de ancho de visualización no controla los rangos de valores que la columna puede almacenar. El atributo de ancho de visualización es utilizado normalmente por las aplicaciones para formatear los valores enteros. MySQL incluye el atributo de ancho de visualización como los metadatos del conjunto de resultados devueltos.
MySQL INT con el atributo ZEROFILL
Además del atributo de ancho de visualización, MySQL proporciona un atributo no estándar ZEROFILL
. En este caso, MySQL sustituye los espacios por el cero. Considere el siguiente ejemplo.
Primero, cree una tabla llamada zerofill_tests
:
Code language: SQL (Structured Query Language) (sql)
Segundo, inserte una nueva fila en la tabla zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
Tercero, consulte los datos de la tabla zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
La columnav1
tiene un ancho de visualización 2 incluyendoZEROFILL.
Su valor es 1 por lo tanto, usted ve01
en la salida. MySQL reemplaza el primer espacio por 0.
La columna v2 tiene una visualización con 3 incluyendo ZEROFILL
. Su valor es 6 por lo tanto, se ve 00
como los ceros a la izquierda.
La columna v3 tiene la pantalla de ancho 5 con ZEROFILL
, mientras que su valor es 9, por lo tanto MySQL rellena 0000
al principio del número en la salida.
Tenga en cuenta que si utiliza el atributo ZEROFILL
para una columna de números enteros, MySQL añadirá automáticamente un atributo UNSIGNED
a la columna.
En este tutorial, ha aprendido a utilizar el tipo de datos INT
de MySQL para diseñar tablas de bases de datos.
- ¿Ha sido útil este tutorial?
- SíNo