Tutotorial LibreOffice Base Parte IV

Tutorial para aprender a hacer bases de datos con LibreOffice

Base de Datos – Tablas – Consultas

LibreOffice es un conjunto de aplicaciones que nos sirve de herramienta para resolver operaciones en nuestra oficina, casa, escuela, etc. Incluye un conjunto de aplicaciones entre ellas Write, Calc, Press, etc.

LibreOffice Base nos permite manejar bases de datos relacionales y forma parte de la suite de Libreoffice. Está diseñada para satisfacer las necesidades de una gran cantidad de usuarios, entre ellos básicos, intermedios y avanzados, también algunos requerimientos empresariales. A su vez nos proporciona una Interfaz de Usuario amigable, la cual cuenta con 4 herramientas básicas para realizar tareas como: tablas, consultas, formularios e informes. Base incluye un asistente que nos ayuda con varios aspectos del programa.

Tutorial LibreOffice Draw

En la parte II, hablamos como conectarnos a una base de datos y cómo crear la Base de Datos y las Tablas que corresponden a las mismas dependiendo del proyecto que deseamos realizar. Debemos tener en cuenta que no en todas las conexiones a bases de datos tendremos que crear tablas, normalmente nos conectamos es consultar y operar con la información que contienen.

A continuación vamos hablar de cómo crear las consultas de las tablas.

.- Consultas

Las consultas de las tablas de las base de datos se realiza con SELECT en el caso de la mayoría de los manejadores de bases de datos. Esto nos permite extraer la información de una forma sencilla, también nos permite extraer información relacionando las bases de datos de forma temporal y aprovechando algunas funciones matemáticas y estadísticas nos permite crear conjuntos de información, en fin este comando de consulta es sumamente poderoso y aprendiendo a dominar adecuadamente las posibilidades son infinitas y hasta podemos acelerar las consultas con una adecuada relación entre las tablas.

Veamos algunos ejemplos del comando SELECT.

.- Mostrar todos los registros de la tabla clientes

SELECT * FROM clientes

.- Mostrar algunos campos de la tabla empleados

SELECT nombres, apellidos, ciudad, region

FROM empleados

WHERE pais = ‘ESPAÑA’

.- Mostrar regiones donde se tiene algún cliente desde la tabla clientes

SELECT DISTINCT region FROM clientes WHERE region IS NOT NULL

.- Mostrar clientes cuyo nombre de comiencen por “S” desde la tabla clientes

SELECT * FROM clientes WHERE empresa LIKE ‘S%’

Como podemos ver el comando SELECT nos permite agrupar, buscar y enlazar la información de una forma muy versátil, este comando nos devuelve una tabla virtual o temporal con la información solicitada.

Sin embargo para entenderlo y aprovechar sus capacidades debemos comprender todos sus comandos y a continuación explicaremos su sintaxis. Vamos a explicar desde la forma más básica hasta las operaciones más avanzadas.

Sintaxis 1

SELECT * FROM nombre_tabla

SELECT campo1, campo2 FROM nombre_tabla

La forma más simple del comando, podemos presentar todos los campos de una tabla o indicar algunos de ellos. De esta forma se mostrarán todos los registros de la tabla.

Sintaxis 2

SELECT DISTINCT campo FROM nombre_tabla

La opción DISTINCT nos indica que no se van a repetir el contenido de los registros, en las tablas podemos encontrar registros repetidos como el nombre de una calle, el código postal, etc, pero necesitamos solo conocer el listado de esos nombre sin mostrar cada uno de los registros que lo contiene, entonces con la opción DISTINCT le indicamos al comando que ignore los registros repetidos de los campos seleccionados.

Sintaxis 3

SELECT * FROM nombre_tabla WHERE campo1=’CONDICION’

La opción WHERE nos permite filtrar la información contenida en la tabla al comparar uno o más campos con una condición indicada. Dentro de la opción WHERE tenemos varias opciones y funciones de filtrado o comparación que podemos usar para filtrar nuestros registros.

