You are on page 1of 9

Inserción de Datos

Inserción de Datos

Poniéndonos en Contexto

Durante la semana pasada creamos una pequeña estructura de


una base de datos, en donde se definieron algunas tablas y sus
relaciones a través de claves primarias y foráneas.
En este pequeño recurso veremos la inclusión de registros a las
mismas, a través de la sentencia INSERT.

Sentencia Insert

Básicamente, la sintaxis del Insert es la siguiente:

INSERT INTO NombreTabla


[(Columna1, Columna2, Columna3 …)]
VALUES [(Valor1, Valor2, Valor3, …)]
Por ejemplo, si desea incluir un registro en la Tabla
GrupoRomulo, cuyo Id sea 0001 y su nombre sea Grupo
Corporativo 1, escribimos lo siguiente:

INSERT INTO GrupoRomulo


(IdGrupo, NomGrupo)
VALUES ('0001', 'Grupo Corporativo 1');
Con lo que ya tenemos el registro en la tabla

Nota: Pruebe esta instrucción pero haciendo uso de sus tablas


creadas durante la semana pasada, y de esta manera, tendrá
información en cada una de sus tablas.

Gerencia virtual 2
Inserción de Datos

Existe una manera más “eficiente” de hacer un INSERT. En este


sentido, usamos la palabra eficiente puesto que se escribe mucho
menos. En efecto, si se tienen los valores de todos los campos de la
tabla no es necesario escribir los nombres de las columnas; tan solo
se escriben los valores (en el orden exacto que corresponde).

Con base a ello, vamos a añadir a la tabla el Grupo


Corporativo 2, cuyo Id es 0002.

INSERT INTO GrupoRomulo


VALUES ('0002', 'Grupo Corporativo 2');

De esta manera se tiene el segundo registro en nuestra tabla de


Grupo (Recuerde hacer esta instrucción en su tabla de Grupo
creada la semana pasada)

Antes de proceder a exponer otro punto veamos lo siguiente.


Supongamos que deseamos agregar un tercer Grupo Coporativo y
“por accidente” se escribe.

INSERT INTO GrupoRomulo


VALUES ('0002', 'Grupo Corporativo 3');

Nuestro manejador mostraría un mensaje como el que sigue:

Gerencia virtual 3
Inserción de Datos

Esto significa simplemente que no pueden existir dos Grupos con


el mismo Id, puesto que es precisamente la clave primaria definida
durante la semana pasada.

De la misma manera, procedamos entonces a insertar registros


en la tabla DepartamentoRomulo. Con base a ello, intentaremos
añadir el Departamento de Administración, ubicado en Barquisimeto,
perteneciente al Grupo Corporativo 1. Escribimos:

INSERT INTO DepartamentoRomulo


VALUES ('10', 'ADMINISTRACION',
'BARQUISIMETO', '001');

Nuestro manejador reporta lo siguiente:

Gerencia virtual 4
Inserción de Datos

Simplemente lo que nos informa es que no existe el Grupo cuyo


código sea ‘001’, ya que el IdGrupo es una clave foránea que proviene
de la Tabla GrupoRomulo. (La tabla Grupo si posee un registro
cuyo Id es 001, pero, no está relacionada con GrupoRomulo). En
este caso, la importancia de definir las claves primarias y foráneas es
garantizar la integridad de los datos. En este caso, si deseamos
añadir el registro a nuestra Tabla DepartamentoRomulo (Recuerde
hacerlo en su tabla), escribimos:

INSERT INTO DepartamentoRomulo


VALUES ('10', 'ADMINISTRACION',
'BARQUISIMETO', '0001')

Así nuestro manejador incluye el registro en la tabla.

Importante: Antes de leer el siguiente punto, complete los


registros de la Tabla DepartamentoSuNombre, con la siguiente
información. De manera de obtener lo siguiente:

Gerencia virtual 5
Inserción de Datos

Inserción de Datos partiendo de otra tabla

Supongamos que deseamos ahora añadir todos los empleados a


nuestra tabla EmpleadoSuNombre (en mi caso, EmpleadoRomulo).
Los registros que usaremos en nuestro caso son los mismos que se
encuentran en la tabla de Empleado).

