Monday, April 9, 2012

Cómo implementar una base De datos: 3er paso

Una vez creada la base de datos, las tablas, es hora de poblarla. Tercer paso: INSERT INTO.

A la hora de realizar un INSERT INTO podemos hacerlos de 3 maneras.

Considérese la siguiente tabla para los ejemplos:

CREATE TABLE persona(
 id int identity(1,1) primary key,
 nombre varchar(20) not null,
 ap_paterno varchar(20) not null,
 ap_materno varchar(20) null,
 fec_nac datetime null,
 direccion varchar(30) not null
)

1. Sin especificar las columnas a insertar (por defecto, todas).

INSERT INTO persona VALUES ('lizzy', 'mendivil', null, null, 'california st #159')

Cuando no especificamos las columnas, éstas deben coincidir con el tipo de datos y la cantidad de columnas que tiene nuestra tabla. Resulta en desventaja ya que si existen valores nulos posibles, éstos debemos registrarlo también llenándolo con "null" (tal como se muestra en el ejemplo) y además si nos equivocamos y no hacemos coincidir con el tipo de datos, la ejecución de la sentencia resultará en error.

Otra desventaja es que dejamos que el compilador trabaje más analizando que los valores y las columnas correspondan.

2. Especificando las columnas a insertar.

INSERT INTO persona (nombre, ap_paterno, direccion) VALUES ('benjamin', 'villarroel', 'florida st #748')

Nótese que después de escribir el nombre de la tabla, entre paréntesis espcificamos las columnas que vamos a insertar con los valores.

3. A partir de un SELECT.

INSERT INTO persona (nombre, ap_paterno, direccion) SELECT nombre, ap_paterno, direccion FROM cliente

Solo debemos asegurarnos que el tipo de datos de la tabla de la cual queremos extraer los datos coincida con el tipo de datos de las columnas de la tabla a la cual queremos insertar los valores. El tipo de datos y el número de columnas.

Nótese que se reemplaza la palabra clave VALUES con la instrucción SELECT.

Nota.- Cuando realizamos un INSERT a una tabla la cual contiene referencia a otra (FOREIGN KEY), debemos asegurarnos que el valor de esa columna PRIMERO exista en la tabla a la cual pertenece, esto es la Integridad de Datos.

No comments:

Post a Comment