Dentro de la condición usamos operadores de comparación que nos permiten filtrar la información. A continuación un listado de los operadores de condición.

Operador Descripción Ejemplo
= Verifica la igualdad de dos elementos A = B
!= Verifica la desigualdad de dos elementos A != B
>= Verifica que un elemento sea mayor o igual A >= B ó B >= A
<= Verifica que un elemento sea menor o igual A <= B ó B <= A
> Verifica que un elemento sea estrictamente mayor. A > B ·ó B > A
< Verifica que un elemento sea estrictamente mejor. A < B ó B < A

Sintaxis 4

SELECT * FROM nombre_tabla WHERE campo1=’CONDICION1’ OR campo2=’CONDICION2’

SELECT * FROM nombre_tabla WHERE campo1=’CONDICION1’ AND campo2=’CONDICION2’

Las opciones condicionales AND (y) u OR (o) nos permite comparar dos o más campos y el resultado de las comparaciones unido a los condicionales nos indica un resultado verdadero o falso y en base a ello nos muestra los resultados de la tabla. Estos condicionales pueden concatenarse para buscar la condición que necesitamos cumplir.

Sintaxis 5

SELECT * FROM nombre_tabla ORDER BY campo1,…

SELECT * FROM nombre_tabla WHERE condiciones ORDER BY campo1,… ASC / DESC

SELECT campo1,.. FROM nombre_tabla WHERE condiciones ORDER BY campo1,.. ASC / DESC

La opción ORDER BY nos permite generar el resultado de la consulta de forma ordenada por el campo que indiquemos y según el orden Ascendente (por defecto) ó Descendente, esto nos permite tener un listado más adecuado a lo que necesitamos.

Sintaxis 6

SELECT * FROM nombre_tabla LIMIT número

Con la opción LIMIT limitamos el número de registros que queremos que nos muestre en la consulta.

Sintaxis 7

SELECT * FROM nombre_tabla WHERE campo1 LIKE ‘condicion’

SELECT * FROM nombre_tabla WHERE campo1 LIKE ‘%condicion’

SELECT * FROM nombre_tabla WHERE campo1 LIKE ‘condicion%’

SELECT * FROM nombre_tabla WHERE campo1 LIKE ‘%condicion%’

SELECT * FROM nombre_tabla WHERE campo1 LIKE ‘condicion’ [AND / OR] campo2=condicion

La opción LIKE nos permite realizar búsqueda en campos de texto, esto es efectivo sobretodo en texto porque los operadores de condición realiza búsquedas más exactas, pero con la opción LIKE nos permite buscar esa condición en campos de texto y con el comodín (%) nos permite mejorar la busqueda indicando a la condicion cualquier valor osea el comodín dentro de la condición indica el elemento a buscar + cualquier valor adicional, según donde se coloque el comodín. También podemos combinar esta opción con las otras opciones del comando SELECT.

Sintaxis 8

SELECT tabla1.campo1, tabla2.campo2 FROM tabla1

INNER JOIN tabla2 ON tabla2.campoEnlace2 = tabla1.campoEnlace1

SELECT tabla1.campo1, tabla2.campo2 FROM tabla1

LEFT JOIN tabla2 ON tabla2.campoEnlace2 = tabla1.campoEnlace1

SELECT tabla1.campo1, tabla2.campo2 FROM tabla1

RIGHT JOIN tabla2 ON tabla2.campoEnlace2 = tabla1.campoEnlace1

SELECT tabla1.campo1, tabla2.campo2 FROM tabla1

FULL JOIN tabla2 ON tabla2.campoEnlace2 = tabla1.campoEnlace1

SELECT tabla1.campo1, tabla2.campo2 FROM tabla1

SELF JOIN tabla2 ON tabla2.campoEnlace2 = tabla1.campoEnlace1

