Unidad 5. Consultas simples

En este tema, en primer lugar, vamos a ver qué es una consulta y para qué se utiliza.
En el segundo punto veremos cómo realizar una consulta básica utilizando el asistente.
Por último, veremos cómo realizar una consulta sobre varias tablas combinando el asistente con el modo Diseño.

1. Consultas
Las consultas son objetos que vamos a utilizar para visualizar parte de la información contenida en nuestras bases de datos desde una perspectiva más detallada y más adaptada a las necesidades concretas a una situación puntual, en contraposición al contenido total de las tablas de nuestra base de datos.
Se pueden realizar sobre una o varias tablas relacionadas y el resultado que devuelven se muestran también en forma de tabla.
Las consultas son muy útiles a la hora de construir formularios y, sobre todo, informes, como ya veremos en próximas unidades.
En OOo Base las consultas se pueden crear en modo Diseño, utilizando el asistente o utilizando SQL. SQL es el lenguaje estándar de creación y manipulación de bases de datos pero su aprendizaje queda fuera de los objetivos de este curso, por lo que nosotros vamos a aprender a realizar consultas, primero, de forma básica, utilizando el asistente y, luego, más complejas, en modo Diseño.

2. Creación de consultas sobre una tabla utilizando el asistente
Vamos a comenzar realizando una consulta que nos devuelva de la tabla Interpretes (ver Figura 5.1 ), que recordamos contenía intérpretes de distintas nacionalidades (ver Figura 5.2), el nombre, los apellidos y la nacionalidad de los que no son españoles. Para ello, teniendo seleccionada la sección «Consultas», nos situamos sobre el apartado de tareas y elegimos «Usar el asistente para crear consulta…». Nos aparece entonces la primera ventana del asistente donde debemos elegir qué campos queremos que se muestren, y seleccionamos entonces los campos Nombre, Apellidos,y Nacionalidad de la tabla Interpretes (ver Figura 5.3).

unidad5_html_795ecbd1.png

Figura 5.1. Diseño de la tabla Interpretes

unidad5_html_7ce00b30.png

Figura 5.2. Contenido de la tabla Interpretes

unidad5_html_m1b32751b_1.png

Figura 5.3. Selección de campos a mostrar en la consulta

A continuación, podemos elegir si queremos que se muestren ordenados en función de los valores de uno o varios campos. Nosotros vamos a seleccionar que se ordenen alfabéticamente por los apellidos del intérprete como aparece reflejado en la Figura 5.4.

unidad5_html_mdcb03cf_1.png

Figura 5.4. Criterios de ordenación del resultado de la consulta.

En el siguiente paso podemos elegir si queremos indicar uno o varios criterios de búsqueda; es decir, si queremos que las filas que se muestren cumplan alguna condición en particular. Como en nuestro caso el objetivo es mostrar sólo los intérpretes no españoles, debemos indicar que para el campo Nacionalidad no deseamos aquellos que contengan el valor «Español» (ver Figura 5.5).

unidad5_html_7c3e78c7_1.png

Figura 5.5. Criterios de búsqueda de la consulta.

A continuación, podemos elegir con qué nombre (alias), se mostrarán las cabeceras de las columnas de los campos que hemos elegido al mostrar el resultado de la consulta. En este caso, como los nombres de los campos son bastante claros simplemente les quitamos el nombre de la tabla que figura delante del nombre (ver Figura 5.6).

unidad5_html_m6bf3f3a0_1.png

Figura 5.6. Nombre de las cabeceras de columnas al presentar datos

Para finalizar, en la última ventana (ver Figura 5.7) se nos muestra un resumen con todas las opciones elegidas y es donde debemos indicar el nombre con el cuál se guardará la consulta, en nuestro caso, Consulta_Interpretes. Además podemos elegir si al finalizar queremos que se muestre el resultado de la consulta o se abra la consulta en modo Diseño para afinar y detallar mejor la consulta. Nosotros vamos a elegir que muestre el resultado ya que el modo Diseño lo veremos en el siguiente apartado y en la próxima unidad.

unidad5_html_1a77d95d_1.png

Figura 5.7. Resumen de la consulta y nombre de la consulta

Se muestra entonces el resultado de la consulta (ver Figura 5.8) donde podemos comprobar qué intérpretes tenemos almacenados que no son españoles.

unidad5_html_m34c321e0.png

Figura 5.8. Resultado de Consulta_Interpretes

Una vez cerramos la consulta, esta ya queda almacenada en la sección consultas y podemos hacer uso de ella en cualquier momento.

