Ti. Sql.Caso1al9.Consultas

41
Manuel Ugarte 3288 C1428BTB. Buenos Aires. Argentina Tel: 4544-0779 [email protected] www.mcmc.com.ar Lenguaje de Consulta Estructurado SQL (Structured Query Language) ▪ Caso 1 al 9 Tecnología de la Información

Transcript of Ti. Sql.Caso1al9.Consultas

Page 1: Ti. Sql.Caso1al9.Consultas

Manuel Ugarte 3288C1428BTB. Buenos Aires. ArgentinaTel: [email protected]

www.mcmc.com.ar

Lenguaje de Consulta Estructurado SQL (Structured Query Language) ▪ Caso 1 al 9 ▪ Tecnología de la Información

Page 2: Ti. Sql.Caso1al9.Consultas

CONTENIDO Introducción 1° Consultas de Selección 2° Consultas de Acción 3° Consultas de Unión Internas 4° Consultas de Unión Externas 5° Resolución de SQL Casos del 1 al 9

Page 3: Ti. Sql.Caso1al9.Consultas

Introducción SQL es un lenguaje de Consulta

Estructurado que se usa para consultar y actualizar bases de datos relacionales. Vamos a ver el aspecto general de este lenguaje y nos servirá para familiarizarnos con el mismo.

Page 4: Ti. Sql.Caso1al9.Consultas

Cuando creamos una consulta de datos, Access permite mostrarnos esa consulta de tres formas:

Vista: Permite ver el resultado de la consulta

Diseño: Es la vista que ya conocemos para construir la consulta.

SQL: Vista en formato de instrucciones SQL

Page 5: Ti. Sql.Caso1al9.Consultas

CONTENIDO Introducción 1° Consultas de Selección 2° Consultas de Acción 3° Consultas de Unión Internas 4° Consultas de Unión Externas 5° Resolución de SQL Casos del 1 al 9

Page 6: Ti. Sql.Caso1al9.Consultas

1° Consultas de Selección

Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. Este conjunto de registros puede ser modificable.

Page 7: Ti. Sql.Caso1al9.Consultas

1° Consultas de Selección

Consultas básicas La sintaxis básica de una consulta de

selección es la siguiente: SELECT

Campos FROM

Tabla

Page 8: Ti. Sql.Caso1al9.Consultas

1° Consultas de Selección

En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo: SELECT

Nombre, Teléfono FROM

Clientes Esta sentencia devuelve un conjunto de resultados con el campo nombre y teléfono de la tabla clientes.

Page 9: Ti. Sql.Caso1al9.Consultas

En determinadas ocasiones nos puede interesar incluir una columna con un texto fijo en una consulta de selección, por ejemplo, supongamos que tenemos una tabla de empleados y deseamos recuperar las tarifas semanales de los electricistas, podríamos realizar la siguiente consulta:

SELECT Empleados.Nombre, 'Tarifa semanal: ', Empleados.TarifaHora * 40

FROM Empleados WHERE Empleados.Cargo = 'Electricista'

Page 10: Ti. Sql.Caso1al9.Consultas

1° Consultas de Selección Otras ORDER BY : Ordenar los registros

SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY Nombre

INDEX : Uso de Índices de las tablas SELECT ... FROM Tabla (INDEX=0) ...

Page 11: Ti. Sql.Caso1al9.Consultas

1° Consultas de Selección Consultas con Predicado

Predicado Descripción

ALL Devuelve todos los campos de la tabla

TOP Devuelve un determinado número de registros de la tabla

DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente

DISTINCTOW

Omite los registros duplicados basándose en la totalidad del registro y no sólo en los campos seleccionados.

Page 12: Ti. Sql.Caso1al9.Consultas

1° Consultas de Selección Ejemplo

SELECT ALL

FROM Empleados

SELECT * FROM

Empleados

Page 13: Ti. Sql.Caso1al9.Consultas

CONTENIDO Introducción 1° Consultas de Selección 2° Consultas de Acción 3° Consultas de Unión Internas 4° Consultas de Unión Externas 5° Resolución de SQL Casos del 1 al 9

Page 14: Ti. Sql.Caso1al9.Consultas

2° Consultas de Acción Las consultas de acción son aquellas que

