Está en la página 1de 47

ESCUELA PROFESIONAL DE

INGENIERÍA DE SISTEMAS E INFORMÁTICA

ASIGNATURA: BASE DE DATOS II


UNIDAD DIDÁCTICA 1 SEMANA 1 SESIÓN 1
TEMA DE SESIÓN: Presentación y acuerdos

CAPACIDAD GENERAL:

• Introducción al curso

CAPACIDAD ESPECÍFICA:

• Utiliza el lenguaje de manipulación de datos DML para mantener actualizada la información en una base de datos.

CAPACIDAD DE PROCESO:

• Utiliza terminología y sintaxis básica del lenguaje DML para realizar consultas a una base de datos.

• Utiliza la sintaxis correspondiente a los JOINS y SUBCONSULTAS para generar información desde una base de datos.

• Realiza consultas a una base de datos con la orden GROUP BY y con funciones agregadas para el agrupamiento de datos.

Carlos Efraín Palomino Vidal 3


Cronograma
RUBRO DETALLE SEMANA Nº

1era práctica calificada 3


Revisión trabajo final
I 2da práctica calificada
Parte (40%) Revisión trabajo final 6

Examen Parcial
8
Revisión trabajo final
3era práctica calificada
11
Revisión trabajo final
II 4ta practica calificada
14
Parte (60%) Revisión trabajo final
Exposición de proyectos 16
Examen Final 17
Carlos Efraín Palomino Vidal 4
Carlos Efrain Palomino Vidal 5
Crea Base de datos Procedimientos almacenados

Carlos Efrain Palomino Vidal 6


Sentencias Básicas

Carlos Efrain Palomino Vidal 7


Sentencias básicas en SQL

• Select
• Insert
• Update
• Delete

Carlos Efrain Palomino Vidal 8


Sentencias básicas en SQL

• Insert

INSERT <Tabla>(Campos1,Campo2,..)
VALUES (Valor1, Valor2, Valor3)

Carlos Efrain Palomino Vidal 9


Sentencias básicas en SQL

• Update

UPDATE <Tabla>
SET <Campos Actualizar>
WHERE <Condiciones de Actualización>

Carlos Efrain Palomino Vidal 10


Sentencias básicas en SQL

• Delete

DELETE <Tabla>
WHERE <Condiciones de Actualización>

Carlos Efrain Palomino Vidal 11


Sentencias básicas en SQL

• Select
SELECT <Lista o selección>
FROM <Tabla>
WHERE <Condiciones de búsqueda>
GROUP BY <Lista de agrupación>
HAVING <Condiciones de grupo>
ORDER BY <Lista de ordenación>
Carlos Efrain Palomino Vidal 12
Ejemplos Varios

Carlos Efrain Palomino Vidal 13


Insertando Valores en tabla principal

INSERT FactVentaComp (GeografiaId,


ProductoId, TiempoId , VentaUnidad,
VentaPrecio, VentaRetorno)
VALUES ('12014403', '113KSRF18',
'12012309', 34375, 2132, 429)

Carlos Efrain Palomino Vidal 14


Insertando Valores en tabla principal

INSERT FactVentaComp (GeografiaId,


ProductoId, TiempoId , VentaUnidad,
VentaPrecio, VentaRetorno)
Select Campo1, Campo2, Campo3,
Campo4, Campo5, Campo6)

Carlos Efrain Palomino Vidal 15


Mostrando resultados
Select * from DimProducto

select TodoGeografi,MayorGeografia,
Pais,Canal,Cliente,GeografiaId from
DimGeografia

select * from FactVentaComp


Carlos Efrain Palomino Vidal 16
Mostrando resultados
• ¿Cuál es el inconveniente?

Muchos códigos para


mostrar información útil se
necesita mostrar datos
combinando tablas

Carlos Efrain Palomino Vidal 17


INNER JOIN en SQL Server
• Devuelve solo las columnas coincidentes entre dos o mas
tablas
Sintaxis

SELECT <Conjunto de datos>


FROM <Tabla 1> INNER JOIN <Tabla 2>
ON <Tabla 1 Campo> =
<Tabla 2 Campo>

Carlos Efrain Palomino Vidal 18


INNER JOIN en SQL Server
Clientes Condición Pago
codigo razonsocial rucdni condicion nombreCondicion codigo
1 PULL CREATIVO S.R.L. 20335396147 1 CONTADO C/E. 1
2 MONTACARGAS Y GRUAS S.A. 20425782232 2 F/ 7 dias. 3
3 GEORGINA TRANSPORTES S.R.L. 20417135261 3 F/ 15 dias. 3

codigo razonsocial rucdni condicion nombreCondicion


1 PULL CREATIVO S.R.L. 20335396147 1 CONTADO C/E.
3 GEORGINA TRANSPORTES S.R.L. 20417135261 2 F/ 7 dias.
3 GEORGINA TRANSPORTES S.R.L. 20417135261 3 F/ 15 dias.

Carlos Efrain Palomino Vidal 19


Ejemplos Inner join
• Si quisiéramos mostrar
datos de los productos…

Carlos Efrain Palomino Vidal 20


Ejemplos Inner join

Select p.ProductoId,tp.Descripcion, t.Descripcion


as tipoProducto,s.Descripcion as descripcionSku
from DimProducto p
inner join TipoProducto t on
p.TipoProducto=t.TipoProducto
inner join TodoProducto tp on
p.TodoProducto=tp.TodoProducto
inner join SKU s on p.SKU=s.SKU

Carlos Efrain Palomino Vidal 21


Ejemplos Inner join

Carlos Efrain Palomino Vidal 22


Actualizando resultados
• Actualizar el precio de venta del producto 15 en 16%
update FactVentaComp
set VentaPrecio=VentaPrecio*1.16
where ProductoId='15'
• Actualizar el nombre del producto cuando el nombre
del producto sea Dog
update TodoProducto
set Descripcion=Descripcion+' Nuevo Nombre'
where Descripcion ='dog'
Carlos Efrain Palomino Vidal 23
Actualizando resultados
• Actualizar el precio de venta del producto 15 en 16% cuando
la descripción de la línea sea igual a oficina

Carlos Efrain Palomino Vidal 24


Actualizando resultados
• Actualizar el precio de venta del producto 15 en 16% cuando
la descripción de la línea sea igual a oficina

update FactVentaComp
set VentaPrecio=VentaPrecio*1.16
where ProductoId='15'
Lo que hace este update es actualizar el precio (las dos
primeras líneas) de un conjunto de datos que cumple una
condición (tercera línea)
Carlos Efrain Palomino Vidal 25
Actualizando resultados
• Actualizar el precio de venta del producto 15 en 16% cuando
la descripción de la línea sea igual a oficina

update FactVentaComp
set VentaPrecio=VentaPrecio*1.16
from FactVentaComp where ProductoId='15'

Es lo mismo que la sentencia anterior

Carlos Efrain Palomino Vidal 26


Actualizando resultados
• Actualizar el precio de venta del producto 15 en 16% cuando
la descripción de la línea sea igual a oficina
• Que tablas necesitaríamos??

Carlos Efrain Palomino Vidal 27


Actualizando resultados
• Actualizar el precio de venta del producto 15 en 16% cuando
la descripción de la línea sea igual a oficina
• Necesitamos un conjunto de datos que cumpla con esa
condición select * from FactVentaComp x
inner join DimProducto p on
x.ProductoId=p.ProductoId
inner join LineaProducto l on
p.LineaProducto=l.LineaProducto
where l.Descripcion='oficina'
Carlos Efrain Palomino Vidal 28
Actualizando resultados
• Actualizar el precio
de venta del update FactVentaComp
producto 15 en set VentaPrecio=VentaPrecio*1.16
16% cuando la from FactVentaComp x
descripción de la inner join DimProducto p
línea sea igual a on x.ProductoId=p.ProductoId
oficina inner join LineaProducto l on
p.LineaProducto=l.LineaProducto
where l.Descripcion='oficina'

Carlos Efrain Palomino Vidal 29


Borrando datos
• Borrar las ventas cuando el precio de venta sea igual a 20

delete FactVentaComp
where VentaPrecio=20

Carlos Efrain Palomino Vidal 30


Borrando datos
• Borrar las ventas cuando la descripción de la línea sea igual a
oficina
delete FactVentaComp
No olvidar la from FactVentaComp x
integridad inner join DimProducto p
referencial on x.ProductoId=p.ProductoId
inner join LineaProducto l on
p.LineaProducto=l.LineaProducto
where l.Descripcion='oficina'

Carlos Efrain Palomino Vidal 31


Sentencias básicas en SQL
• AGRUPACIONES Y FUNCIONES AGREGADAS

SELECT <Lista o selección> • Funciones


FROM <Tabla> escalares,

WHERE <Condiciones de búsqueda> funciones


fecha
GROUP BY <Lista de agrupación> • Manejo de la
datos en el
HAVING <Condiciones de grupo> select

ORDER BY <Lista de ordenación>


Carlos Efrain Palomino Vidal 32
Sentencias básicas en SQL
• AGRUPACIONES Y FUNCIONES AGREGADAS

• SUM()
• COUNT()
• AVG()
• MIN()
• MAX()

Carlos Efrain Palomino Vidal 33


Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos con su
precio y cantidad de venta (venta unidad)

select
p.ProductoId,t.Descripcion,f.VentaPrecio,f.VentaUnidad
from FactVentaComp f
inner join DimProducto p on f.ProductoId=p.ProductoId
inner join TodoProducto t on
p.TodoProducto=t.TodoProducto

Carlos Efrain Palomino Vidal 34


Sentencias básicas en SQL
• Hacer un select que
muestre la descripción de
los productos con su precio
y cantidad de venta (venta
unidad)

Carlos Efrain Palomino Vidal 35


Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos
con su precio promedio de venta general y cantidad de venta
total vendida (venta unidad)

• Cada producto debe tener una sola cantidad de venta


• Cada producto debe tener un solo precio (promedio)
• Cada producto debe aparecer solo una vez

Carlos Efrain Palomino Vidal 36


Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos con su
precio promedio de venta general y cantidad de venta total vendida
(venta unidad)
select p.ProductoId,t.Descripcion,
avg(f.VentaPrecio) as precioPromedio
,sum(f.VentaUnidad) as ventaTotal
from FactVentaComp f
inner join DimProducto p on
f.ProductoId=p.ProductoId
inner join TodoProducto t on
p.TodoProducto=t.TodoProducto
Carlos Efrain Palomino Vidal 37
Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos con su precio
promedio de venta general y cantidad de venta total vendida (venta unidad)

select p.ProductoId,t.Descripcion,
avg(f.VentaPrecio) as precioPromedio
,sum(f.VentaUnidad) as ventaTotal
from FactVentaComp f
inner join DimProducto p on
f.ProductoId=p.ProductoId
inner join TodoProducto t on
p.TodoProducto=t.TodoProducto
group by p.ProductoId,t.Descripcion
Carlos Efrain Palomino Vidal 38
Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos
con su precio promedio de venta general y cantidad de venta
total vendida (venta unidad)

Carlos Efrain Palomino Vidal 39


Sentencias básicas en SQL
• AGRUPACIONES Y FUNCIONES AGREGADAS

SELECT <Lista o selección> • Funciones


FROM <Tabla> escalares,

WHERE <Condiciones de búsqueda> funciones


fecha
GROUP BY <Lista de agrupación> • Manejo de la
datos en el
HAVING <Condiciones de grupo> select

ORDER BY <Lista de ordenación>


Carlos Efrain Palomino Vidal 40
Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos
con su precio promedio de venta general y cantidad de venta
total vendida (venta unidad) y que el precio de venta promedio
sea mayor a 2158

Carlos Efrain Palomino Vidal 41


Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos con su precio
promedio de venta general y cantidad de venta total vendida (venta unidad) y que el
precio de venta sea mayor a 2158

select p.ProductoId,t.Descripcion,
avg(f.VentaPrecio) as precioPromedio ,
sum(f.VentaUnidad) as ventaTotal
from FactVentaComp f
inner join DimProducto p on f.ProductoId=p.ProductoId
inner join TodoProducto t on p.TodoProducto=t.TodoProducto
where f.VentaPrecio>2158
group by p.ProductoId,t.Descripcion

Carlos Efrain Palomino Vidal 42


Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos
con su precio promedio de venta general y cantidad de venta
total vendida (venta unidad) y que el precio de venta sea mayor
a 2158

Carlos Efrain Palomino Vidal 43


Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos con su
precio promedio de venta general y cantidad de venta total vendida
(venta unidad) y que el precio de venta sea mayor a 2158

select p.ProductoId,t.Descripcion,
avg(f.VentaPrecio) as precioPromedio ,
sum(f.VentaUnidad) as ventaTotal
from FactVentaComp f
inner join DimProducto p on f.ProductoId=p.ProductoId
inner join TodoProducto t on p.TodoProducto=t.TodoProducto
group by p.ProductoId,t.Descripcion
having avg(f.VentaPrecio) >2158
Order by p.productoId
Carlos Efrain Palomino Vidal 44
Sentencias básicas en SQL
• Hacer un select que muestre la descripción de los productos con su
precio promedio de venta general y cantidad de venta total vendida
(venta unidad) y que el precio de venta sea mayor a 2158

Carlos Efrain Palomino Vidal 45


Sentencias básicas en SQL

• Where filtra los valores que van a entrar a la agrupación


• Having filtra el resultado de la agrupación

Carlos Efrain Palomino Vidal 46


Referencia de Autoría:
- Diapositivas elaboradas por el Carlos Efrain Palomino Vidal.

Carlos Efraín Palomino Vidal 47