4 - Tipos de datos básicos


Problema:

Vamos a crear una tabla llamada "libros". En primer lugar vamos a eliminar la tabla "libros" averiguando si existe:

 if object_id('libros') is not null
  drop table libros;

Para almacenar información de los libros de una librería necesitamos los siguientes campos:

 -titulo, cadena de caracteres de 20 de longitud,
 -autor, cadena de caracteres de 15 de longitud,
 -editorial, caracteres de 10 de longitud,
 -precio, valor numérico con decimales y
 -cantidad, valor numérico entero.

Al crear la tabla, entonces, elegimos el tipo de dato más adecuado para cada campo:

 create table libros(
  titulo varchar(20),
  autor varchar(15),
  editorial varchar(10),
  precio float,
  cantidad integer
 );

Note que al especificar el tipo de dato de los campos numéricos, no colocamos entre paréntesis la longitud.

Vemos la estructura de la tabla:

 sp_columns libros;

Aparece la siguiente información:

...COLUMN_NAME	TYPE_NAME	LENGHT
_______________________________________
   titulo	varchar		20
   autor	varchar		15
   editorial	varchar		10
   precio	float		8
   cantidad	int		4

Ingresamos algunos registros:

 insert into libros (titulo,autor,editorial,precio,cantidad)
  values ('El aleph','Borges','Emece',25.50,100);
 insert into libros (titulo,autor,editorial,precio,cantidad)
  values ('Matematica estas ahi','Paenza','Siglo XXI',18.8,200);

Note que al ingresar valores numéricos (float e integer) no se utilizan comillas y para el separador de decimales se usa el caracter punto(.).

Veamos los registros cargados:

 select * from libros;

Veamos lo que sucede si intentamos ingresar para el campo "titulo" una cadena de más de 20 caracteres:

 
 insert into libros (titulo,autor,editorial,precio,cantidad)
  values ('Alicia en el pais de las maravillas','Lewis Carroll','Atlantida',10,200);

aparece un mensaje de error y la sentencia no se ejecuta.

vamos a cortar la cadena para que SQL Server acepte el ingreso del registro:

 
 insert into libros (titulo,autor,editorial,precio,cantidad)
  values ('Alicia en el pais','Lewis Carroll','Atlantida',10,200);

Veamos los registros cargados:

 select * from libros;



Retornar