no devuelven ningún registro, son las encargadas de acciones como añadir y borrar y modificar registros. Tanto las sentencias de actualización como las de borrado desencaderán (según el motor de datos) las actualizaciones en cascada, borrados en cascada, restricciones y valores por defecto definidos para los diferentes campos o tablas afectadas por la consulta.

Page 15: Ti. Sql.Caso1al9.Consultas

2° Consultas de Acción Ejemplo

DELETE FROM

Empleados WHERE

Cargo = 'Vendedor'

Page 16: Ti. Sql.Caso1al9.Consultas

2° Consultas de acciónOtras INSERT INTO Agrega un registro en una

tabla. UPDATE Crea una consulta de

actualización.

Page 17: Ti. Sql.Caso1al9.Consultas

CONTENIDO Introducción 1° Consultas de Selección 2° Consultas de Acción 3° Consultas de Unión Internas 4° Consultas de Unión Externas 5° Resolución de SQL Casos del 1 al 9

Page 18: Ti. Sql.Caso1al9.Consultas

3° Consultas de Unión Internas Las vinculaciones entre tablas se realizan

mediante la cláusula INNER que combina registros de dos tablas siempre que haya concordancia de valores en un campo común. Su sintaxis es:

SELECT campos FROM

tb1 INNER JOIN tb2 ON tb1.campo1 comp tb2.campo2

Page 19: Ti. Sql.Caso1al9.Consultas

CONTENIDO Introducción 1° Consultas de Selección 2° Consultas de Acción 3° Consultas de Unión Internas 4° Consultas de Unión Externas 5° Resolución de SQL Casos del 1 al 9

Page 20: Ti. Sql.Caso1al9.Consultas

4° Consultas de Unión Externas Se utiliza la operación UNION para crear

una consulta de unión, combinando los resultados de dos o más consultas o tablas independientes. Su sintaxis es:

[TABLE] consulta1 UNION [ALL] [TABLE] consulta2 [UNION [ALL] [TABLE] consultan

[ ... ]]

Page 21: Ti. Sql.Caso1al9.Consultas

La cláusula WHERE La cláusula WHERE puede usarse para

determinar qué registros de las tablas enumeradas en la cláusula FROM aparecerán en los resultados de la instrucción SELECT. Después de escribir esta cláusula se deben especificar las condiciones expuestas en los apartados anteriores. Si no se emplea esta cláusula, la consulta devolverá todas las filas de la tabla. WHERE es opcional, pero cuando aparece debe ir a continuación de FROM.

Page 22: Ti. Sql.Caso1al9.Consultas

CONTENIDO Introducción 1° Consultas de Selección 2° Consultas de Acción 3° Consultas de Unión Internas 4° Consultas de Unión Externas 5° Resolución de SQL Casos del 1 al 9

Page 23: Ti. Sql.Caso1al9.Consultas

Consulta 1 Obtener el nombre y el domicilio de los clientes que viven en la provincia de Misiones

SELECT [A1/CLIENTES].NOM_CLI, [A1/CLIENTES].DOM_CLI

FROM [A1/CLIENTES] WHERE

((([A1/CLIENTES].PROV_CLI)="MISIONES"));

Page 24: Ti. Sql.Caso1al9.Consultas
Page 25: Ti. Sql.Caso1al9.Consultas

Consulta 2 Obtener el nombre, domicilio y provincia de los clientes que viven en la provincia de Misiones o de

Río Negro SELECT [A1/CLIENTES].NOM_CLI,

[A1/CLIENTES].DOM_CLI, [A1/CLIENTES].PROV_CLI

FROM [A1/CLIENTES] WHERE

((([A1/CLIENTES].PROV_CLI)="MISIONES" Or ([A1/CLIENTES].PROV_CLI)="RÍO NEGRO"));

Page 26: Ti. Sql.Caso1al9.Consultas
Page 27: Ti. Sql.Caso1al9.Consultas

Consulta 3 Obtener el importe total en pesos por factura y producto, especificando el número de factura, el código del producto y el importe total.

SELECT [A3/ITEM VENTA].NUM_FACT, [A3/ITEM VENTA].COD_PROD, ([A3/ITEM VENTA].CANT_PROD*[A3/ITEM VENTA].[P$_PROD]) AS [IMPORTE TOTAL]

FROM [A3/ITEM VENTA];

