Vous êtes sur la page 1sur 4

Atributo default en una columna de una tabla.

Si al insertar registros no se especifica un valor para un campo, se inserta su


valor por defecto implcito segn el tipo de dato del campo. Por ejemplo:
insert into libros (titulo,autor,editorial,precio,cantidad)
values('Java en 10 minutos','Juan Pereyra','Paidos',25.7,100);
Como no ingresamos valor para el campo "codigo", MySQL insertar el valor
por defecto, como "codigo" es un campo "auto_increment", el valor por defecto
es el siguiente de la secuencia.
Si omitimos el valor correspondiente al autor:
insert into libros (titulo,editorial,precio,cantidad)
values('Java en 10 minutos','Paidos',25.7,200);
MySQL insertar "null", porque el valor por defecto de un campo (de cualquier
tipo) que acepta valores nulos, es "null".
Lo mismo sucede si no ingresamos el valor del precio:
insert into libros (titulo,autor,editorial,cantidad)
values('Java en 10 minutos','Juan Pereyra',Paidos',150);
MySQL insertar el valor "null" porque el valor por defecto de un campo (de
cualquier tipo) que acepta valores nulos, es "null".
Si omitimos el valor correspondiente al ttulo:
insert into libros (autor,editorial,precio,cantidad)
values ('Borges','Paidos',25.7,200);
MySQL guardar una cadena vaca, ya que ste es el valor por defecto de un
campo de tipo cadena definido como "not null" (no acepta valores nulos).
Si omitimos el valor correspondiente a la cantidad:
insert into libros (titulo,autor,editorial,precio)
values('Alicia a traves del espejo','Lewis Carroll','Emece',34.5);
el valor que se almacenar ser 0, porque el campo "precio" es de tipo
numrico "not null" y el valor por defecto de los tipos numricos que no
aceptan valores nulos es 0.

Podemos establecer valores por defecto para los campos cuando creamos la
tabla. Para ello utilizamos "default" al definir el campo. Por ejemplo, queremos
que el valor por defecto del campo "precio" sea 1.11 y el valor por defecto del
campo "autor" sea "Desconocido":
create table libros(
codigo int unsigned auto_increment,
titulo varchar(40) not null,
autor varchar(30) default 'Desconocido',
precio decimal(5,2) unsigned default 1.11,
cantidad int unsigned not null,
primary key (codigo)
);
Si al ingresar un nuevo registro omitimos los valores para el campo "autor" y
"precio", MySQL insertar los valores por defecto definidos con la palabra clave
"default":
insert into libros (titulo,editorial,cantidad)
values('Java en 10 minutos','Paidos',200);
MySQL insertar el registro con el siguiente valor de la secuencia en "codigo",
con el ttulo, editorial y cantidad ingresados, en "autor" colocar "Desconocido"
y en precio "1.11".
Entonces, si al definir el campo explicitamos un valor mediante la clusula
"default", se ser el valor por defecto; sino insertar el valor por defecto
implcito segn el tipo de dato del campo.
Los campos definidos "auto_increment" no pueden explicitar un valor con
"default", tampoco los de tipo "blob" y "text".
Los valores por defecto implcitos son los siguientes:
-para campos de cualquier tipo que admiten valores nulos, el valor por defecto
"null";
-para campos que no admiten valores nulos, es decir, definidos "not null", el
valor por defecto depende del tipo de dato:
-para campos numricos no declarados "auto_increment": 0;

-para campos numricos definidos "auto_increment": el valor siguiente de la


secuencia, comenzando en 1;
-para los tipos cadena: cadena vaca.
Ahora al visualizar la estructura de la tabla con "describe" podemos entender
un poco ms lo que informa cada columna:
describe libros;
"Field" contiene el nombre del campo; "Type", el tipo de dato; "NULL" indica si
el campo admite valores nulos; "Key" indica si el campo est indexado (lo
veremos ms adelante); "Default" muestra el valor por defecto del campo y
"Extra" muestra informacin adicional respecto al campo, por ejemplo, aqu
indica que "codigo" est definido "auto_increment".
Tambin se puede utilizar "default" para dar el valor por defecto a los campos
en sentencias "insert", por ejemplo:
insert into libros (titulo,autor,precio,cantidad)
values ('El gato con botas',default,default,100);

Atributo zerofill en una columna de una tabla.


Cualquier campo numrico puede tener otro atributo extra "zerofill".
"zerofill" rellena con ceros los espacios disponibles a la izquierda.
Por ejemplo, creamos la tabla "libros", definiendo los campos "codigo" y
"cantidad" con el atributo "zerofill":
create table libros(
codigo int(6) zerofill auto_increment,
titulo varchar(40)
autor varchar(30),
editorial varchar(15),
precio decimal(5.2) unsigned,
cantidad smallint zerofill,
primary key (codigo)
);

Note que especificamos el tamao del tipo "int" entre parntesis para que
muestre por la izquierda ceros, cuando los valores son inferiores al indicado;
dicho parmetro no restringe el rango de valores que se pueden almacenar ni
el nmero de digitos.
Al ingresar un valor de cdigo con menos cifras que las especificadas (6),
aparecern ceros a la izquierda rellenando los espacios; por ejemplo, si
ingresamos "33", aparecer "000033". Al ingresar un valor para el campo
"cantidad", suceder lo mismo.
Si especificamos "zerofill" a un campo numrico, se coloca automticamente el
atributo "unsigned".
Cualquier valor negativo ingresado en un campo definido "zerofill" es un valor
invlido.

Vous aimerez peut-être aussi