Consultas y Ejemplos

21
Ejercicios de Consultas con Ejemplos Leslie Lara Cerón Lic. Eliud Paredes Reyes 8-TI-G3

description

Praticas de Base de Datos

Transcript of Consultas y Ejemplos

Page 1: Consultas y Ejemplos

Ejercicios de Consultas con Ejemplos

Leslie Lara Cerón

Lic. Eliud Paredes Reyes

8-TI-G3

Page 2: Consultas y Ejemplos

Contenido1.2.3.4. Selección de datos : SELECT............................................................................................3

Ejemplo........................................................................................................................................3

1.2.3.4.2. Crear una tabla a partir de una consulta....................................................................3

Ejemplo........................................................................................................................................4

1.2.4. INSTRUCCION MERGE........................................................................................................4

Ejemplo........................................................................................................................................5

1.3. RECUPERACIÓN AVANZADA DE CONSULTA DE DATOS.......................................................5

1.3.1. COMBINACION DE TABLAS: JOIN......................................................................................5

1.3.1.1. COMBINACION INTERNA................................................................................................5

Ejemplo........................................................................................................................................5

1.3.1.2. COMBINACIONES EXTERNAS..........................................................................................6

A. LEFT JOIN o LEFT OUTER JOIN.................................................................................................6

Ejemplo........................................................................................................................................6

B. RIGHT JOIN o RIGHT OUTER JOIN............................................................................................6

Ejemplo........................................................................................................................................6

C. FULL JOIN o FULL OUTER JOIN.................................................................................................7

Ejemplo........................................................................................................................................7

D. COMBINACION CRUZADA.......................................................................................................7

Ejemplo........................................................................................................................................8

1.3.2. Datos Agrupados...............................................................................................................8

1.3.2.1. Funciones Agregadas......................................................................................................8

1.3.2.1.1. Uso de la función COUNT(*)........................................................................................8

Ejemplo........................................................................................................................................8

1.3.2.1.2. Uso de la función AVG.................................................................................................8

Ejemplo........................................................................................................................................9

1.3.2.1.3. Uso de la función MAX() y MIN()................................................................................9

Ejemplo........................................................................................................................................9

1.3.2.1.4. Uso de la función SUM................................................................................................9

Ejemplo........................................................................................................................................9

1.3.2.2. Cláusula GROUP BY........................................................................................................9

Ejemplo:.....................................................................................................................................10

1.3.2.3. Cláusula HAVING....................................................................................................10

Ejemplo......................................................................................................................................10

1.3.3. AGREGAR CONJUNTO DE RESULTADOS: UNION...........................................10

Page 3: Consultas y Ejemplos

Ejemplo:.....................................................................................................................................11

1.3.4. RESUMEN DE DATOS: CUBE............................................................................................11

Ejemplo......................................................................................................................................12

1.3.4.1. Agregar permutaciones múltiples: operador CUBE.....................................................13

Ejemplo..................................................................................................................................13

1.3.4.2. RESUMEN DE DATOS: ROLLUP.....................................................................................14

Ejemplo......................................................................................................................................14

Conclusion.................................................................................................................................15

Page 4: Consultas y Ejemplos

1.2.3.4. Selección de datos : SELECTBEGINDECLARE @MYPRODUCTO INTSET @MYPRODUCTO = 3-- EVALUAR SI LA VARIABLE @MYPRODUCTO ES DIFERENTE DE 0IF (@MYPRODUCTO <> 0)

SELECT IDPRODUCTO 'CODIGO',NOMPRODUCTO 'PRODUCTO',PRECIOUNIDAD 'PRECIO' FROM COMPRA.PRODUCTOS WHERE IDPRODUCTO = @MYPRODUCTO;

END

EjemploBeginDeclare @Mycantidad IntSet @Mycantidad = 3-- Evaluar Si La Variable @Myproducto Es Diferente De 0If (@Mycantidad <> 0)Select Idproducto 'Codigo',Cantidad 'Cantidad',Descuento 'Descuento' From Pedidosdeta Where Idpedido = @Mycantidad;End

