Fundamentos de
SQL
FACILITADOR: Fernando Villa
UNIDAD DIDÁCTICA
Comprensión Fundamental y Aplicación SESIÓN N°5
del Lenguaje SQL para el Análisis Eficiente
Presentación de Actividad 1
de Datos
Inserción y eliminación de
datos en tablas
OBJETIVO DE LA SESIÓN
Al finalizar la sesión podremos:
Saber como insertar y eliminar información
en las tablas de nuestras bases de datos
de manera estructurada
Consolidar nuestros conocimientos de
diseño de querys en SQL
Capacidad
Elaborar un informe gerencial
basado en KPIs
INTERÉS
¿QUÉ NOS ESPERA?
DESCUBRIMIENTO
RUTA DE
EXPERIENCIA
APRENDIZAJE
APRENDIZAJE EVIDENCIADO
INTERÉS
INSERT DATA
DELETE DATA
REPORTES GERENCIALES CON SQL
SKILLS OF DATA ANALYTICS
ACTUALES ROLES DATA ANALYTICS
DESCUBRIMIENTO
1. INSERT
CONCEPTO
SINTAXIS INSERT INTO
Nos permite ingresar datos a
nuestras tablas de nuestra INSERT INTO TABLE (COLUMNA1,COLUMNA2)
base de datos. Dentro de SQL VALUES
Server se puede ingresar (VALOR1, VALOR2),
información de diversas (VALOR3, VALOR4)
formas:
• Insert into
• Insert + select Es importante ingresar la
misma cantidad de valores y
• Crear tablas con
columnas
importación de archivos
1.1 INSERT INTO
Al momento de realizar la
inserción de datos en la tabla
de Producción ingresamos
valores en la misma cantidad
de las columnas.
1.2 INSERT INTO (IDENTITY)
create table Prueba
En ocasiones podemos crear (IDPrueba int primary key identity(1,1),
tablas con un primary key Valor int,
Descripcion varchar(10))
que se incremente por sí
solo. Ante ello, ya no es insert into Prueba (Valor,Descripcion)
values(20,'Prueba1'),
necesario ingresar ese valor (10,'Prueba2')
dentro del insert into.
select *
from Prueba
1.3 INSERT INTO CON SELECT
SINTAXIS
También podemos
INSERT INTO TABLE (COLUMNA1,COLUMNA2) insertar datos mediante
SELECT COLUMNA1,COLUMNA2 consultas select, pero se
FROM TABLE debe respetar el orden de
WHERE COLUMNA3=VALOR las columnas nombradas
en el insert con las que se
obtienen en la consulta.
1.4 INSERT INTO CON DEPENDENCIA
Hay ocasiones donde las ID
referenciado
tablas están referenciadas
por foreigns key, por lo Tabla Tabla Principal
Dimensión1
que en la inserción
debemos tener en cuenta
cómo se han creado las
dependencias entre Primero debemos insert datos
tablas. en la tabla dimensión o la
referenciada, antes de insertar
datos en la tabla principal.
1.5 EJEMPLO INSERT CON DEPENDENCIA
Crearemos dos tablas:
Se referencia
mediante el create table Curso
create table Alumnos
IDalumno (
(
IDCurso int primary key ,
IDAlumno int primary key ,
IDAlumno int,
Nombre nvarchar(20),
Descripcion nvarchar(30),
direccion nvarchar(30)
Fecha_inicio date,
)
Fecha_fin date
foreign key (IDAlumno) references Alumnos(IDAlumno)
)
1.5 EJEMPLO INSERT CON DEPENDENCIA
Insertaremos los siguientes
datos: Aparantemente está
correcto, pero ¿debería
ser así como se
insert into Alumnos (IDAlumno,Nombre,direccion) estructura las relaciones
select 1 as ID,'Cesar' as Nombre, 'Carabayllo' as direccion entre tablas?
union
select 2 as ID,'Rosmell' as Nombre, 'Chorrillos' as
direccion
insert into Curso
values
¿Que pasa si varios alumnos están en
(1,1,'Matemática', '2024-12-15','2025-01-31'), un mismo curso?
(2,1,'Lenguaje', '2024-12-15','2025-01-31')
1.5 EJEMPLO INSERT CON DEPENDENCIA
Intentaremos insertar el siguiente registro:
¿Por qué sucede estos
insert into Curso errores?
values
(1,2,'Matemática', '2024-12-15','2025-01-31') Cada vez que manejemos
llaves tenemos que tener en
cuenta la unicidad de estas y
Intentaremos insertar el siguiente registro con que existan en caso de estar
un IDAlumno = 3 , en un nuevo curso. referenciadas
insert into Curso
values
(3,3,'Educación Civil', '2024-12-15','2025-01-31')
1.5 EJEMPLO INSERT CON DEPENDENCIA
CORRECCION
Un Alumno puede estar
en varios cursos y un
Vamos a eliminar y
Analicemos la curso puede tener
reestructurar la tabla curso. cardinalidad de las varios alumnos
tablas
drop table curso
Necesitamos una tabla que sirva de
nexo entre la tabla Curso y Alumno, por
ejemplo, Matrícula.
1.5 EJEMPLO INSERT CON DEPENDENCIA
CREATE TABLE CURSO (
IDCurso int primary key ,
Hemos creado una nueva
Descripcion nvarchar(30)
)
tabla de curso que es
descriptiva y una tabla de
insert into CURSO matrícula que enlaza el curso
values con el alumno y pueda
(1,'Matemática'), soportar la relación muchos a
(2,'Lenguaje' ) muchos.
CREATE TABLE MATRICULA(
IDMATRICULA INT PRIMARY KEY IDENTITY(1,1),
CURSOID INT,
ALUMNOID INT,
FECHAINICIO DATE,
FECHAFIN DATE,
FOREIGN KEY (ALUMNOID) references Alumnos(IDAlumno),
FOREIGN KEY (CURSOID) references CURSO(IDCurso)
)
1.5 EJEMPLO INSERT CON DEPENDENCIA
Actualmente tenemos dos alumnos y dos cursos creados, por lo
que en la tabla matrícula podemos agregar las 4 combinaciones de
cursos y alumnos en matrícula.
insert into MATRICULA
VALUES
(1,1,'2024-02-10','2024-03-31'),
(1,2,'2024-02-10','2024-03-31'),
(2,1,'2024-04-10','2024-05-30'),
(2,1,'2024-04-10','2024-05-30')
1.6 IMPORTACIÓN DE DATOS
Podemos importar datos y
almacenarlos en una tabla
nueva según el tipo de
archivo fuente (Excel o
plano –txt)
2. DELETE Y DROP
SINTAXIS INSERT INTO
CONCEPTO
DELETE TABLENAME
WHERE
Nos permite eliminar parcial o …
totalmente los registros dentro
de una tabla o base de datos. DROP TABLE TABLENAME
DROP DATABASE DBNAME
Es importante asegurar la
lógica de eliminación antes
de ejecutarla
2.1 EJEMPLOS DE DELETE
En este caso se ha
eliminado el cliente de id=5
EXPERIENCIA
3. EJERCICIO DE INSERT Y DELETE
Seguir las instrucciones del
Crear la tabla Canales_Tendencia con los
profesor el desarrollo de la
siguientes campos:
actividad. Utilizar la base de
datos UCAL_SQL_BD
ID
Canal
VistasTotales
El objetivo del laboratorio es
Posterior a ello, escribir en la tabla los valores reforzar la gestión de inserción de
agregados provenientes de la tabla datos y eliminación.
CampañasMarketing cuyas vistas totales
superen los 100000.
• Volver a añadir los mismos datos
• Eliminar los registros iniciales.
¿Cómo nos aseguramos que no se inserten
valores sin duplicar los canales?
3. EJERCICIO PROPUESTO
Crear la tabla ventas_supermercados_rentables con los
siguientes campos:
Utiliza los conceptos vistos en el
ID : INT PRIMARY KEY IDENTITY(1,1), ejercicio resuelto para desarrollar
Supermercado, el caso, no olvides usar la función
CantidadVendida, ROW_NUMBER() OVER
IngresoTotal,
CostoTotal
CodMes
Insertarle a la tabla creada los valores agregados de la
tabla VentasSupermercado, de tal forma que solo se
agreguen los supermercados con rentabilidad mayor a
1000 y asegurando que no se inserte registros repetidos.
APRENDIZAJE
EVIDENCIADO
PREGUNTA DE REPASO
¿ Por qué es importante colocar una condición en los
delete?
EN ESTA SESIÓN APRENDIMOS:
Conceptos Casos Actividad
Utilizar las sentencias Ejercicios de refuerzo Ejercicio propuesto
de insert y delete para de conceptos. para el manejo de
la gestión de insert y delete
información. Presentación de
Actividad 1