3. Creación de consultas sobre varias tablas combinando el asistente con el modo Diseño
Ahora vamos a realizar una consulta que nos muestre las películas junto con el nombre del género al que pertenecen. Gracias a esta consulta vamos a empezar a comprobar el gran potencial que tiene guardar la información distribuida en varias tablas estableciendo relaciones entre ellas.
Para realizar esta consulta primero vamos a utilizar el asistente para conseguir un primer “borrador” de la consulta que queremos realizar para, finalmente, acabar de concretarla en modo Diseño. Por tanto, empezamos de nuevo yendo a la sección tareas del tipo de objeto consulta y elegimos “Usar el asistente para crear consulta…”.
Ahora, en la ventana inicial del asistente, elegimos los campos Titulo, Director, Año y Formato de la tabla Peliculas (ver Figura 5.9)

unidad5_html_25458290_1.png

Figura 5.9. Selección de campo de tabla Peliculas

En la siguiente ventana (Figura 5.10) vamos a indicar que queremos que el resultado se ordene, en primer lugar, en función del campo Director, y, en caso de coincidir el director entre distintas películas, en función del campo Titulo.

unidad5_html_m496041d8_1.png

Figura 5.10. Criterios de ordenación para la consulta

En esta consulta no vamos a poner ninguna condición por la que filtrar los datos, por lo que nos vamos directamente a la ventana “Alias” (Figura 5.11), donde vamos a aprovechar para «maquillar» que el campo Titulo no tuviera tilde al crear dicho campo y ahora sí se la incluimos. Además, para que el campo Año quede más concreto lo vamos a presentar como Fecha de estreno.
Antes de finalizar con el asistente, en la ventana “Información general” del mismo, debemos incluir el nombre de la consulta, que en este caso va a ser Consulta_Peliculas_Generos, y vamos a indicar también que no queremos que se muestre el resultado de la consulta, sino que queremos seguir trabajando con ella en modo Diseño. Para esto último debemos activar la casilla “Modificar consulta” en dicha ventana (ver Figura 5.12).

unidad5_html_m5d4ae256_1.png

Figura 5.11. Modificación de los alias de los campos

unidad5_html_m7d31c26c_1.png

Figura 5.12. Nombre de la consulta e indicación de seguir modificándola

Nos debe aparecer entonces una ventana como la de la Figura 5.13. que es la ventana que permite crear consultas en modo Diseño. El entorno de trabajo en modo Diseño lo vamos a ver con más detenimiento en la siguiente unidad y en esta sólo nos vamos a centrar en los elementos específicos para conseguir la consulta que queremos realizar. En primer lugar, podemos ver que la ventana aparece dividida en dos partes bien diferenciadas: una que contiene la tablas que estamos utilizando en la consulta y otra con los campos que ya habíamos seleccionado en el asistente junto con una serie de opciones que podemos indicar para cada uno de ellos. Así, podemos ver que aparecen los campos Titulo, Director, Año y Formato junto con los alias que indicamos en el asistente y la opción de que se ordene la consulta en función del campo Director.

unidad5_html_m30ef4f9e_1.png

Figura 5.13. Ventana de diseño de consultas

Algo que seguro nos ha llamado la atención es por qué aparece el campo Titulo dos veces. La respuesta es que, debido a que en el orden en que queremos que se muestren los campos es: primero el campo Titulo, y luego el Director, y en el asistente hemos indicado que primero queremos la ordenación en función del nombre del director, y, en caso de repetirse dicho nombre, ordenar por el título de la película. La única forma de indicar esto es poniendo de nuevo el campo Titulo detrás de los otros cuatro, indicando que se ordene de manera ascendente pero desmarcando la casilla “Visible” para que no aparezca dos veces este campo en el resultado de la consulta.
Ya hemos visto entonces que en el modo Diseño nos aparecen los campos de Peliculas que deseamos pero aún no hemos hecho nada para ver el nombre del género de la película. Como el nombre del género es un campo de la tabla Generos lo primero que tenemos que hacer es indicar que queremos incluir dicha tabla en la consulta. Para ello, debemos seleccionar el icono “Añadir tablas” (ver Figura 5.14), que es el primero por la izquierda de los iconos de la fila inferior y elegir la tabla Generos.

figura0514.jpg

Figura 5.14. Añadir tablas a una consulta

Podemos observar que automáticamente OOo Base detecta que estas dos tablas están relacionadas. ¿Qué hubiera pasado si no hubieramos indicado en la unidad anterior que existe una relación? Pues lo mismo que si hubieramos intentado elegir los campos de ambas tablas directamente en el asistente, que la respuesta a la consulta (ver Figura 5.15) hubiera sido que cada fila de la primera tabla aparecería unida a cada una de las filas de la otra tabla sin ningún criterio, es decir, en nuestro caso tendríamos 90 filas (resultado del producto cartesiano de 10 filas de Peliculas por 9 que tenemos en Generos) de las cuales 80 no significan nada. Pero al haber indicado que existe la relación y detectarse en el modo Diseño conseguimos, sin necesidad de indicarlo explícitamente, que a la hora de mostrar todas las filas de Peliculas y Generos, sólo nos muestre aquellas donde el valor para el campo por el que están relacionadas (Genero e Id_genero respectivamente) sea el mismo, es decir, que sólo nos muestre juntas las filas de ambas tablas que realmente están relacionadas.