1.2.3.4.2. Crear una tabla a partir de una consultaSELECT IDEMPLEADO,APEEMPLEADO,NOMEMPLEADOINTO DBO.EMPLEADOBAKFROM RRHH.EMPLEADOSWHERE IDCARGO = (SELECT C.IDCARGOFROM RRHH.CARGOS CWHERE DESCARGO = 'SUPERVISOR DE VENTAS')GOSELECT * FROM DBO. EMPLEADOBAK

Page 5: Consultas y Ejemplos
Page 6: Consultas y Ejemplos

EjemploSELECT IdCliente,NomCliente,DirCliente,IdPaisINTO DBO.ClientesConsuFROM ClientesWHERE IdPais = (SELECT p.IdPaisFROM Paises pwhere NombrePais='Mexico')GOSELECT * FROM DBO. ClientesConsu

1.2.4. INSTRUCCION MERGEDECLARE @PAIS VARCHAR(50), @ID CHAR(3)SET @PAIS='MEXICO'SET @ID='3'MERGE PAISES AS TARGETUSING (SELECT @ID, @PAIS)AS SOURCE (IDPAIS, NOMBREPAIS)ON (TARGET.IDPAIS = SOURCE.IDPAIS)WHEN MATCHED THENUPDATE SET NOMBREPAIS = SOURCE.NOMBREPAISWHEN NOT MATCHED THENINSERT VALUES(SOURCE.IDPAIS, SOURCE.NOMBREPAIS);

Page 7: Consultas y Ejemplos

EjemploDECLARE @Cargos VARCHAR(50), @ID CHAR(3)SET @Cargos='Empleado'SET @ID='1'MERGE Cargos AS TARGETUSING (SELECT @ID, @Cargos)AS SOURCE (IdCargos, DesCargo)ON (TARGET.IdCargos = SOURCE.IdCargos)WHEN MATCHED THENUPDATE SET DesCargo = SOURCE.DesCargoWHEN NOT MATCHED THENINSERT VALUES(SOURCE.IdCargos, SOURCE.DesCargo);

1.3. RECUPERACIÓN AVANZADA DE CONSULTA DE DATOS1.3.1. COMBINACION DE TABLAS: JOIN

1.3.1.1. COMBINACION INTERNA.SELECT C.IDCLIENTE, C.NOMCLIENTE, C.DIRCLIENTE, P.NOMBREPAISFROM VENTAS.CLIENTES C INNER JOIN VENTAS.PAISES PON C.IDPAIS = P.IDPAIS

EjemploSELECT c.IdPedido, c.Descuento, p.NomProducto, p.PrecioUnidadFROM PedidosDeta c INNER JOIN Productos pON c.IdProducto = p.IdProducto

Page 8: Consultas y Ejemplos

1.3.1.2. COMBINACIONES EXTERNAS

A. LEFT JOIN o LEFT OUTER JOINSELECT C.*, P.IDPEDIDOFROM VENTAS.CLIENTES C INNER JOIN VENTAS.PEDIDOSCABE PON C.IDCLIENTE = P.IDCLIENTE

EjemploSELECT e.NomEmpleado,e.DirEmpleado,e.FecContrata,p.IdEmpleado,p.FechaEntregaFROM Empleados e INNER JOIN PEDIDOSCABE pON e.IdEmpleado = p.IdEmpleado

B. RIGHT JOIN o RIGHT OUTER JOINSELECT PD.*, PO.NOMPRODUCTOFROM COMPRAS.PRODUCTOS PO RIGHT JOIN VENTAS.PEDIDOSDETA PDON PD.IDPRODUCTO = PO.IDPRODUCTO

EjemploSELECT c.* , p.NomProducto, p.PrecioUnidadFROM Categorias c RIGHT JOIN Productos pON c.IdCategoria = p.IdCategoria

Page 9: Consultas y Ejemplos

C. FULL JOIN o FULL OUTER JOINSELECT PD.*, PO.NOMPRODUCTOFROM VENTAS.PEDIDOSDETA PD FULL JOIN COMPRAS.PRODUCTOS POON PD.IDPRODUCTO = PO.IDPRODUCTO

EjemploSELECT pr.IdPais,pr.NomProveedor,po.PrecioUnidad,po.NomProductoFROM Proveedores pr FULL JOIN Productos poON pr.IdProveedor=po.IdProveedor

