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.
Ejercicio
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.
Tabla: PELICULA.
Campos a mostrar: título, soporte, duración, argumento y género.
Ordena ascendentemente por la columna “Titulo”.
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 campo "Genero" tenga el valor que hemos seleccionado.
Consulta con diferentes géneros y comprueba que funciona correctamente.
Guarda los cambios.
Cierra la consulta.
Contenidos
1.3. Consultas con varios parámetros
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.
Ejercicio
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.
Tabla: PELICULA.
Campos: "Id_pelicula", "Titulo", "Director", "Soporte" y "Duracion".
En la fila Criterio columna Soporte escribe :Soporte y en la columna Duracion escribe :Duracion.
Guarda la consulta con nombre “CP_sopd_pelis”.
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 los cambios.
Cierra la consulta.
Contenidos
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”.
BETWEEN a AND b (ENTRE a Y 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:
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 ID y Soporte:
Esto provocará que se seleccionen aquellas películas cuyos valores coincidan con los introducidos (en el ejemplo hemos introducido 1 y DVD):
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 de texto.
Ejercicio
3.1.1. Consulta 1
Vamos a crear una consulta para filtrar aquellas películas que se encuentran entre dos IDs.
Crea una consulta en modo de diseño.
Tabla: PELICULA.
Campos: "Id_pelicula", "Titulo", "Director" y "Soporte".
Columna "Id_pelicula". Establece un criterio para que filtre las películas entre un ID inicial y un ID final.
Ejecuta la consulta. Se mostrará el cuadro de diálogo para introducir los parámetros:
Cuidado con el orden de los parámetros porque en este caso están al revés; es decir, Base los pide en orden inverso.
Esto provocará que se seleccionen aquellas películas cuyos valores coincidan con los introducidos (en el ejemplo hemos seleccionado 0 y 3):
Guarda la consulta con nombre “CP_id_entre_pelis”.
Cierra la consulta.
3.1.2. Consulta 2
En el caso de los operadores textuales únicamente podremos utilizar el de igualación, ya que al introducir el valor, a los parámetros 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 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.
Guarda la consulta con nombre “CP_durgen_pelis”.
Cierra la consulta.
Contenidos
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.
LIKE
(COMO)
Condición de comparación de patrones. Sirve para especificar 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*).
4.1. Ejemplo práctico: videoclub
Como hemos comentado anteriormente, en el caso de los operadores textuales únicamente podemos utilizar el de igualación, ya que al introducir el valor, a los parámetros 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.
SIN EMBARGO:
Base NO PERMITE realizar consultas de parámetros con textos variables (*,_) ni caracteres especiales (por ejemplo, ?).
Ejercicio
Crear consulta
Crea una consulta en modo de diseño.
Tabla: PELICULA.
Campos: "Id_pelicula", "Titulo", "Director", "Anyo", "Soporte", "Duracion", "Genero" y "Argumento".
Establece un criterio para obtener las películas cuyo género comience por el texto "Hist".
Guarda la consulta con nombre “CP_genhist_pelis”.
Cierra la consulta.
Contenidos
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.
Ejercicio
Crear consulta
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.
Tabla: PELICULA.
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_Ycriterios”.
Cierra la consulta.
Contenidos
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.
Ejercicio
Crear consulta
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.
Tabla: PELICULA.
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.
No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.
Los reconocimientos se realizan en el apartado Fuentes de información.
Todas las capturas de pantalla tienen copyright y pertenecen a TuInsitutoOnline.com.
TuInstitutoOnline.com permite su uso siempre y cuando se muestren desde el dominio www.tuinstituoonline.com y NO PERMITE enlazar a ellas desde otros lugares.
Además, la estructura diseñada para mostrar el contenido de las unidades es propiedad de TuInstitutoOnline.com.