Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es E.T.S. Ingeniería Informática Práctica 2: CONSULTAS 1 INTRODUCCIÓN...1 2 CREACIÓN DE CONSULTAS... 2 2.1 VISTA DISEÑO/HOJA DE DATOS/SQL... 3 2.2 ESPECIFICACIÓN DE CRITERIOS DE ORDENACIÓN.... 4 2.3 ESPECIFICACIÓN DE CRITERIOS DE SELECCIÓN.... 4 2.3.1 Ejemplos prácticos de criterios que se pueden utilizar....5 2.4 ESTABLECER PROPIEDADES.... 6 2.5 DISEÑO DE CONSULTAS CON CAMPOS CALCULADOS.... 7 2.5.1 Funciones en campos calculados....7 3 CONSULTAS DE MÚLTIPLES TABLAS.... 8 3.1 TIPOS DE COMBINACIONES... 9 4 CONSULTAS CON TOTALES...10 5 CONSULTAS CON PARÁMETROS...10 1 Introducción Las consultas o vistas permiten formular y almacenar preguntas (query) sobre datos almacenados en las tablas. Se comportan como una tabla base y se puede a su vez definir una nueva consulta sobre ella. Al diseñar una consulta, es posible: Seleccionar campos. No es necesario incluir todos los campos. Seleccionar registros. Se visualizan sólo los registros que cumplen una condición. Ordenar registros. Crear campos calculados. Contienen el resultado de un cálculo. Usar dicha consulta como origen de los datos para formularios, informes y otras consultas. Modificar datos de tablas. Las consultas de acciones permiten actualizar, eliminar o añadir grupos de registros.
2 Creación de consultas Para crear una consulta existen dos posibilidades: 1. Vista Diseño: Para diseñar la consulta especificando los campos y las condiciones que deben cumplir. 2. Asistente para consultas: Plantea preguntas sobre los campos que desea incluir en la consulta y después la crea automáticamente. A continuación se muestra la ventana (en vista Diseño) que se utiliza para diseñar la consulta. La parte superior contiene las tablas que participan en la consulta con sus relaciones. En la cuadrícula de la parte inferior se especifica de qué forma se filtran los datos para obtener un subconjunto de ellos que cumplan una condición determinada. Se pueden arrastrar los campos a incluir en la consulta, desde la lista de campos que aparecen en la parte superior hasta la cuadrícula en la parte inferior. Cuando se quieren agregar todos los campos, se arrastra el asterisco (*). Después de realizar una consulta de selección, Microsoft Access recopila los datos en una hoja de respuestas dinámica. Dicha hoja se comporta como una tabla y tiene la misma apariencia, para visualizarla hay que usar la vista Hoja de datos. Pág. 2 de 10
2.1 Vista diseño/hoja de datos/sql Existen tres formas (pantallas) para trabajar con las consultas: Vista Diseño. Permite diseñar la consulta Vista Hoja de datos. Muestra el resultado de la consulta Vista SQL. Utiliza la interface SQL para diseñar la consulta. Es equivalente a diseñar la consulta en vista diseño. Es posible crear una consulta o modificar una existente mediante la vista SQL, al igual que desde la vista diseño. EJERCICIO 1 Diseñar una consulta de la tabla Clientes de la base de datos Neptuno que muestre el ID cliente y su compañía. Observar las diferencias entre el diseño mediante la vista Diseño y vista SQL. Pág. 3 de 10
2.2 Especificación de criterios de ordenación. A menudo es más sencillo interpretar los datos si se presentan ordenados. Suele resultar muy útil crearse una consulta que ordene los datos y utilizarla como origen de los datos del formulario, informe etc. Para especificar un orden: Hacer clic en la celda Orden del campo que desee ordenar. Se puede seleccionar "Ascendente" o "Descendente". Cuando se especifique orden para varios campos, se ordenará primero por el campo situado más a la izquierda. No es posible ordenar por campos Memo u objetos OLE. EJERCICIO 2 En la tabla Productos, visualizar el nombre, categoría y precio de los productos ordenados por categoría y alfabéticamente por nombre de producto (dentro de cada categoría). 2.3 Especificación de criterios de selección. Permite limitar la hoja de respuesta dinámica de manera que solo se visualizan los registros que cumplen el criterio de selección. Para especificar criterios se utiliza una expresión que puede escribirse: Directamente en la celda "Criterios". Desde la celda "Criterios" en la opción "Generar". Pág. 4 de 10
2.3.1 Ejemplos prácticos de criterios que se pueden utilizar. Las expresiones que se escriben en la celda de criterios son de la forma: Rango de registros. Entre 02/02/93 Y fecha() >= Gómez Registro entre 02/02/93 y fecha del sistema. Todos los nombres desde Gómez en adelante. Con caracteres comodín. M* Que empiecen por M??Z De tres caracteres y que terminen en Z El signo de interrogación representa un sólo carácter individual, situado en la misma posición que el signo de interrogación. El asterisco representa cualquier número de caracteres. Que no coinciden con un valor. Negado T* Que no empiecen por T. Registros incluidos en una lista de valores. En(Alemania;Canadá;Italia) Incluir cálculos en criterios. Entre Fecha() Y Fecha()-7 Si en el cálculo interviene un nombre de campo aparece entre corchetes. Para especificar más de un criterio en un mismo campo. Utilizar Y o O. "Alemania" O "Canadá". Para especificar más de un criterio en distintos campos. En el caso de Y utilizar la misma línea de criterios. En el caso de O utilizar líneas distintas. Para especificar registros que contienen valores. Es negado Nulo. Registros que contienen algún valor en dicho campo. EJERCICIO 3 En la tabla Pedidos, visualizar aquellos pedidos cuya fecha de entrega es más de treinta días posterior a la fecha del pedido (fecha de entrega > fecha de pedido +30) o bien con un cargo superior a 100 $. Pág. 5 de 10
2.4 Establecer propiedades. Es posible establecer propiedades que determinen las características de una consulta, de un campo y de una lista de campos. Propiedades de consulta. Determinan el comportamiento de la consulta en general. Ej. no permitir que la consulta devuelva valores duplicados. Para establecer ésta propiedad en el menú Ver elija Propiedades. Propiedades de campo. Determinan las características de presentación de un campo. Ej. mostrar una fecha en un formato determinado. Los campos de una consulta heredan las propiedades que tienen en la tabla o consulta subyacente. Al modificar una propiedad en la consulta, se ignorará la configuración del diseño de la tabla. EJERCICIO 4 Visualizar las fechas de pedidos sin duplicados y con formato fecha larga. EJERCICIO 5 En la tabla de productos mostrar el precio y nombre de las tres cervezas más baratas (el nombre del producto empieza por cerveza). Pág. 6 de 10
2.5 Diseño de consultas con campos calculados. Al añadir campos a una consulta no hay que limitarse únicamente a campos de la tabla o consulta subyacente, pueden añadirse campos que sean expresiones. 1. En la celda Campo vacía, introduzca una expresión. Si incluye un nombre de campo deberá ir entre corchetes. 2. Puede cambiar el nombre del campo. Un campo calculado puede combinar texto de dos campos. Por ej. puede crear un campo llamado Nombre_completo que combine nombres procedentes de los campos Apellidos y Nombre mediante la expresión: [Nombre]& & [Apellidos] 2.5.1 Funciones en campos calculados. Se pueden utilizar funciones en las expresiones de campos calculados de forma que se visualiza sólo parte del campo, se modifica el formato, etc. Campos tipo texto: Para obtener datos que se encuentran en parte de un campo, puede crear un campo calculado que utilice una función para extraer únicamente ciertos caracteres de los campos tipo texto. La sintaxis de estas funciones es: Izq (ExpresiónCadena;número) Der(ExpresiónCadena;número) Medio(ExpresiónCadena;inicio,número) ExpresiónCadena: Es un nombre de campo o una expresión de texto. Número: Es el número de caracteres que desea extraer. Inicio: La posición del primer carácter que desea extraer. Pág. 7 de 10
Campos tipo fechas: Para los campos tipo fecha es útil la función ParcFecha cuya sintaxis es: ParcFecha(Parte Fecha;fecha) Parte Fecha. Es la abreviatura de la parte de la fecha que desea obtener. Ej. aaaa para año con cuatro dígitos. t para un trimestre. fecha. nombre de campo con datos tipo Fecha/Hora o un literal. ej. 12/12/90 EJERCICIO 5 Para los productos de la categoría 3, crear un campo calculado que será el nuevo precio del producto. Se calculará como el precio anterior más el 15%. Presentar además el nombre del producto con solamente los cinco primeros caracteres. La expresión que habrá que poner en campo será: Nombrereducido: Izq([Nombre de producto];5) 3 Consultas de múltiples tablas. Para obtener datos de varias tablas es suficiente con incluirlas en la consulta y seleccionar los campos deseados. EJERCICIO 6 Basándose en las tablas Pedidos y Clientes, mostrar los campos: Id de pedido, fecha de pedido, Id de cliente, dirección y ciudad del cliente. Deben aparecer únicamente los pedidos posteriores al 22/8/1997. Pág. 8 de 10
3.1 Tipos de combinaciones Cuando se obtienen datos de varias tablas, es posible modificar la forma en que se combinan dichas tablas. Es necesario seleccionar y activar la línea que une las tablas (línea de combinación) y aparecerá el cuadro de diálogo Propiedades de la combinación: Opción 1. Es la opción por defecto. Permite visualizar sólo los registros que tengan correspondencia. En este caso los pedidos que tengan IdCliente relleno (no nulo) y los clientes que tengan algún pedido. Opción 2. Opción 3. Visualiza todos los clientes tengan pedidos o no. Visualiza todos los pedidos tengan cliente o no. EJERCICIO 7 Modifique la consulta anterior de forma que aparezcan todos los clientes aunque no hayan realizado ningún pedido. Para comprobarlo añada clientes nuevos a la tabla de clientes. Pág. 9 de 10
4 Consultas con totales. Las consultas de totales permiten realizar cálculos sobre grupos de registros. Los tipos de cálculos (funciones) más utilizados son: Suma Promedio Min Max Cuenta Total de los valores de un campo. Promedio de valores de un campo El menor de un campo El mayor de un campo Numero de valores de un campo (sin contar nulos) Al ejecutar la consulta, se muestra un conjunto de registros no actualizables. Para diseñar una consulta de totales: 1. En el menú Ver elija Totales. 2. En la cuadrícula QBE aparecerá la fila Total; de forma predeterminada aparecerá "Agrupar por" en la celda total. 3. Seleccione el total deseado (suma, promedio,..). EJERCICIO 8 Calcular el número total de productos, el precio unitario promedio, el precio máximo y el mínimo. EJERCICIO 9 Obtener el número total de productos por categoría y el precio total por categoría. Ordenado de mayor a menor por el precio total por categoría. Modificar la consulta para que no se incluyan los productos que estén suspendidos y que aparezcan sólo las categorías con más de tres productos. 5 Consultas con parámetros Si ejecuta con frecuencia la misma consulta de selección pero cambiando los criterios de selección (parámetros), es conveniente crear una consulta con parámetros. Cada vez que ejecute la consulta, se pedirá los criterios en el cuadro de diálogo Parámetros de la consulta. Para diseñar una consulta de totales: 1. En criterios de cada campo que desea utilizar como parámetro, introduzca entre corchetes un mensaje de petición de datos. EJERCICIO 10 Obtener el número total de productos por categoría y el precio total por categoría. La categoría es un parámetro que se solicita por pantalla. Pág. 10 de 10