D. COMBINACION CRUZADASELECT P.IDPRODUCTO, P.NOMPRODUCTO, PR.NOMPROVEEDORFROM COMPRAS.PRODUCTOS P CROSS JOIN COMPRAS.PROVEEDORES PR

Page 10: Consultas y Ejemplos

EjemploSELECT c.NombreCategoria,c.Descripcion,p.NomProveedor,p.CargoContactoFROM Categorias c CROSS JOIN Proveedores p

1.3.2. Datos Agrupados

1.3.2.1. Funciones Agregadas

1.3.2.1.1. Uso de la función COUNT(*)SELECT COUNT(*) AS 'CANTIDAD DE PEDIDOS'FROM VENTAS.PEDIDOSCABEWHERE DATEPART(YY,FECHAPEDIDO)=2011

EjemploSELECT COUNT(*) AS 'Empleados'FROM EmpleadosWHERE DATEPART(YY,FecContrata)=2014

1.3.2.1.2. Uso de la función AVGSELECT AVG(PRECIOUNIDAD) AS 'PRECIO PROMEDIO'FROM COMPRAS.PRODUCTOS

Page 11: Consultas y Ejemplos

EjemploSELECT AVG(Cantidad) AS 'PRECIO PROMEDIO'FROM PedidosDeta

1.3.2.1.3. Uso de la función MAX() y MIN()SELECT MAX(PRECIOUNIDAD) AS 'MAYOR PRECIO', MIN(PRECIOUNIDAD)AS 'MENOR PRECIO'FROM COMPRAS.PRODUCTOS

EjemploSELECT MAX(Cantidad) AS 'MAYOR PRECIO', MIN(Cantidad)AS 'MENOR PRECIO'FROM PedidosDeta

1.3.2.1.4. Uso de la función SUMSELECT SUM(PRECIOUNIDAD*CANTIDAD) AS 'SUMA'FROM VENTAS.PEDIDOSDETA PD JOIN VENTAS.PEDIDOSCABE PCON PD.IDPEDIDO = PC.IDPEDIDOWHERE YEAR(FECHAPEDIDO)=2011

EjemploSELECT SUM(PRECIOUNIDAD*Descuento) AS 'SUMA'FROM PedidosDeta

1.3.2.2. Cláusula GROUP BYSELECT C.NOMCLIENTE AS 'CLIENTE',COUNT(*) AS 'CANTIDAD', SUM(PRECIOUNIDAD*CANTIDAD) AS'SUMA'FROM VENTAS.PEDIDOSDETA PD JOIN VENTAS.PEDIDOSCABE PCON PD.IDPEDIDO = PC.IDPEDIDOJOIN VENTAS.CLIENTES C ON C.IDCLIENTE = PC.IDCLIENTEGROUP BY C.NOMCLIENTE

Page 12: Consultas y Ejemplos

Ejemplo:Select C.Nomcliente As 'Cliente',Sum(Preciounidad*Cantidad) As 'Suma'from Pedidosdeta Pd Join Pedidoscabe PcOn Pd.Idpedido = Pc.IdpedidoJoin Clientes C On C.Idcliente = Pc.IdclienteWhere Year(Fechapedido)=2016Group By C.Nomcliente

1.3.2.3. Cláusula HAVINGSELECT C.NOMCLIENTE AS 'CLIENTE',SUM(PRECIOUNIDAD*CANTIDAD) AS 'SUMA'FROM VENTAS.PEDIDOSDETA PD JOIN VENTAS.PEDIDOSCABE PCON PD.IDPEDIDO = PC.IDPEDIDOJOIN VENTAS.CLIENTES C ON C.IDCLIENTE = PC.IDCLIENTEGROUP BY C.NOMCLIENTEHAVING SUM(PRECIOUNIDAD*CANTIDAD)>1000

EjemploSelect C.Nomcliente As 'Cliente',Sum(Preciounidad*Cantidad) As 'Suma'From Ventas.Pedidosdeta Pd Join Ventas.Pedidoscabe PcOn Pd.Idpedido = Pc.IdpedidoJoin Ventas.Clientes C On C.Idcliente = Pc.IdclienteWhere Year(Fechapedido)=2015Group By C.NomclienteHaving Sum(Preciounidad*Cantidad)>1000