unidad5_html_7c6dfe7e_1.png

Figura 5.15. Parte del resultado de consultar Generos y Peliculas sin indicar que están relacionadas

Una vez hemos añadido la tabla Generos, elegimos qué campos queremos mostrar de ella. En este caso, nos basta con el campo Nombre (ver Figura 5.16)

unidad5_html_m6aed7695_1.png

Figura 5.16. Añadimos campos de segunda tabla

Una vez que hemos elegido el campo, no debemos olvidar comprobar que la opción “Visible” está marcada para que se muestre este campo en el resultado de la consulta (ver Figura 5.17).

figura0517.jpg

Figura 5.17. Opción visible del campo añadido marcada

En la opción “Alias” del campo Nombre de la tabla Generos vamos a mostrar la palabra “Género” para que cualquier usuario entienda mejor lo que mostrará esta columna (ver Figura 5.18).

unidad5_html_74a99900_1.png

Figura 5.18. Cambio de Alias del campo Nombre de Generos

Dentro del modo Diseño podemos comprobar si la consulta devuelve lo que queremos sin necesidad de cerrar esta ventana y lanzar la consulta desde el menú principal. Para ello, basta con seleccionar el icono de ejecución de la consulta que se encuentra situado el segundo por la derecha en la fila de iconos superiores. Así, nos aparece entonces en la parte superior de la ventana el resultado de la consulta (ver Figura 5.19).

figura0519.jpg

Figura 5.19. Resultado de la consulta dentro del modo Diseño

Si estamos conformes con el resultado, guardamos la consulta y podemos ver en la ventana principal (ver Figura 5.20) que las dos consultas de esta unidad aparecen ya almacenadas.

unidad5_html_m67dd1575_1.png

Figura 5.20. Consultas disponibles

4. Ejercicios propuestos
1.Crear la consulta Consulta_Interpretes del segundo apartado de esta unidad.
2.Crear la consulta Consulta_Peliculas_Generos del tercer apartado de esta unidad.