¿Debo escribir Insert para cada uno de los registros?,


afortunadamente no; vamos a ello. En este caso, lo que se debe
hacer es crear un insert tomando datos de otra tabla. En otras
palabras, se debe combinar un INSERT con un SELECT. ¡Parece
complicado, pero no lo es!.

Simplemente (si, tan simple como ello), escribimos:

INSERT INTO EmpleadoRomulo


(SELECT * FROM EMPLEADO);
Con lo que el manejador muestra en nuestra tabla:

Gerencia virtual 6
Inserción de Datos

¡Haga la prueba con su tabla y verá lo sencillo que es!. Este tipo de
instrucciones se usa mucho en la administración de base de datos.
Sobre todo en migraciones, entre otros. Va mucho más allá de
resolver ejercicios relacionado con SQL.

Creación de Tablas Históricas

A medida que se van registrando operaciones en la base de


datos, obviamente va creciendo en tamaño lo que puede ocasionar
decaimiento en su rendimiento. Una manera de mejorar el
performance es crear archivos históricos y eliminar los datos de dichas
tablas de manera de disminuir el tiempo en procesamiento.

Los archivos históricos se usan de manera mucho más frecuente


de lo que aparenta. Bien sea para la generación de estadísticos, o
que se requiera consultar y/o procesar una información de vieja data.
Por ejemplo, supongamos que este servidor desea una constancia de
calificaciones de mi carrera de pregrado (me gradué hace ¡21 años!),
se debe recurrir a los archivos históricos para dar respuesta a la
solicitud.

Expuesto todo lo anterior, veamos entonces como crear archivos


históricos mediante un pequeño ejemplo. Supongamos (por un

Gerencia virtual 7
Inserción de Datos

momento) que nuestros Grupos Corporativos se van a fusionar un uno


solo; el Grupo Corporativo 2 va a desaparecer y todos sus empleados
van a formar parte ahora del Grupo Corporativo 1. En la siguiente
semana veremos como actualizar toda la información. Sin embargo,
existe un requerimiento adicional: se desea mantener la información
de aquellos empleados que formaron parte del Grupo Corporativo 2
para futuros cálculos y estadísticas.

La solución al planteamiento anterior es obvia: crear una tabla


nueva que contenga la información de todos los empleados del Grupo
1. Ustedes con base a lo visto hasta los actuales momentos, harían el
siguiente procedimiento:

1. Crear la tabla histórica mediante la sentencia CREATE TABLE.

2. Una vez creada la tabla, escribirían una instrucción que combine


el INSERT y el SELECT para añadir los registros del Grupo
Coporativo 1, tan solo añadiendo una cláusula WHERE en
donde se añadan solo los registros cuyo IdGrupo sea igual al
‘0001’.

Lo anterior es correcto, pero, ¡les tengo mejores noticias!, existe


una manera mucho más rápida de hacer ello y es mediante una sola
instrucción. Combinando CREATE TABLE Y SELECT.

En este caso en particular (recuerde usar las tablas con su


nombre) escribiríamos:

Gerencia virtual 8
Inserción de Datos

CREATE TABLE HistoricoGrupo1Romulo (


SELECT e.IdEmpleado, e.NomEmpleado, e.CargoEmpleado,
e.IdJefe, e.FechaIngreso, e.Salario, e.Comision, e.IdDpto
FROM EmpleadoRomulo e, DepartamentoRomulo d, GrupoRomulo g
WHERE e.IdDpto = d.IdDpto AND
d.IDGrupo = g.IdGrupo AND
g.IdGrupo = '0001');

Por lo que el manejador ya crea la tabla con sus registros

Acá lo “complicado” de la sentencia es el WHERE ya que se


debe hacer un join de tres (3) tablas, pero, se supone que no debe ser
mayor reto para ustedes.

Esto es todo por esta semana. En la plataforma está la guía de


ejercicios, resuélvanlo, usen los foros para cualquier duda y no olviden
adjuntar su tarea siguiendo las instrucciones de la plataforma.

Gerencia virtual 9

You might also like