Las opciones INNER, LEFT, RIGHT, FULL y SELF JOIN, nos permite unir dos o más tablas para mostrar la información relacionada entre ellas y nos la presenta en una sola tabla. Esto trae como ventaja que podemos crear uniones en las consultas y diversificar la información de una forma fácil. Las uniones que realiza estas consultas son solo para el momento de realizarlas no son uniones permanentes es más bien como un enlace a otra tabla donde se realiza la consulta y se extrae la información y el comando SELECT se encarga de construir la tabla virtual o temporal con los registros encontrados.

Cada una de las opciones del JOIN tiene una función específica y muestra la información relacionada de forma diferente, a continuación las funciones de cada uno de ellos.

  • INNER JOIN. Crea una unión combinando los valores de las dos tablas Tabla1 y Tabla2 según la condición de la unión. Se compara cada fila en ambas tablas verificando el criterio de unión indicado para crear una sola tabla.
Tabla – clientes

ID nombre edad pais
1 José Asdrubal 30 España
2 Maria Clemente 25 Francia
3 Padrino Manuel 45 Francia
4 Jacinta Lopez 35 España
5 Silamanca Prieto 30 España
Tabla – ordenes

ID fecha id_cliente monto
1 15-02-2020 3 3000
2 25-03-2020 3 1500
3 11-02-2020 2 1560
4 10-06-2020 4 2060
SELECT ordenes.id, clientes.nombre, ordenes.fecha, ordenes.monto FROM clientes

INNER JOIN ordenes on clientes.id = ordenes.id_cliente;

Resultado Consulta

ID nombre fecha monto
1 Padrino Manuel 15-02-2020 3000
2 Padrino Manuel 25-03-2020 1500
3 Maria Clemente 11-02-2020 1560
4 Jacinta Lopez 10-06-2020 2060
  • LEFT JOIN. Devuelve todas las filas de la tabla a la izquierda incluso si no existe coincidencia en la tabla derecha, si existe coincidencia se muestra la información en el campo correspondiente de lo contrario presenta NULL.
Tabla – clientes

ID nombre edad pais
1 José Asdrubal 30 España
2 Maria Clemente 25 Francia
3 Padrino Manuel 45 Francia
4 Jacinta Lopez 35 España
5 Silamanca Prieto 30 España
Tabla – ordenes

ID fecha id_cliente monto
1 15-02-2020 3 3000
2 25-03-2020 3 1500
3 11-02-2020 2 1560
4 10-06-2020 4 2060
SELECT clientes.id, clientes.nombre, ordenes.fecha, ordenes.monto FROM clientes

LEFT JOIN ordenes on clientes.id = ordenes.id_cliente;

Resultado Consulta

ID nombre fecha monto
1 José Asdrubal NULL NULL
2 Maria Clemente 11-02-2020 1560
3 Padrino Manuel 15-02-2020 3000
3 Padrino Manuel 25-03-2020 1500
4 Jacinta Lopez 10-06-2020 2060
5 Salamanca Prieto NULL NULL
  • RIGHT JOIN. Devuelve todas las filas de la tabla a la derecha incluso si no existe coincidencia en la tabla izquierda, si existe coincidencia se muestra la información en el campo correspondiente de lo contrario presenta NULL.
Tabla – clientes

ID nombre edad pais
1 José Asdrubal 30 España
2 Maria Clemente 25 Francia
3 Padrino Manuel 45 Francia
4 Jacinta Lopez 35 España
5 Silamanca Prieto 30 España
Tabla – ordenes

ID fecha id_cliente monto
1 15-02-2020 3 3000
2 25-03-2020 3 1500
3 11-02-2020 2 1560
4 10-06-2020 4 2060
SELECT clientes.id, clientes.nombre, ordenes.fecha, ordenes.monto FROM clientes

RIGHT JOIN ordenes on clientes.id = ordenes.id_cliente;

Resultado Consulta

ID nombre fecha monto
2 Maria Clemente 11-02-2020 1560
3 Padrino Manuel 15-02-2020 3000
3 Padrino Manuel 25-03-2020 1500
4 Jacinta Lopez 10-06-2020 2060
  • FULL JOIN. Crea una consulta con la combinación de todos los registros de ambas tablas según la coincidencia y en ambas tablas donde falte coincidencia lo completara con NULL.