28 Respuestas a “Unidad 5. Consultas simples

  1. this page is excellent!
    I can’t believe it!
    Byee!

  2. Atasco total con la Consulta_Peliculas_Generos. Llevo más de una semana reinstalando OpenOffice y repitiendo tablas y consultas sin encontar el desatascador. Simplemente, al picar el icono de «Mostrar resultado de la consulta» aparece todo en blanco; pero si elimino la tabla «Generos» de la consulta, entonces se muestra correctamente.
    Sospecho que la cosa va por ahí = ¿cómo sabe OpenOfficeBase que La Guerra de las Galaxias es una película de Ciencia Ficción? Porque, por los datos introducidos hasta ahora, no entiendo que el programa pueda resolver esta adivinanza.
    Imagino que para escribir este Tutorial, primero has creado el Curso.odb completo, y después has empezado a escribirlo. Imagino que hay algún Formulario (o algo parecido) ya diseñado que ayuda a Consulta_Peliculas_Generos a saber que la Guerra de las Galaxias de es Ciencia-Ficción. ¿Me equivoco?
    Gracias por tu tiempo y atención, pero es que has escrito un tutorial tan bueno (el mejor de internet, que yo sepa), que no tengo más remedio que empeñarme en seguirlo hasta el final.
    Uso OpenOffice 2.4 en Debian Linux.

  3. mi pregunta es :
    1_¿ de cuantas formas podemos construir una consulta?

  4. En respuesta a Antonio:

    A mí también me pasaba igual, y al final es la cosa más simple del mundo. Resulta que en la tabla Películas no había asignado a cada película un valor en el campo género. En el tutorial no pide expresamente que lo hagamos en ningún momento pero, si no lo hacemos, el programa no va a adivinar de qué género es cada película (como bien dices).
    Ánimo y a seguir!

  5. Para Joan :

    Mil gracias por la ayuda! Ya he tomado buena nota, y ahora a seguir. Saludos.

  6. En access existe la posibilidad de introducir un dato tipo lista desplegable, donde puedes introducir los datos fijos o crear una tabla con los mismos, donde automáticamente se relaciona, con lo cual, al introducir los datos, ya los ves en la tabla, no hay posibilidad de hacer eso en openoffice base?

  7. hola joan,
    me pasa lo mismo que a ti y te pido si me puedes explicar los pasos a seguir, porque no me aclaro. no se si tengo que empezar de nuevo ni donde debo modificar el campo genero ni que poner en el. Gracias

  8. Estoy de acuerdo con Pingo; de lo contrario estaríamos en la necesidad de introducir datos repetidamente y se supone que esta es una de las cosas que queremos evitar con las basese de datos relacionales. Agradezco si alguien nos puede ayudar por que revise las opciones que nos da open en editar campos y nada de nada.

  9. Muchas gracias por el tutorial, tengo unos días que empecé a utilizar Openoffice y me ha sido muy útil,
    y también me enredé mucho con el paso de las consultas, gracias mil por el tip de Joan, ya me estaba desesperando.

    Saludos

  10. Saludos he leído el tutorial y he tratado de hacer los pasos pero básicamente para lo que lo quiero aplicar desgraciadamente no me funciona y tengo el caso que relaciono una base con la otra pero al realizar consultas no me realiza la operación que deceso
    Que he realizado¡¡¡
    realice una base de datos con nombre de empresa sus contactos, telefonos y toda la informacion adicional de contacto a esta le he colocado un ID de llave
    realice otra tabla que deseo que se relacione con la primera por que cada empresa tiene diferentes marcas que seria la relación de una a muchas el problema es que no me relaciona y cuando realizo consultas no hace lo que deceso que me coloque el nombre de la empresa con toda su información adicional y que a su vez relacione las diferentes 2 tres marcas a esta empresa ¿que he hecho mal? pueden ayudarme.
    actualmente lo que hace es que me duplica la informacion de las empresas y coloca en el orden que he metido las marcas en todas..
    Espero sus comentarios

  11. Al no haber llenado clave de Genero en tabla Peliculas, la Consulta_Pelicula_Genero aparecia vacia. Corregido, por sugerencia deducida de los comentaristas, funcionó.
    El Tutorial es exigente pero bueno. Gracias.

  12. Hola Joan, yo tengo el mismo problema (Consulta_Peliculas_Genero) me sale en blanco. No entiendo como puedo asignarle un valor para cada película..
    Me puedes ayudar!?
    Graciias.

  13. Muy buen tutorial, me está ayudando a entender el Base.

    Gracias por el trabajo y tiempo invertido.

    P.S.: Tal como ya se ha comentado anteriormente, si se ponen valores en el campo «genero» de la tabla Peliculas (de hecho es de una lógica aplastante, en vez de poner el género ponemos el valor: 1, 2,3, …), la consulta funciona perfectamente.

  14. Bueno, vamos a intentar hacer una base de datos para una biblioteca particular, haber si me sale, sino pediré ayuda.

  15. Yo también quedé pillado cuando me mostró blanco la consulta_peliculas_generos. Pero creo que enseña más dejar tácita la solución. Gracias Joan…

  16. sisisi muy bueno todo. muy lindo
    un besitoo

  17. GRACIAS POR LA AYUDA!!!

  18. liliana vargas castillo

    me parese muy interesante esta pagina tiene mucha informacion que no ayuudan mucha

  19. Pingback: Tutorial de Base de datos – OpenOffice.org « HiperEidon

  20. muy bueno el tutorial;
    te falta añadir que en las consultas hay que marcar las relaciones entre tablas; si no, no funciona bien

  21. Hola, No he podido rotar una imagen insertada en una hoja de calculo

    como se hace??

  22. Pingback: Unidad 5. Consultas simples (via Tutorial de OpenOffice.org Base) « victordiazblog

  23. Gracias por el comentario de Joan: a mí me pasaba lo mismo al ejecutar la consulta, salía en blanco. Hay que volver a la tabla de Películas y en la columna de Géneros introducir el valor correspondiente a cada película. Leve omisión en el tutorial que nos vuelve locos a los principiantes, uf!

  24. Se me olvidaba: siguiendo las prácticas desde Linux Ubuntu Lucid Lynx.

  25. Hola muy bueno el tuto ( todo), ahora mi consulta es la siguiente, como utilizo el comando like, sin tener que poner una ayuda ejemple «%a»
    quisiera hacer la consulta sobre determinado valor que se encuentra en una coluna, por ejemplor tengo estos datos
    50000-1235-3256454
    50000-1235-2123654
    50000-1235-2213254
    50000-1235-2213254
    50000-1235-0213556
    50000-1235-00213254
    50000-1235-01213254
    50000-1235-2213254

    es decir quiero que me muestre todos los que tienen estos datos 50000-1235-2213254 que para el ejemplo son tres
    pruebo de esta manera y no sale
    where (((rubro.recibo) like & «*» (Ingrese nro recibo o parte de ella-enter todas) & «*»))
    esto seria en acces
    gracias

  26. como hago los botones de selección, donde introduzco la información que utilizaré.

  27. Estoy fascinada con Open Office Base, estoy creando una base para utilizar en mi trabajo, pensé que iba a ser sencillo pero cada vez encuentro más cosas que aprender, me encanta!!

Deja un comentario