|
|
Informática
Bases de datos |
|
|
|
|
|
|
|
Base: Consultas compuestas. Parámetros y condiciones |
Duración aproximada: 2 sesiones. |
|
|
|
|
Objetivos |
- Concepto de parámetro.
- Realizar consultas con parámetros.
- Conocer los operadores de comparación.
- Conocer los operadores de texto.
- Realizar consultas comparativas.
|
|
|
|
Fuentes de información |
|
|
|
|
|
|
1. Consultas con parámetros
Las consultas que hemos visto hasta ahora no permitían la introducción de elementos dinámicos, sino que eran fijados de manera estática en el diseño de la consulta. Existe la posibilidad de que estos parámetros cambien de manera dinámica con el fin de ampliar las posibilidades de las consultas y flexibilizar sus resultados. Como era de esperar, Base permite crear consultas dinámicas que soliciten al usuario los filtros en tiempo real.
1.1. Parámetros
Los parámetros son expresiones que admiten la asignación de valores con el fin de alterar el comportamiento de una consulta. Estas expresiones permitirán al usuario la demanda de un determinado valor cada vez que se ejecute la consulta. Por ejemplo, podemos hacer que cada vez que se abra una consulta sobre la tabla PELICULA, nos pregunte qué IDs deseamos filtrar.
Por lo general, el formato de los parámetros es el siguiente:
:nombre del parámetro
Es decir, consistirá en la símbolo dos puntos seguido del nombre del parámetro.
Ejemplo videoclub
:fecha → Para indicar una fecha
:IDs → Para indicar un identificador
:anyo → Para indicar un año
1.2. Consultas con un parámetro
Vamos a ver un ejemplo de consulta con 1 sólo parámetro. |
| |
|
|
|
Vamos a crear una consulta que nos devuelva las películas que tenemos de un género de cine determinado.
- Abre la base de datos "videoclub".
- Crea una consulta en modo de diseño.
- Añade la tabla PELICULA.
- Haz clic en el botón Cerrar.
- Mediante el ratón, arrastra los campos a mostrar desde la tabla superior a las columnas inferiores: título, soporte, duración, argumento y género.
- Ve a la columna “Titulo”. En el apartado Orden pon el valor “ascendente”.
- Ve a la columna “Genero”. Desmarca la casilla Visible. En el apartado Criterio escribe el texto :Genero.
- El diseño debe quedar de la siguiente forma:
- Guarda la consulta con nombre “CP_GENERO_PELIS”.
- Ejecuta la consulta. Aparecerá un cuadro de diálogo para introducir el género sobre el que queremos consultar:
- En el campo Valor, escribe el nombre de un género de cine. Haz clic en Aceptar. Esto provocará que se seleccionen aquellas películas cuyo "Genero" tenga el valor que hemos seleccionado.
- Consulta con diferentes géneros y comprueba que funciona correctamente.
|
|
|
|
|
|
1.3. Consultas con más de un parámetro
Si pensamos en las posibilidades que tienen este tipo de consultas nos daremos cuenta de que podemos combinar diferentes parámetros que flexibilizarán los resultados. De hecho podemos poner más de un parámetro para configurar totalmente la consulta. |
|
|
|
|
|
Vamos a ver una consulta que nos permita seleccionar el soporte y la duración mediante parámetros.
- Crea una consulta en modo de diseño.
- Añade la tabla PELICULA.
- Selecciona los campos "Id_pelicula", "Titulo", "Director", "Soporte" y "Duracion".
- En la fila Criterio columna Soporte escribe :Soporte y en la columna Duracion escribe :Duracion.
- Ejecuta la consulta.
- Se mostrará, entonces, un cuadro de diálogo para introducir los parámetros Duracion y Soporte.
- Introduce valores que estén en la tabla (en el ejemplo hemos utilizado duración 180 y soporte DVD). Esto provocará que se seleccionen aquellas películas cuyos valores coincidan con los introducidos:
- Guarda la consulta con nombre “CP_SOPD_PELIS”.
|
|
|
|
|
|
2. Operadores de comparación
Tal y como vimos en la unidad anterior, las consultas en vista diseño contienen multitud de características que permiten ampliar las posibilidades de las consultas realizadas con el asistente. Una de éstas es la de poder introducir operadores de comparación que filtren los resultados con los que nos queremos quedar.
Para cualquier campo seleccionado en una consulta podemos establecer condiciones. Es decir, podemos escribir expresiones para filtrar los datos. Las expresiones se escribirán en la celda Criterio del campo correspondiente de la consulta. Tenemos los siguientes operadores:
Operador |
Significado |
< |
Condición de comparación “menor que”. |
> |
Condición de comparación “mayor que”. |
<= |
Condición de comparación “menor o igual que”. |
>= |
Condición de comparación “mayor o igual que”. |
= |
Condición de comparación “igual que”. |
<> |
Condición de comparación “distinto que”. |
ENTRE a Y b [BETWEEN a AND b] |
Condición para especificar un intervalo de valores. |
+, -, *, / |
Los operadores de suma, resta, multiplicación y división pueden combinarse para efectuar comparaciones con expresiones matemáticas. |
2.1. Ejemplo práctico: videoclub
Los siguientes ejemplos muestran cómo obtener diferentes resultados combinando las opciones anteriores. Suponemos seleccionados los campos "Id_pelicula", "Titulo" y "Director".
- Películas cuyo "Id_pelicula" sea menor que el valor 2:
- Películas cuya duración es mayor de 120:
- Películas cuyo "Id_pelicula" sea distinto de 1:
- Películas cuya duración esté entre 120 y 140 minutos:
Y el resultado, en ambos casos será el mismo:
3. Parámetros y operadores de comparación
En el apartado 1 hablábamos de operadores que se podían utilizar para filtrar los resultados dependiendo del tipo de éstos. Dichos operadores y los parámetros se pueden combinar para obtener consultas todavía más personalizadas, ya que lo habitual es que los valores numéricos utilicen algún operador numérico y los valores textuales utilicen operadores de texto.
3.1. Ejemplo práctico: videoclub
Los siguientes ejemplos muestran cómo obtener diferentes resultados combinando las opciones anteriores. Suponemos seleccionados los campos "Id_pelicula", "Titulo", "Director" y "Soporte".
- Películas cuyo "Id_pelicula" sea mayor que el valor :ID y cuyo "Soporte" sea :Soporte
- Al ejecutar consulta se mostrará un cuadro de diálogo para introducir los parámetros Duracion y Soporte (en el ejemplo hemos introducido 1 y DVD):
- Esto provocará que se seleccionen aquellas películas cuyos valores coincidan con los introducidos:
Como se puede observar, es igual de sencillo utilizar los parámetros solos que acompañados por los operadores. En este caso hemos aplicado el operador mayor (>) sobre el parámetro ID ya que éste es numérico. Si no lo hubiera sido deberíamos haber aplicado los operadores textuales. |
|
|
|
|
|
3.1.1. Consulta 1
Vamos a crear una consulta para filtrar aquellas películas que se encuentran entre dos IDs.
- Abre la base de datos "videoclub".
- Crea una consulta en modo de diseño.
- Añade la tabla PELICULA.
- Selecciona los campos "Id_pelicula", "Titulo", "Director" y "Soporte".
- Ve a la columna "Id_pelicula". En la fila criterio establece el valor BETWEEN :IDInicial AND :IDFinal
- Ejecuta la consulta. Se mostrará, entonces, un cuadro de diálogo para introducir los parámetros IDInicial e IDFinal (hemos seleccionado 0 y 3). Cuidado con el orden de los parámetros porque en este caso están al revés:
- Esto provocará que se seleccionen aquellas películas cuyos valores coincidan con los introducidos:
- Guarda la consulta con nombre “CP_ID_ENTRE”.
3.1.2. Consulta 2
En el caso de los operadores textuales únicamente podremos utilizar el de igualación, ya que los parámetros al introducir el valor, se les añaden comillas, con lo que únicamente se filtran aquellos valores que sean iguales al valor introducido. Un ejemplo sería el de seleccionar aquellas películas cuyo director sea uno determinado.
- Crea una consulta en modo de diseño.
- Añade la tabla PELICULA.
- Selecciona los campos "Id_pelicula", "Titulo", "Director" y "Soporte".
- Ve a la columna "Director". En la fila criterio establece el valor :Director
- Ejecuta la consulta. Se mostrará, entonces, un cuadro de diálogo para introducir el parámetro cuyo valor deberá ser exactamente igual al de la tabla:
- Esto provocará que se seleccionen aquellas películas cuyos valores coincidan con los introducidos:
- Guarda la consulta con nombre “CP_DIRECTOR”.
3.1.3. Consulta 3
- Crea una consulta con nombre CP_DURGEN_PELIS sobre la tabla PELICULA en la que se obtengan los campos "Id_pelicula", "Titulo", "Director", "Duracion" y "Genero" de las películas cuya duración sea mayor a una determinada y cuyo género sea uno determinado.
|
|
|
|
|
|
4. Operadores de texto
Para cualquier campo seleccionado en una consulta podemos establecer condiciones. Es decir, podemos escribir expresiones para filtrar los datos. Las expresiones se escribirán en la celda Criterio del campo correspondiente de la consulta. Tenemos los siguientes operadores:
Operador |
Significado |
'' |
Condición de comparación “igual que”. Con comillas simples, no dobles. |
* |
Comodín que significa cualquier cadena de caracteres. Se utiliza junto con el operador COMO. |
? |
Comodín que significa un carácter cualquiera y sólo uno. Se utiliza junto con el operador COMO. |
COMO
(LIKE) |
Condición de comparación de patrones. Sirve para solicitar al usuario uno o varios caracteres por los que buscar y, a continuación, buscar registros que comiencen o contengan los caracteres especificados por el usuario.
El campo de datos contiene la expresión indicada. El espacio reservado (*) indica si la expresión x aparece al principio del contenido del campo (x*), al final (*x) o dentro de este (*x*). |
|
|
|
|
Base no permite realizar consultas de parámetros con textos variables (*,_) ni caracteres especiales (por ejemplo, ?). |
|
|
|
|
4.1. Ejemplo práctico: videoclub
Como hemos comentado anteriormente, en el caso de los operadores textuales únicamente podremos utilizar el de igualación, ya que los parámetros al introducir el valor, se les añaden comillas, con lo que únicamente se filtran aquellos valores que sean iguales al valor introducido. Un ejemplo sería el de seleccionar aquella película cuyo título sea uno determinado.
- Datos de la película cuyo título es 'Piratas del Caribe':
- Películas cuyo título contenga la sílaba "de", es decir, se encuentre en cualquier lugar dentro del título:
- Películas cuyo director comience por la letra "H":
5. Parámetros y operadores de texto
En el apartado 1 hablábamos de operadores que se podían utilizar para filtrar los resultados dependiendo del tipo de éstos. Dichos operadores y los parámetros se pueden combinar para obtener consultas todavía más personalizadas, ya que lo habitual es que los valores numéricos utilicen algún operador numérico y los valores textuales utilicen operadores de texto. |
|
|
|
|
|
Crear consulta
- Crea una consulta en modo de diseño.
- Añade la tabla PELICULA.
- Selecciona los campos "Id_pelicula", "Titulo", "Director", "Anyo", "Soporte", "Duracion", "Genero" y "Argumento".
- Ve a la columna "Titulo". En la fila criterio establece el valor :Titulo
- Ejecuta la consulta. En el cuadro de diálogo introduce el parámetro cuyo valor deberá ser exactamente igual al de la tabla. Esto provocará que se seleccione la información de aquella película cuyo título coincida con el introducido.
- Guarda la consulta con nombre “CP_TITULO”.
|
|
|
|
|
|
6. Combinación de operadores
Hemos visto que existen diversos operadores que se pueden utilizar dependiendo del tipo de campo. Además de utilizarlos de forma separada, podemos combinarlos con el fin de filtrar aún más los resultados.
6.1. Cumplir todos los criterios (Y)
La primera opción cuando combinamos parámetros y operadores es que se cumplan todos los criterios a la vez. En este caso, pondremos todas las operaciones y filtros en la misma fila del campo Criterio. |
|
|
|
|
|
Vamos a realizar una consulta que devuelva las películas con el soporte especificado, con el género especificado y con una duración entre 2 valores que especifiquemos.
- Crea una consulta en modo de diseño.
- Añade la tabla PELICULA.
- Selecciona los campos "Genero, "Titulo", "Director", "Soporte", "Duracion" y "Argumento".
- Ordena ascendentemente por "Genero" y "Titulo".
- Establece los filtros en la fila Criterio.
- Por ejemplo:
- Ejecuta la consulta. Comprueba que se muestran las películas que cumplen todos los criterios.
- Guarda la consulta con nombre “CP_COMBI_1”.
|
|
|
|
|
|
6.2. Cumplir alguno de los criterios (O)
Otra posibilidad es que se cumpla, al menos, uno de los criterios, es decir, en lugar de que se cumplan todos a la vez que puedan hacerlo por separado. En este caso, pondremos las operaciones y filtros en filas distintas del campo Criterio. |
|
|
|
|
|
Vamos a realizar una consulta que devuelva las películas con el soporte especificado o cuyo título contenga la letra "p" o que tengan una duración entre 2 valores que especifiquemos.
- Crea una consulta en modo de diseño.
- Añade la tabla PELICULA.
- Selecciona los campos "Genero, "Titulo", "Director", "Soporte", "Duracion" y "Argumento".
- Ordena ascendentemente por "Genero" y "Titulo".
- Establece los filtros en la fila Criterio pero en distintas filas.
- Por ejemplo:
- Ejecuta la consulta. Comprueba que se muestran las películas que cumplen alguno de los criterios.
- Guarda la consulta con nombre “CP_COMBI_2”.
Cerrar la base de datos
- Guarda los cambios en la base de datos.
- Cierra la base de datos "videoclub".
|
|
|
|
|
|
|
Créditos |
|
|
|
|
|