Tabla – clientes

ID nombre edad pais
1 José Asdrubal 30 España
2 Maria Clemente 25 Francia
3 Padrino Manuel 45 Francia
4 Jacinta Lopez 35 España
5 Silamanca Prieto 30 España
Tabla – ordenes

ID fecha id_cliente monto
1 15-02-2020 3 3000
2 25-03-2020 3 1500
3 11-02-2020 2 1560
4 10-06-2020 4 2060
SELECT clientes.id, clientes.nombre, ordenes.fecha, ordenes.monto FROM clientes

FULL JOIN ordenes on clientes.id = ordenes.id_cliente;

Resultado Consulta

ID nombre fecha monto
1 José Asdrubal NULL NULL
2 Maria Clemente 11-02-2020 1560
3 Padrino Manuel 15-02-2020 3000
3 Padrino Manuel 25-03-2020 1500
4 Jacinta Lopez 10-06-2020 2060
5 Silamanca Prieto NULL NULL
  • SELF JOIN. Se usa para unir una tabla consigo misma actuando como si fueran dos tablas y temporalmente se cambia el nombre para poder hacer la unión en el proceso de consulta.
Tabla – empleados

ID nombre edad salario
0 Ramon 32 2000
1 Khan 25 1500
2 Antonio 23 2000
3 Dakota 25 6500
4 Jenny 22 8500
5 Ambrosio 24 4500
6 Manuel 27 10000
SELECT a.id, b.nombre, a.salario FROM empleados a, empleados b

WHERE a.salario > b.salario

Resultado Consulta

ID nombre salario
0 Ramon 2000
0 Antonio 2000
1 Khan 1500
2 Ramon 2000
2 Antonio 2000
3 Dakota 6500
4 Jenny 8500
5 Ambrosio 4500
6 Manuel 10000

Como podemos ver el comando SELECT tiene muchas opciones y sirve para consultar o extraer información de las tablas. Sin embargo en LibreOffice y en cualquier otro manejador de base de datos es incomodo tener que escribir estas instrucciones a cada momento y si bien se puede guardar como un archivo SQL para volver a ejecutar la consulta es inviable en las aplicaciones por tal motivo los manejadores de bases de datos y LibreOffice Base pueden crear tablas tipo consultas que no es más que un nombre de tabla que se le asigna al comando para que pueda invocarse como si se tratase de una tabla, con la salvedad de que es de solo lectura.

En LibreOffice Base podemos crear ese tipo de archivo en el área de Consulta. Como vemos en la figura de la pantalla principal

Figura Nº 1

Pulsamos el icono Consultas, podemos Insertar o crear, editar y eliminar consultas.

.- Insertar o crear consultas

  • Consulta (Vista Diseño)

Procedemos de la siguiente manera desde el menú principal Insertar → Consulta (Vista Diseño)… o Insertar → Consulta (Vista SQL)… o Podemos seleccionarlo directamente desde el área de Tareas.

Tutorial para aprender a hacer bases de datos con LibreOffice

Figura Nº 2

Al crear una nueva consulta lo primero que aparece es una ventana para seleccionar la tabla que vamos a usar, la seleccionamos y pulsamos el botón Añadir, luego repetimos el proceso hasta tener las tablas que deseamos usar. Al finalizar pulsamos el botón Cerrar y nos queda la siguiente ventana.

Figura Nº 3

Una vez que se presenta la ventana Diseño de Consulta, procedemos a crear las uniones que necesitamos y podemos hacerlo de dos formas:

  • Primera Forma: Seleccionando en la ventana la tabla y el campo que deseamos relacional y manteniendo pulsado botón derecho del ratón nos movemos a la otra tabla y seleccionamos el campo con el cual creamos la unión.
  • Segunda Forma: Desde el menú principal Insertar → Relación nueva… y nos presenta la siguiente ventana Propiedades de la Unión.

Figura Nº 4

Como podemos observar tenemos varias opciones:

  • Tablas Involucradas. Aquí seleccionamos las tablas con la cual vamos a realizar la unión o relación.
  • Opciones. Aquí indicamos el tipo de unión Interior, a la Izquierda, a la Derecha, Cruzada (INNER, LEFT, RIGHT, FULL)
  • Campos Involucrados. Indicamos el o los campos que vamos a usar para crear la referencia.

Una vez seleccionada las opciones pulsamos el botón Aceptar. Y una vez creada la unión aparece las tablas de la siguiente forma:

Figura Nº 5

Luego ajustamos el resto de las opciones en la siguiente sección:

Figura Nº 6

Cada columna representa el campo que va a estar incluido en la consulta bien sea para presentar los datos o para crear la condición de búsqueda por criterio.

  • Campo. Indicamos el campo que vamos a usar, bien sea para mostrar o involucrados en una función o en un criterio de búsqueda.
  • Alias. El álias que le asignamos al campo.
  • Orden. Indicamos el orden de los registros con ese campo.
  • Visible. Si se va a mostrar información o no.
  • Función. Función que se va a utilizar en el campo.
  • Criterio. Indicar el criterio de búsqueda, podemos usar los operadores condicionales y operadores lógicos.
  • o. Es para agregar más condiciones al criterio de búsqueda.

Una vez finalizado toda la asignación, podemos probar la consulta pulsando en al barra de herramientas el botón o desde el menú principal Editar → Ejecutar Consulta o pulsando F5. Y nos muestra el resultado.

Figura Nº 7

Una vez verificado y ajustado todo el proceso de consulta, guardamos la misma con un nombre representativo. Desde el menú principal Archivo → Guardar y nos presenta la ventana para indicar el nombre de la consulta.

Figura Nº 8

Y continuamos con la edición o podemos cerrar el asistente.

  • Consulta (Asistente para crear consulta)

Para invocar el asistente para crear consulta procedemos desde la ventana principal y después de haber seleccionado la opción Consulta en el área de Bases de Datos, procedemos a seleccionar la opción Usar el Asistente para crear consulta… en el área de Tareas y se desplegará la siguiente ventana.

Figura Nº 9

El Asistente de consultas nos guia para crear las consultas que necesitamos indicándonos los pasos a seguir

  1. Seleccionamos los campos de las tablas involucradas. Luego pulsar el botón Siguiente
  2. Seleccionamos el orden de clasificación de los campos, si se requiere. Podemos seleccionar varios campos y su orden de forma individual, luego pulsamos el botón Siguiente

Figura Nº 10

  1. Luego indicamos las condiciones de búsqueda según los criterios a cumplir. Una vez seleccionado las condiciones pulsamos el botón Siguiente

Figura Nº 11

  1. Luego seleccionamos el tipo de consulta: Consulta detallada mostrando todos los registros o consulta abreviado donde se muestra solo los resultados de las funciones de totalización indicando los campos a totalizar. Luego pulsamos el botón Siguiente

Figura Nº 12

  1. La sección agrupación se activa cuando seleccionamos la consulta abreviada e indicamos alguna función de totalización. En las opciones podemos ver los campos asociados a la agrupación y podemos cambiar el orden según nos convenga y agregar otro campo, pero en este caso es si la opción permite agregarlo. Una vez definido la agrupación y su orden pulsamos el botón Siguiente.

Figura Nº 13

  1. Luego pasamos a las condiciones de agrupación, donde seleccionamos la forma de coincidencia y los campos involucrados en el criterio de la condición. Una vez seleccionada las opciones pulsamos el botón Siguiente

Figura Nº 14

  1. Luego podemos asignarles alias a los campos involucrados, estos alias aparecerán como nombre en las columnas y otras consultas. Una vez definido los alias pulsamos el botón Siguiente

Figura Nº 15

  1. En el resumen aparece toda la configuración y opciones seleccionadas y procedemos a indicar el nombre de la consulta, además si deseamos ejecutar de una vez o queremos modificar la consulta construida por el asistente. Cuando pulsamos generar la consulta nos muestra la pantalla con los resultados de la misma y al pulsar la opción modificar consulta nos presenta la ventana Diseño de Consulta (Figura Nº 3).

