Listado completo de tutoriales
15 - Valores numéricos sin signo (unsigned) |
Hemos visto algunos atributos extra para los campos.
Los campos de tipo entero pueden tener el atributo "auto_increment", que incrementa automáticamente el valor del campo en 1.>
Los campos de cualquier tipo aceptan el atributo "null" y "not null" con lo cual permiten o no valores nulos.>
Otro atributo que permiten los campos de tipo numérico es "unsigned".>
El atributo "unsigned" (sin signo) permite sólo valores positivos.>
Si necesitamos almacenar edades, por ejemplo, nunca guardaremos valores negativos, entonces sería adecuado definir un campo "edad" de tipo entero sin signo:
edad integer unsigned;
En los tipos enteros, "unsigned" duplica el rango, es decir, el tipo "integer" permite valores de -2000000000 a 2000000000 aprox., si se define "integer unsigned" el rango va de 0 a 4000000000 aprox.
Los tipos de coma flotante (float por ejemplo) también aceptan el atributo "unsigned" en las versiones previas de MySQL, pero a partir de la versión 8 se desaconseja su uso y en futuras versiones se va a ignorar el modificador unsigned.
Si agregamos el modificador a un tipo float el valor del límite superior del rango se mantiene.
Luego veremos que hay otro métodos para restringir el ingreso de valores positivos a un campo de tipo float que no se agregar el modificador unsigned.
Desde el programa "Workbench" ejecutemos estos comandos SQL:
drop table if exists libros; create table libros( codigo integer unsigned auto_increment, titulo varchar(20) not null, autor varchar(30), editorial varchar(15), precio float unsigned, cantidad integer unsigned, primary key (codigo) ); describe libros;
Que nos generan una salida similar a esta: