Sei sulla pagina 1di 9
Inserción de Datos

Inserción de Datos

Inserción de Datos

Inserción de Datos Poniéndonos en Contexto Durante la semana pasada creamos una pequeña estructura de una

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

1'); Con lo que ya tenemos el registro en la tabla Nota : Pruebe esta instrucción

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.

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

Inserción de Datos

Inserción de Datos Existe una manera más “eficiente” de hacer un INSERT. En este sentido, usamos

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

Corporativo 2, cuyo Id es 0002.

Grupo

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)

instrucción en su tabla de Grupo creada la semana pasada) Antes de proceder a exponer otro

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:

'Grupo Corporativo 3'); Nuestro manejador mostraría un mensaje como el que sigue: Gerencia virtual 3
'Grupo Corporativo 3'); Nuestro manejador mostraría un mensaje como el que sigue: Gerencia virtual 3

Inserción de Datos

Inserción de Datos Esto significa simplemente que no pueden existir dos Grupos con el mismo Id,
Inserción de Datos Esto significa simplemente que no pueden existir dos Grupos con el mismo Id,

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',

'BARQUISIMETO', '001');

'ADMINISTRACION',

Nuestro manejador reporta lo siguiente:

'001'); 'ADMINISTRACION', Nuestro manejador reporta lo siguiente: Gerencia virtual 4
'001'); 'ADMINISTRACION', Nuestro manejador reporta lo siguiente: Gerencia virtual 4
'001'); 'ADMINISTRACION', Nuestro manejador reporta lo siguiente: Gerencia virtual 4

Inserción de Datos

Inserción de Datos Simplemente lo que nos informa es que no existe el Grupo cuyo código

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.

Así nuestro manejador incluye el registro en la tabla. Importante : Antes de leer el siguiente

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:

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

Inserción de Datos

Inserción de Datos Inserción de Datos partiendo de otra tabla Supongamos que deseamos ahora añadir todos

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).

son los mismos que se encuentran en la tabla de Empleado ). ¿Debo escribir Insert para

¿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:

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

Inserción de Datos

Inserción de Datos ¡Haga la prueba con su tabla y verá lo sencillo que es!. Este
Inserción de Datos ¡Haga la prueba con su tabla y verá lo sencillo que es!. Este

¡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

veamos entonces como crear archivos históricos mediante un pequeño ejemplo. Supongamos (por un Gerencia virtual 7
veamos entonces como crear archivos históricos mediante un pequeño ejemplo. Supongamos (por un Gerencia virtual 7

Inserción de Datos

Inserción de Datos momento) que nuestros Grupos Corporativos se van a fusionar un uno solo; el

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:

TABLE Y SELECT. En este caso en particular (recuerde usar las tablas con su nombre) escribiríamos:
TABLE Y SELECT. En este caso en particular (recuerde usar las tablas con su nombre) escribiríamos:

Inserción de Datos

Inserción de Datos CREATE TABLE HistoricoGrupo1Romulo ( SELECT e.IdEmpleado, e.NomEmpleado, e.CargoEmpleado, e.IdJefe,

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

Por lo que el manejador ya crea la tabla con sus registros Acá lo “complicado” de

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.

para cualquier duda y no olviden adjuntar su tarea siguiendo las instrucciones de la plataforma. Gerencia
para cualquier duda y no olviden adjuntar su tarea siguiendo las instrucciones de la plataforma. Gerencia