Figura Nº 16

  • Consulta (Vista SQL…)

Para crear la consulta con Vista SQL, procedemos desde el menú principal Insertar → Consulta (Vista SQL)…, o desde la pantalla principal desde el área Tareas, seleccionamos la opción Crear consulta en modo SQL…, luego nos aparece el editor de SQL.

Figura Nº 17

Esta ventana es para crear la consultas tipeando los comandos directamente y haciendo las ejecuciones de la consulta y probando. Normalmente esta forma la utilizan los usuarios que están familiarizados con los comandos y en muchos casos le es más cómodo trabajar desde la ventana de comandos.

Una vez verificado y ajustado todo el proceso de consulta, guardamos la misma con un nombre representativo. Desde el menú principal Archivo → Guardar y nos presenta la ventana para indicar el nombre de la consulta. Figura Nº 8.

.- Editar

  • Consulta (Vista Diseño)

Para editar una consulta procedemos de la siguiente forma desde el menú principal Editar → Editar…

Luego aparece la ventana de Diseño de Consulta Figura Nº 3. Nos presenta la consulta diseñada. Y procedemos a realizar las modificaciones pertinentes, agregando tablas o modificando los campos y criterios usados en la misma.

Una vez finalizada la operación de modificar o editar la consulta procedemos a guardar los cambios desde el menú principal Archivo → Guardar o pulsando el botón en la barra de herramientas.

  • Consulta (Asistente crear consulta)

Para editar los archivos de consultas generados por el asistente procedemos de la forma como se hace en Consulta (Vista Diseño) indicado en el punto anterior.

  • Consulta (Vista SQL)

Para editar los archivos de consulta en forma Vista SQL bien sea generados por el diseñador o por el asistente, procedemos desde el menú principal Editar → Editar en vista SQL… o desde el área de Consultas seleccionamos el archivo y con el botón derecho y pulsamos Editar en vista SQL. Y se desplegara la ventana de edición de comando SQL (Figura Nº 17).

.- Eliminar

Podemos eliminar una consulta que ya no necesitemos, procedemos de la siguiente forma, seleccionado en la base de datos la opción consulta, luego seleccionamos en el área de Consultas la tabla correspondiente. Luego desde el menú principal Editar → Eliminar.

Luego aparece el cuadro de confirmación

Figura Nº

Y luego seleccionamos el botón Eliminar para confirmar la eliminación de la consulta.

Como podemos ver las consultas son parte imprescindible en toda base de datos, nos permite crear agrupaciones y generar listados para las estadísticas y otros análisis de una forma muy fácil.

El crear las Bases de Datos toma algo de tiempo, porque es lo fundamental en LibreOffice y prácticamente en cualquier aplicación porque estas aunque sean muy sencillas deben almacenar información para su manejo y es importante tener bien claro la estructura de las tablas que van a almacenar la información para que más adelante no sean un quebradero de cabeza y nos haga imposible realizar actualizaciones de una forma práctica y eficiente y aunque no se crea un mal diseño de las bases de datos trae como consecuencia que una aplicación no pueda escalarse adecuadamente, que no se puedan generar los reporte e informes con los datos correctos y precisos, en fin un mal diseño de las bases de datos impide que las aplicaciones funcionen adecuadamente. Así que tómese su tiempo y haga un buen análisis de la información que se maneja, que se ingresa, que se información se requiere como reportes e informes, que información se necesita para los análisis estadísticos, como separar las tablas para evitar en la medida de lo posible la repetición de datos de forma innecesaria un buen análisis y una buena estructura en las bases de datos nos ahorra mucho tiempo, dinero y esfuerzo, el tiempo que creemos perder en análisis y diseño es más bien una ganancia del más del 50% en nuestra aplicación.

Bueno hasta aquí tenemos lo que se necesita para crear las bases de datos, en las próximas entregas comenzaremos con formularios y reportes y al final un pequeño proyecto.

También te puede Interesar:

Deja un comentario