Documente Academic
Documente Profesional
Documente Cultură
Problema:
Creamos la tabla especificando que los campos "titulo" y "autor" no admitan valores nulos:
create table libros(
titulo varchar(30) not null,
autor varchar(30) not null,
editorial varchar(15) null,
precio float
);
Los campos "editorial" y "precio" si permiten valores nulos; el primero, porque lo especificamos colocando "null" en la definición del campo, el segundo lo asume
por defecto.
Recuerde que el valor "null" no es una cadena de caracteres, por lo tanto no se coloca entre comillas.
Ingresamos otro registro, con valor nulo para el campo "editorial", campo que admite valores "null":
insert into libros (titulo,autor,editorial,precio)
values('Alicia en el pais','Lewis Carroll',null,0);
Veamos lo que sucede si intentamos ingresar el valor "null" en campos que no lo admiten, como "titulo":
Para ver cuáles campos admiten valores nulos y cuáles no, empleamos el procedimiento almacenado "sp_columns":
sp_columns libros;
nos muestra muchas columnas, una de ellas tiene el encabezado "IS_NULLABLE", vemos que aparece "NO" en los campos que no permiten valores nulos y "YES"
en los campos que si los permiten.
Dijimos que el valor "null" no es lo mismo que una cadena vacía. Vamos a ingresar un registro con cadena vacía para el campo "editorial":
insert into libros (titulo,autor,editorial,precio)
values('Uno','Richard Bach','',18.50);
Ingresamos otro registro, ahora cargamos una cadena vacía en el campo "titulo":
insert into libros (titulo,autor,editorial,precio)
values('','Richard Bach','Planeta',22);
Con la primera sentencia veremos los libros cuyo precio es igual a "null" (desconocido); con la segunda, los libros cuyo precio es 0.
Ahora veamos los libros cuya editorial almacena una cadena vacía:
select *from libros
where editorial='';
sp_columns libros;