Ti. Sql.Caso1al9.Consultas
-
Upload
juan-martinez-cataldi -
Category
Technology
-
view
1.180 -
download
0
Transcript of 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
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
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.
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
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
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.
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
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.
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'
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) ...
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.
1° Consultas de Selección Ejemplo
SELECT ALL
FROM Empleados
SELECT * FROM
Empleados
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
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.
2° Consultas de Acción Ejemplo
DELETE FROM
Empleados WHERE
Cargo = 'Vendedor'
2° Consultas de acciónOtras INSERT INTO Agrega un registro en una
tabla. UPDATE Crea una consulta de
actualización.
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
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
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
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
[ ... ]]
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.
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
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"));
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"));
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];
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"));
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"));
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));
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;
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));
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;
Preguntas?