1.3.3. AGREGAR CONJUNTO DE RESULTADOS: UNIONSELECT NOMPRODUCTO, PRECIOUNIDADFROM COMPRAS.PRODUCTOS

Page 13: Consultas y Ejemplos

WHERE PRECIOUNIDAD = (SELECT MAX(P.PRECIOUNIDAD)FROM COMPRAS.PRODUCTOS P)UNIONSELECT NOMPRODUCTO, PRECIOUNIDADFROM COMPRAS.PRODUCTOSWHERE PRECIOUNIDAD = (SELECT MIN(P.PRECIOUNIDAD)FROM COMPRAS.PRODUCTOS P)

Ejemplo:Select E.Nomempleado,E.Apeempleado,Count(*) As 'Cantidad'From Empleados E Join Pedidoscabe POn E.Idempleado = P.IdempleadoWhere Year(Fechapedido)=2016Group By E.Nomempleado, E.ApeempleadoUnionSelect E.Nomempleado, E.Apeempleado, 0 As 'Cantidad'From Empleados EWhere E.Idempleado Not In(Select P.Idempleado FromPedidoscabe PWhere Year(Fechapedido)=2016)

1.3.4. RESUMEN DE DATOS: CUBESELECT C.NOMBRECLIENTE AS 'CLIENTE',YEAR(FECHAPEDIDO) AS AÑO,SUM(PRECIOUNIDAD*CANTIDAD) AS 'SUMA'FROM VENTAS.PEDIDOSDETA PD JOIN VENTAS.PEDIDOSCABE PCON PD.IDPEDIDO = PC.IDPEDIDOJOIN VENTAS.CLIENTES C ON C.IDCLIENTE = PC.IDCLIENTEGROUP BY CUBE( C.NOMBRECLIENTE, YEAR(FECHAPEDIDO) )

Page 14: Consultas y Ejemplos

EjemploSELECT e.NomEmpleado AS 'Empleado',YEAR(FechaEnvio) 'Año'FROM Empleados e JOIN PedidosCabe pdON e.IdEmpleado = pd.IdEmpleadoJOIN Cargos c ON c.IdCargos = e.IdCargoGROUP BY CUBE( e.NomEmpleado, YEAR(FechaEnvio) )

Page 15: Consultas y Ejemplos

1.3.4.1. Agregar permutaciones múltiples: operador CUBESELECT E.NOMEMPLEADO+','+E.APEEMPLEADO AS 'EMPLEADO',YEAR(P.FECHAPEDIDO) AS 'AÑO',COUNT(*) AS 'CANTIDAD'FROM VENTAS.PEDIDOSCABE P JOIN VENTAS.EMPLEADOS EON P.IDEMPLEADO = E.IDEMPLEADOGROUP BY CUBE( E. NOMEMPLEADO +','+E. APEEMPLEADO,YEAR(P.FECHAPEDIDO))

EjemploSELECT c.NomCliente+','+c.DirCliente AS 'Cliente',YEAR(FechaEnvio) 'Año',COUNT(*) as 'cantidad'FROM Clientes c JOIN PedidosCabe pdON c.IdCliente=pd.IdClienteGROUP BY CUBE( c.NomCliente+','+c.DirCliente, YEAR(FechaEnvio) )

Page 16: Consultas y Ejemplos

1.3.4.2. RESUMEN DE DATOS: ROLLUPSELECT YEAR(FECHAPEDIDO) AS 'AÑO',COUNT(*) AS 'CANTIDAD'FROM VENTAS.PEDIDOSCABEGROUP BY YEAR(FECHAPEDIDO)WITH ROLLUP

EjemploSelect E.Apeempleado As 'Empleado',Year(P.Fechapedido) As 'Año',Count(*) As 'Cantidad'From Pedidoscabe P Join Empleados EOn P.Idempleado = E.IdempleadoGroup By E.Apeempleado, Year(P.Fechapedido)With Rollup

Page 17: Consultas y Ejemplos

Conclusion

En este documento se demostró los diferentes tipos de consultas desde la básica hasta consultas a múltiples tablas y así mismo consultas q hacen cálculos, más que nada esto ayuda en aplicaciones para cuando se ejecuten den un resultado final, en los puntos de venta son muy aplicados y un programador se puede evitar de realizar muchas líneas de código cuando se pueden realizar desde la base de datos.