Page 28: Ti. Sql.Caso1al9.Consultas
Page 29: Ti. Sql.Caso1al9.Consultas

Consulta 4 Sobre la consulta 3, obtener solo el importe total para el producto a.

SELECT [A3/ITEM VENTA].NUM_FACT, [A3/ITEM VENTA].COD_PROD, ([A3/ITEM VENTA].CANT_PROD*[A3/ITEM VENTA].[P$_PROD]) AS [IMPORTE TOTAL]

FROM [A3/ITEM VENTA] WHERE ((([A3/ITEM VENTA].COD_PROD)="a"));

Page 30: Ti. Sql.Caso1al9.Consultas
Page 31: Ti. Sql.Caso1al9.Consultas

Consulta 5 Sobre la consulta 3, obtener solo el importe total para las facturas mayores iguales a 2 y menores iguales a 5 y solo para el producto código c

SELECT Consulta3.NUM_FACT, Consulta3.COD_PROD, Consulta3.[IMPORTE TOTAL]

FROM Consulta3 WHERE (((Consulta3.NUM_FACT) Between

2 And 5) AND ((Consulta3.COD_PROD)="c"));

Page 32: Ti. Sql.Caso1al9.Consultas
Page 33: Ti. Sql.Caso1al9.Consultas

Consulta 6 Sobre la consulta 3, obtener solo el importe total para los registros cuyo importe total sea mayor a 200.

SELECT Consulta3.[IMPORTE TOTAL], Consulta3.NUM_FACT, Consulta3.COD_PROD

FROM Consulta3WHERE (((Consulta3.[IMPORTE

TOTAL])>200));

Page 34: Ti. Sql.Caso1al9.Consultas
Page 35: Ti. Sql.Caso1al9.Consultas

Consulta 7 Obtener un listado de las facturas realizadas especificando número de factura, nombre del producto y cantidad vendida.

SELECT [A3/ITEM VENTA].NUM_FACT, [A2/PRODUCTO].NOM_PROD, [A3/ITEM VENTA].CANT_PROD

FROM [A2/PRODUCTO] INNER JOIN [A3/ITEM VENTA] ON [A2/PRODUCTO].COD_PROD = [A3/ITEM VENTA].COD_PROD;

Page 36: Ti. Sql.Caso1al9.Consultas
Page 37: Ti. Sql.Caso1al9.Consultas

Consulta 8 Obtener un listado de las facturas realizadas cuya cantidad sea mayor igual a 15 especificando número de factura, nombre del

producto y cantidad vendida. SELECT [A3/ITEM VENTA].NUM_FACT,

[A2/PRODUCTO].NOM_PROD, [A3/ITEM VENTA].CANT_PROD

FROM [A2/PRODUCTO] INNER JOIN [A3/ITEM VENTA] ON [A2/PRODUCTO].COD_PROD = [A3/ITEM VENTA].COD_PROD

WHERE ((([A3/ITEM VENTA].CANT_PROD)>=15));

Page 38: Ti. Sql.Caso1al9.Consultas
Page 39: Ti. Sql.Caso1al9.Consultas

Consulta 9 Obtener un listado de las facturas realizadas indicando número de factura, nombre del cliente, nombre del producto, cantidad y precio y el importe total.

SELECT [A3/ITEM VENTA].NUM_FACT, ([A3/ITEM VENTA].CANT_PROD*[A3/ITEM VENTA].[P$_PROD]) AS [IMPORTE TOTAL], [A2/PRODUCTO].NOM_PROD, [A3/ITEM VENTA].CANT_PROD, [A3/ITEM VENTA].[P$_PROD], [A1/CLIENTES].NOM_CLI

FROM ([A1/CLIENTES] INNER JOIN [A4/VENTAS] ON [A1/CLIENTES].COD_CLI = [A4/VENTAS].COD_CLI) INNER JOIN ([A2/PRODUCTO] INNER JOIN [A3/ITEM VENTA] ON [A2/PRODUCTO].COD_PROD = [A3/ITEM VENTA].COD_PROD) ON [A4/VENTAS].NUM_FACT = [A3/ITEM VENTA].NUM_FACT;

Page 40: Ti. Sql.Caso1al9.Consultas
Page 41: Ti. Sql.Caso1al9.Consultas

Preguntas?