Upload
luca-florez-mondragon
View
215
Download
0
Embed Size (px)
Citation preview
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 1/15
Diseño de Sistemas y Base de datos - 1 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
SEMANA N° 3
SENTENCIA SELECT:
La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la
base de datos.SINTAXIS:
SELECT [ALL | TOP n | DISTINCT]
<nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista>
[{,<nombre_tabla>|<nombre_vista>}]
[WHERE <condicion> [{ AND|OR <condicion>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY <nombre_campo> [ASC | DESC][{,<nombre_campo> [ASC | DESC ]}]]
Donde:
Significado
SELECT Palabra clave que indica que la sentencia de SQL que queremos ejecutar es deselección.
ALL Indica que queremos seleccionar todos los valores. Es el valor por defecto y no sueleespecificarse casi nunca.
TOP n Indica que queremos seleccionar “n” primeros registros.
DISTINCT Indica que queremos seleccionar sólo los valores distintos.
FROM
Indica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso de queexista más de una tabla se denomina a la consulta "consulta combinada" o "join". En lasconsultas combinadas es necesario aplicar una condición de combinación a través de unacláusula WHERE.
WHERE Especifica una condición que debe cumplirse para que los datos sean devueltos por laconsulta. Admite los operadores lógicos AND y OR . También IN y LIKE.
GROUP BY Especifica la agrupación que se da a los datos. Se usa siempre en combinación confunciones agregadas (SUM, MAX, MIN, AGV).
HAVING
Especifica una condición que debe cumplirse para que los datos sean devueltos por laconsulta. Su funcionamiento es similar al de WHERE pero aplicado al conjunto deresultados devueltos por la consulta. Debe aplicarse siempre junto a GROUP BY y la
condición debe estar referida a los campos contenidos en ella.
ORDER BY
Presenta el resultado ordenado por las columnas indicadas. El orden puede expresarsecon ASC (orden ascendente) y DESC (orden descendente). El valor predeterminado es ASC.
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 2/15
Diseño de Sistemas y Base de datos - 2 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
DIAGRAMA DE BASE DE DATOS VENTAS:
TABLA: CATEGORIAS
TABLA: UNIDADES
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 3/15
Diseño de Sistemas y Base de datos - 3 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
TABLA: PRODUCTOS
TABLA: DISTRITOS
TABLA: CLIENTES:
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 4/15
Diseño de Sistemas y Base de datos - 4 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
TABLA: EMPLEADOS
TABLA: PEDIDOS
TABLA: DETALLE_PEDIDOS
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 5/15
Diseño de Sistemas y Base de datos - 5 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
EJEMPLOS DE LA SENTENCIA SELECT:
Debe abrir una venta para consultas
Considerando la base de datos VENTAS:
USE ventas
Realizar las siguientes consultas:
LISTAR A TODAS LAS CATEGORÍAS
SELECT * FROM categorias
El resultado es el siguiente:
LISTAR A TODAS LAS UNIDADES
SELECT * FROM unidades
El resultado es el siguiente:
LISTAR A TODOS LOS PRODUCTOS
SELECT * FROM productos
El resultado es el siguiente:
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 6/15
Diseño de Sistemas y Base de datos - 6 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
LISTAR CODIGO, NOMBRE Y PRECIO DE TODOS LOS PRODUCTOS:
SELECT Cod_Producto, Nom_Producto, Pre_Producto FROM productos
El resultado es el siguiente:
LISTAR CODIGO, NOMBRES, APELLIDOS Y CORREO DE TODOS LOS EMPLEADOSSELECT Cod_Empleado, Nom_Empleado, Ape_Empleado, Ema_Empleado
FROM empleados
El resultado es el siguiente:
LISTAR A LOS 5 PRIMEROS PRODUCTOS
SELECT TOP 5 * FROM PRODUCTOS
El resultado es el siguiente:
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 7/15
Diseño de Sistemas y Base de datos - 7 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
LISTAR A LOS 2 PRIMEROS EMPLEADOS
SELECT TOP 2 * FROM empleados
El resultado es el siguiente:
LISTAR EL CODIGO, NOMBRES, APELLIDOS Y GENERO DE LOS 3 PRIMEROS
EMPLEADOS
SELECT TOP 3 Cod_Empleado, Nom_Empleado,
Ape_Empleado,Gen_Empleado FROM empleados
El resultado es el siguiente:
LISTAR A TODOS LOS CLIENTES ORDENADOS POR APELLIDOS EN ORDEN ASCENDENTE
SELECT * FROM clientes ORDER BY Ape_Cliente
El resultado es el siguiente:
SI LO ORDENADOS POR APELLIDOS EN ORDEN DESCENDENTE
SELECT * FROM clientes ORDER BY Ape_Cliente DESC
El resultado es el siguiente:
LISTAR A LOS 5 PRODUCTOS MÁS CAROS
SELECT TOP 5 * FROM productos ORDER BY Pre_Producto DESC
El resultado es el siguiente:
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 8/15
Diseño de Sistemas y Base de datos - 8 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
LISTAR A LOS 5 PRODUCTOS MÁS BARATOS
SELECT TOP 5 * FROM productos ORDER BY Pre_Producto
El resultado es el siguiente:
LISTAR A TODOS LOS PRODUCTOS ORDENADOS POR CODIGO DE CATEGORIA
(ASCENDENTE) Y LUEGO POR NOMBRE DEL PRODUCTO (DESCENDENTE) MOSTRAR EL
NOMBRE, CODIGO_CATEGORIA, PRECIO Y STOCK
SELECT Nom_Producto, Cat_Producto, Pre_Producto, Sto_Producto FROM productos ORDER BY Cat_Producto, Nom_Producto DESC
El resultado es el siguiente:
LISTAR LOS CODIGOS DE LAS CATEGORIAS (SIN DUPLICADOS) DE LA TABLA
PRODUCTOS.
SELECT DISTINCT Cat_Producto FROM productos
El resultado es el siguiente:
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 9/15
Diseño de Sistemas y Base de datos - 9 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
LISTAR A TODOS LOS PRODUCTOS CUYO STOCK ES MENOR 40
SELECT * FROM productos WHERE Sto_Producto <40
El resultado es el siguiente:
LISTAR CODIGO, NOMBRE, PRECIO, STOCK E IMPORTE DE TODOS LOS PRODUCTOS
SELECT Cod_Producto, Nom_Producto, Pre_Producto, Sto_Producto,
Importe=Pre_Producto*Sto_producto FROM productos
El resultado es el siguiente:
Nota: En este ejemplo podemos observar una columna calculada (IMPORTE), también
la columna Importe=Pre_Producto*Sto_producto, se puede hacer de la siguiente
manera Pre_Producto*Sto_producto AS Importe
LISTAR CODIGO, NOMBRE, PRECIO, STOCK E IMPORTE DE TODOS LOS PRODUCTOS
CUYO IMPORTE ES MAYOR QUE 500
SELECT Cod_Producto, Nom_Producto, Pre_Producto, Sto_Producto, Importe=Pre_Producto*Sto_productoFROM productos WHERE Pre_Producto*Sto_producto>500
El resultado es el siguiente:
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 10/15
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 11/15
Diseño de Sistemas y Base de datos - 11 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
LISTAR SUS APELLIDOS Y NOMBRES, FECHA DE NACIMIENTO Y SU EDAD DE TODOS
LOS EMPLEADOS CUYA EDAD ES MAYOR QUE 35
SELECT Empleado=ape_empleado+' '+nom_empleado, fna_empleado, Edad=DATEDIFF(Yy ,Fna_empleado, GETDATE() ) FROM empleados WHERE DATEDIFF(yy ,Fna_empleado, GETDATE() )>35
El resultado es el siguiente:
LISTAR NOMBE DEL PRODUCTO, STOCK, PRECIO, NOMBRE DE LA CATEGORIA
ORDENARLOS POR NOMBRE DE PRODUCTO DE FORMA DESCENDENTE
SELECT Nom_Producto, Sto_Producto, Pre_Producto, Nom_Categoria FROM productos p, categorias c
WHERE c.Cod_Categoria=p.Cat_ProductoORDER BY Nom_Producto DESC
El resultado es el siguiente:
LISTAR NOMBE DEL PRODUCTO, STOCK, PRECIO, NOMBRE DE LA CATEGORIA
ORDENARLOS POR STOCK DE PRODUCTO DE FORMA DESCENDENTE, MOSTRAR
TODOS AQUELLOS CUYO STOCK ES SUPERIOR A 50.
SELECT Nom_Producto, Sto_Producto, Pre_Producto, Nom_Categoria FROM productos p, categorias cWHERE c.Cod_Categoria=p.Cat_Producto AND Sto_Producto >50
ORDER BY Sto_Producto DESC
En esta condición se indica la
relación entre la tabla
Categorias y Productos
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 12/15
Diseño de Sistemas y Base de datos - 12 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
El resultado es el siguiente:
FUNCIONES DE AGREGADO:
COUNT(* | NbreCampo): Cuenta registros.
SUM(NbreCampo): Calcula el total o suma el valor campo indicado.
MAX(NbreCampo): Calcula el máximo del valor campo indicado.
MIN(NbreCampo): Calcula el mínimo del valor campo indicado.AVG(NbreCampo): Calcula el promedio del valor campo indicado.
CALCULAR LA CANTIDAD DE PRODUCTOS
SELECT CANTIDAD_PRODUCTO=COUNT(*) FROM productos
El resultado es el siguiente:
CALCULAR EL PRECIO MAXIMO DE LOS PRODUCTOSSELECT Precio_Max=MAX(Pre_Producto) FROM productos
El resultado es el siguiente:
CALCULAR EL PRECIO MINIMO DE LOS PRODUCTOS
SELECT Precio_Min=MIN(Pre_Producto) FROM productos
El resultado es el siguiente:
CALCULAR EL IMPORTE TOTAL DE TODOS LOS PRODUCTOS
SELECT Importe_Total=SUM(Pre_Producto*Sto_Producto) FROM productos
El resultado es el siguiente:
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 13/15
Diseño de Sistemas y Base de datos - 13 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
CALCULAR EL PROMEDIO DE PRECIOS DE TODOS LOS PRODUCTOS
SELECT Promedio_Precio= AVG(Pre_Producto) FROM productos
El resultado es el siguiente:
MOSTRAR EL NOMBRE DE LA CATEGORIA Y LA CANTIDAD DE PRODUCTOS PARA
CADA CATEGORIA
SELECT Nom_Categoria, Cantidad_Productos=COUNT(*) FROM categorias c, productos pWHERE c.Cod_Categoria = p.Cat_Producto GROUP BY Nom_categoria
El resultado es el siguiente:
MOSTRAR EL NOMBRE DE LA CATEGORIA Y IMPORTE TOTAL PARA CADA CATEGORIA
SELECT Nom_Categoria, Importe_Total=SUM(Pre_Producto*Sto_Producto) FROM categorias c, productos pWHERE c.Cod_Categoria = p.Cat_Producto GROUP BY Nom_categoria
El resultado es el siguiente:
MOSTRAR EL NOMBRE DE LA CATEGORIA Y EL PRECIO MAXIMO DE LOS PRODUCTOS
PARA CADA CATEGORIA
SELECT Nom_Categoria, Precio_Max=MAX(Pre_Producto) FROM categorias c, productos pWHERE c.Cod_Categoria = p.Cat_Producto GROUP BY Nom_categoria
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 14/15
Diseño de Sistemas y Base de datos - 14 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
El resultado es el siguiente:
MOSTRAR EL NOMBRE DE LA CATEGORIA Y EL PRECIO MINIMO DE LOS PRODUCTOS
PARA CADA CATEGORIA
SELECT Nom_Categoria, Precio_Min=Min(Pre_Producto) FROM categorias c, productos pWHERE c.Cod_Categoria = p.Cat_Producto GROUP BY Nom_categoria
El resultado es el siguiente:
MOSTRAR EL NOMBRE DE LA CATEGORIA Y EL PRECIO PROMEDIO DE LOS
PRODUCTOS PARA CADA CATEGORIA
SELECT Nom_Categoria, Precio_Prom= AVG(Pre_Producto) FROM categorias c, productos pWHERE c.Cod_Categoria = p.Cat_Producto GROUP BY Nom_categoria
El resultado es el siguiente:
MOSTRAR EL NOMBRE DE LA CATEGORIA Y IMPORTE TOTAL PARA CADA CATEGORIA,
DE TODAS AQUELLAS CUYO IMPORTE TOTAL ES MENOR QUE 1000 Y ORDENARLO
POR EL IMPORTE TOTAL DE FORMA DESCENDENTE.
SELECT Nom_Categoria, Importe_Total=SUM(Pre_Producto*Sto_Producto) FROM categorias c, productos p
WHERE c.Cod_Categoria = p.Cat_Producto GROUP BY Nom_categoria
7/26/2019 BD_clase3
http://slidepdf.com/reader/full/bdclase3 15/15
Diseño de Sistemas y Base de datos - 15 - UPN – Ingeniería Empresarial
Docente: Mg. Ing. Dávila Rodríguez Víctor [email protected]
Trujillo – Perú [email protected]
HAVING SUM(Pre_Producto*Sto_Producto)<1000ORDER BY SUM(Pre_Producto*Sto_Producto) DESC
El resultado es el siguiente:
URLS:
Ejemplos de SELECT
http://msdn.microsoft.com/es-es/library/ms187731.aspx
Manual de SELECT
http://www.devjoker.com/contenidos/Tutorial-SQL/14/Consultar-datos-
SELECT.aspx
Funciones integradas (Transact SQL)
http://msdn.microsoft.com/es-es/library/ms174318