LibreOffice Parte 5 (Edición de Registros)

Manual LibreOffice Base – Como editar registros

Base de datos – Tablas – Edición de Registros

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.

En la parte 2, 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. En la Parte 3 y 4 hablamos como crear las tablas y como crear consultas y enlaces.

A continuación vamos hablar de cómo incluir, consultar, actualizar y borrar registros (CRUD), también veremos cómo importar datos desde otras fuentes y algunas acciones más con la manipulación de los registros en las tablas.

Tutorial LibreOffice Base

.- SQL Comando

En la parte 2 de nuestra guía de LibreOffice Base, habíamos comentado que aún cuando la aplicación funciona generalmente para hacer el uso de la GUI para realizar la mayoría de las tareas también indicamos que Base también acepta que podamos crear y realizar operaciones en las tablas que comprende las bases de datos de una forma más directa usando los comandos SQL, claro estos comandos lo usan los que están más familiarizados con la programación de bases de datos, sin embargo nosotros también podemos llevar a cabo algunas acciones con estos comando e ir profundizando en el estudio de los mismos para así sacarle un mayor provecho a la aplicación, también sabemos que las interfaces GUI tienen en algunos casos limitaciones de acción y necesariamente tenemos que realizarlo a través de los comandos directos.

Así que antes de hablar sobre cómo realizar el CRUD en los registros contenido en nuestros archivos y otras operaciones con los registros, vamos a dar un vistazo de los comandos más comunes que podemos usar en LibreOffice Base el modo SQL que nos aportará un gran beneficio y en muchos casos una mejor comprensión de lo que estamos haciendo y puede ser invocado de diferentes formas.

A continuación indicaremos las diferentes formas de invocar el modo SQL.

  • Desde el menú principal, procedemos de la siguiente forma: Herramientas → SQL…, aquí invocamos la ventana Ejecutar Instrucción SQL. Esta es la forma más general para ejecutar los comandos SQL y desde aquí podemos crear, actualizar, borrar la estructura de una tabla y podemos incluir, consultar, actualizar y borrar registros, y también podemos crear vistas de consultas y relaciones de tablas, todo con los comandos de forma directa.
Manual LibreOffice Base - Como editar registros

Figura Nº 1

  • Desde el área de Base de datos seleccionamos Tablas y luego desde el área Tareas seleccionamos Crear una vista… nos presenta la pantalla de Diseño de Visualización y dentro de ella podemos Activar/Desactivar la vista Diseño y nos presenta una ventana donde podemos escribir comandos SQL directamente.

Figura Nº 2

  • Desde el área de Base de datos seleccionamos Consultas y luego desde el área Tareas seleccionamos Crear consulta en modo de diseño… nos presenta la pantalla de Diseño de Consulta y dentro de ella podemos Activar/Desactivar la vista Diseño y nos presenta una ventana donde podemos escribir comandos SQL directamente. Y también podemos seleccionar Crear consulta en modo SQL directamente y nos presenta la ventana para escribir los comandos SQL (Figura Nº 2).

Como podemos darnos cuenta Crear vista… y Consultas es básicamente lo mismo solo que el archivo creado se coloca en dos áreas distintas, pero esto se usa de acuerdo como más nos convenga.

A continuación vamos a indicar algunos comandos básicos generales que se usa en HSQLDB para realizar diferentes operaciones en las bases de datos, manejo de las tablas y operaciones sobre los registros.

  • Operaciones sobre las tablas
  • Crear Tablas

Para crear tablas usamos el siguiente comando:

CREATE [MEMORY | CACHED | [GLOBAL] TEMPORARY | TEMP | TEXT] TABLE “nombre-tabla” (<definicion de campos> [,…] [,<Definición de restricciones>…])

[ON COMMIT {DELETE | PRESERVE} ROWS];

CREATE TABLE “nombre-tabla” (ID INT PRIMARY KEY, campo VARCHAR(300), …);

Describiremos la sintaxis:

[MEMORIA | CACHED | [GLOBAL] TEMPORARY | TEMP | TEXT], especifica la forma en que se va a crear la tabla, de forma predeterminada se crea en modo MEMORY usa la memoria para almacenar la tabla, sin embargo podemos crear tablas que guarden los datos en el disco duro para que las bases de datos sean se guarden en el disco y usar la memoria como cache, con la opción “CACHED”.

CREATE TABLE “nombre-tabla”, estamos indicando que vamos a crear una tabla normalmente los nombres de las tablas terminan en plural porque en ella contienen generalmente más de un registro, sin embargo pueden colocar el nombre más adecuado, pero siempre relacionado con el contenido que vamos almacenar en el mismo.

<Definición de campos>, comprende lo siguiente:

“Campo” Tipo_Dato [(longitud[,decimales])] [{DEFAULT “valor_prdeterminado” |

GENERATED BY DEFAULT AS IDENTITY (START WITH numero_inicio[, INCREMENT BY numero_incremento)}] |

[[NOT] NULL] IDENTITY [PRIMARY KEY]
  • Campo, indica el nombre que describe al campo.
  • Tipo_Dato, indica el tipo de dato que recibe el campo, INT, DECIMAL(l,d), DATE, etc.
  • DEFAULT, indica el valor predeterminado que va a tener el campo en caso de que el valor asignado sea nulo.
  • GENERATED BY DEFAULT AS IDENTITY (START WITH numero_inicio[, INCREMENT BY numero_incremento), indica que el valor generado en el campo es automático y podemos indicar el valor de inicio y el salto osea si va de 2 en 2, 4 en 4, solo impares, etc.
  • [NOT] NULL, indica si el campo acepta o no valores nulos. Al incluir NOT NULL impedimos que se incluyan valores nulos o vacíos e inmediatamente descarga el registro y genera un error.
  • IDENTITY, Indicamos que el campo es uno de identificación de registro.
  • PRIMARY KEY, Indicamos que el valor no puede ser nulo y debe ser único e irrepetible.

<Definición de restricciones>, comprende lo siguiente:

[CONSTRAINT “Nombre”]

UNIQUE (“campo1” [, ”campo2”…]) |

PRIMARY KEY (“campo1” [, “campo2”…]) |

FORGEING KEY (“campo1” [, “campo2”…]) REFERENCES “otra_tabla” (“campo1” [,”campo2”..])

[ON {DELETE | UPDATE} {CASCADE | SET DEFAULT | SET NULL}] |

CHECK(condicion)

  • CONSTRAINT “nombre”, Indica el nombre de la restricción que se va a crear.
  • UNIQUE (“campo1” [, “campo2”…]), indica el o combinación de campos que forman un valor único.
  • PRIMARY KEY (“campo1” [, “campo2”..]), Indica que es un valor único y no puede ser nulo y se determina que es el índice de Clave Primaria.
  • FORGEIGN KEY (“campo1” [, “campo2”..]) REFERENCES “otra_tabla” (“campo1” [, “campo2”…]), Establece el enlace que vamos a realizar con otra tabla, indicamos los campos de esta tabla que vamos a enlazar con los campos de la otra tabla y mantiene una evaluación de la referencia entre los campos claves con la correspondiente Clave Primaria de la otra tabla.
  • [ON {DELETE | UPDATE} {CASCADE | SET DEFAULT | SET NULL}], Cuando usamos el comando FORGEIGN especificamos qué acciones va a tomar la tabla enlazada en caso de actualizar o eliminar los registros. Por ejemplo si indicamos ON DELETE CASCADE, estamos diciendo que al momento de borrar un registro en esta tabla los registros correspondientes en la tabla enlazada serán eliminados. Pero si indicamos SET DEFAULT le decimos que los registros correspondientes cambian el valor del campo de enlace al valor por defecto o si indicamos SET NULL le decimos que los registros correspondientes cambian a valor nulo. Claro todo esto depende de lo que deseamos hacer con nuestros registros.
  • CHECK(condicion), estamos estableciendo la condición que debe cumplir el registro para poder ser incluido o actualizado en la tabla.

[ON COMMIT {DELETE | PRESERVE} ROWS], funciona para las tablas tipo TEMPORARY o TEMP, el contenido de estas tablas por defecto se borran cuando se termina de trabajar con la misma. Sin embargo si desea que se mantenga para otras sesiones de trabajo debemos establecer ON COMMIT PRESERVE ROWS.

  • Modificar estructura de la tabla

En ocasiones necesitamos modificar la estructura de la tabla, bien sea agregando, eliminando o cambiando el tipo de datos, etc. Y en ocasiones necesitamos agregar los campos en un lugar específico por conveniencia para nuestro propósito.

Estas operaciones las hacemos con los siguiente comandos.

Agregar un campo

ALTER TABLE “tabla” ADD [COLUMN] <definicion_campo> [BEFORE “campo_existente”];
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ADD [COLUMN], indicamos que vamos agregar un campo.
  • <definicion_campo>, indicamos las características del campo, como cuando lo creamos.
  • [BEFORE “campo_existente”], indicamos si vamos agregar el campo antes del campo indicado.

Borrar un campo

ALTER TABLE “tabla” DROP [COLUMN] “nombre_campo”;
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • DROP [COLUMN] “nombre_campo”, indicamos que vamos eliminar.

Cambiar el nombre a un campo

ALTER TABLE “tabla” ALTER COLUMN “campo_existente” RENAME TO “nuevo_nombre_campo”;
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ALTER COLUMN “campo_existente”, indicamos el campos donde se va a realizar la acción.
  • RENAME TO “nuevo_nombre_campo”. indicamos el nuevo nombre del campo.

Asignar o cambiar el valor predeterminado de un campo

ALTER TABLE “tabla” ALTER COLUMN “campo_existente” SET DEFAULT <valor_predeterminado>;
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ALTER COLUMN “campo_existente”, indicamos el campos donde se va a realizar la acción.
  • SET DEFAULT <valor_predeterminado>, indicamos el valor predeterminado del campo.

Indicar si el valor del campo es o no NULL

ALTER TABLE “tabla” ALTER COLUMN “campo_existente” SET [NOT] NULL;
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ALTER COLUMN “campo_existente”, indicamos el campos donde se va a realizar la acción.
  • SET [NOT] NULL, indicamos si se acepta o no [NOT] nulo en el campo.

Reiniciar el conteo del campo asignado como IDENTITY

ALTER TABLE “tabla” ALTER COLUMN “campo_existente” RESTART WITH <nuevo_valor_campo>;

Este comando solo se usa en campos asignados como IDENTITY. Y se indica el nuevo valor a tener el campo para su secuencia.

  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ALTER COLUMN “campo_existente”, indicamos el campos donde se va a realizar la acción.
  • RESTART WITH <nuevo_valor_campo>, indicamos el nuevo valor al campo.

Asignar una restricción condicional al campo

ALTER TABLE “tabla” ALTER COLUMN “campo_existente” CHECK (evaluar_condicion);
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ALTER COLUMN “campo_existente”, indicamos el campos donde se va a realizar la acción.
  • CHECK (evalual_condicion), indicamos la condición que se va a evaluar para aceptar el registro.

Al utilizar este comando los registros ya ingresados no serán evaluados, salvo que se realice una actualización del registro.

Asignar un campo como UNICO

ALTER TABLE “tabla” ADD [CONSTRAINT “nombre_restriccion”] UNIQUE (“campo1”, “campo2”…);
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ADD [CONSTRAINT “nombre_restriccion”], indicamos el nombre de la restricción.
  • UNIQUE (“campo1”, “campo2”…), indicamos el o la combinación de campos para crear un registro único.

Debemos tener en cuenta de que si ya existe un campo o una combinación de campos UNIQUE este comando generará un error y no se ejecutará.

Asignar un campo como PRIMARY KEY

ALTER TABLE “tabla” ADD [CONSTRAINT “nombre_restriccion”] PRIMARY KEY (“campo1”, “campo2”…);
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ADD [CONSTRAINT “nombre_restriccion”], indicamos el nombre de la restricción.
  • PRIMARY KEY (“campo1”, “campo2”), indica la nueva clave primaria.

Agregar un enlace a otra tabla

ALTER TABLE “tabla” ADD [CONSTRAINT “nombre_restriccion”] FOREIGN KEY (“campo1”, “campo2”)

REFERENCES “otra_tabla” (“campo1”, “campo2”…)

[ON {DELETE | UPDATE} {CASCADE | SET DEFAULT | SET NULL}]
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • ADD [CONSTRAINT “nombre_restriccion”], indicamos el nombre de la restricción.
  • FOREIGN KEY (“campo1”, “campo2”…), indicamos los campos claves a usar en el enlace.
  • REFERENCES “otra_tabla” (“campo1”, “campo2”…), indicamos la tabla donde vamos a enlazarnos con los campos de enlace.
  • [ON {DELETE | UPDATE} {CASCADE | SET DEFAULT | SET NULL}], Indicamos el comportamiento de las tablas para con los registros cuando se actualiza o elimina.

Borrar una restricción

ALTER TABLE “tabla” DROP CONSTRAINT “nombre_restriccion”;
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • DROP CONSTRAINT “nombre_restriccion”, indicamos la restricción a eliminar. Puede ser (UNIQIE, CHECK, FOREIGN KEY).

Cambiar nombre a una tabla

ALTER TABLE “tabla” RENAME TO “nuevo_nombre_tabla”;
  • ALTER TABLE “tabla”, indicamos la tabla a modificar.
  • RENAME TO “nuevo_nombre_tabla”, indicamos el nuevo nombre a asignar a la tabla.
  • Borrar una tabla

En ocasiones necesitamos borrar una tabla y procedemos de la siguiente manera.

ALTER TABLE “tabla” [IF EXISTS] [RESTRICT | CASCADE];
  • ALTER TABLE “tabla”, indicamos la tabla a borrar;
  • [IF EXISTS], indicamos que verifique si la tabla existe o no.
  • [RESTRICT | CASCADE], La opción RESTRICT es predeterminada, si la tabla está enlazada con otra no se elimina la tabla. Con la opción CASCADE se eliminarán también las tablas con las cuales se tiene un enlace.

Como podemos observar tenemos algunas opciones para la manipulación de la estructura de la tabla a través de comandos SQL de forma directa.

  • Operaciones sobre los registros
  • Incluir registros

Para incluir registros en nuestras tablas la realizamos con el siguiente comando.

INSERT INTO “tabla” [(“campo1” [,…])]

{VALUES(“valor1” [,..]) | <Consulta-Select>};

  • INSERT INTO “tabla”, indicamos el nombre de la tabla donde se va a incluir los registros.
  • [(“campo1” [,..])], indicamos los campos que recibirán los datos del registro, esto puede ser opcional, pero al no indicarlo cuando indiquemos los valores de los datos debemos colocarlos exactamente en la misma posición como fue declarado en la estructura de la tabla.
  • {VALUES(“valor1” [,..]}}, indicamos los valores de los registros a incluir en los campos, separados por una coma, si no se indica el nombre del campo dentro del comando estos valores deben corresponder al campo de la estructura de la tabla en la misma posición y si no se va a incluir un valor se separa con una coma y se deja en blanco o con NULL. Normalmente se estila indicar los nombres de los campos independientemente su posición e indicando solo los campos que queremos afectar y en el área de valores (VALUES) debemos colocar los valores en la posición de los campos nombrados.
  • <Consulta-Select>, indica una consulta desde otra tabla para pasar los valores de los registros.

Incluir registros desde otra tabla. <Consulta-Select>

INSERT INTO “tabla” [(“campo1” [,..])] SELECT “otra-tabla.campo1” FROM “otra-tabla”;
  • INSERT INTO “tabla”, indicamos el nombre de la tabla donde se va a incluir los registros.
  • [(“campo1” [,..])], indicamos los campos que recibirán los datos del registro, esto puede ser opcional, pero al no indicarlo cuando indiquemos los valores de los datos debemos colocarlos exactamente en la misma posición como fue declarado en la estructura de la tabla.
  • SELECT “otra-tabla.campo1” FROM “otra-tabla”, indicamos la consulta desde otra tabla para incorporar los valores, aquí podemos hacer lo mismo que en la sección anterior, si no se indica los campos en la consulta si debemos indicar los campos en el orden estricto como fue creado en la tabla destino, de lo contrario indicamos los campos afectados y en la tabla origen indicamos los campos declarados en el destino.
  • Actualizar registros

El comando para actualizar o modificar el contenido de la tabla es el siguiente.

UPDATE “tabla” SET “campo1” = <expresion o valor> [,…]

WHERE <condicion>;

  • UPDATE “tabla”, indicamos el nombre de la tabla que va a ser actualizada.
  • SET “campo1” = <expresion o valor> [,..], indicamos el campo a modificar y el valor a asignar.
  • WHERE <condicion>, indicamos la condición que debe cumplir los registros para realizar la actualización.
  • Borrar registros existentes

El comando para borrar los registros es el siguiente.

DELETE FROM “tabla” [WHERE <condicion>];
  • DELETE FROM “tabla”, indicamos el nombre de la tabla afectada.
  • [WHERE <condicion>], indicamos la condición de que deben cumplir los registros para su eliminación, si no se indica se eliminarán todos los registros de la tabla.
  • Consulta de registros.

Las consultas las explicamos suficientemente en el capítulo anterior LibreOffice Base – Parte 4.

.- Editar Registros

LibreOffice Base nos permite editar los registros de una forma muy sencilla y además realizar consultas sobre los mismos en una sola ventana. Y eso lo hacemos a través de Vista de datos de tabla y la invocamos de la siguiente forma:

  • Desde el menú principal. Seleccionamos la tabla a editar y luego Editar → Abrir objeto de base de datos…
  • Desde la tabla seleccionada, pulsamos el botón derecho del ratón y aparece un menú desplegable y luego seleccionamos la opción Abrir…

Figura Nº 3

Cualquiera de las dos opciones escogidas nos presentará la ventana Vista de datos tabla

Figura Nº 4

En el editor tenemos varias opciones para realizar nuestras actividades.

En cuanto a las columnas podemos hacer algunas operaciones, entre ellas ocular una columna, darte formato. Para ello seleccionamos la columna colocando el cursor sobre el nombre del campo y pulsamos el botón derecho donde nos despliega un menú y seleccionamos la opción que necesitamos.

Figura Nº 5

Vamos a describir las opciones que tenemos:

  • Formato de columnas. En esta opción indicamos el formato que necesitamos que se presente la información, es igual al formato que indicamos al momento de crear los campos. Que hemos explicado en entregas anteriores.

Figura Nº 6

  • Anchura de columna. Aquí indicamos el ancho de la columna para su edición. Por defecto tiene marcado el ancho automático, pero podemos indicarlo nosotros mismos para nuestra comodidad.

Figura Nº 7

  • Ocultar columna. Esta opción nos permite ocultar la columna del editor, en ocasiones no necesitamos mostrar todo o no necesitamos agregar valor a todas las columnas y por comodidad ocultamos aquellas no nos hacen falta. Solo pulsamos la opción sobre la columna seleccionada y esta desaparece de la ventana. Una vez que la ocultamos para restaurarla volvemos a invocar el menú desplegable como se indicó anteriormente y vemos que aparece una nueva opción Mostrar columnas y muestra el listado de las columnas ocultas y seleccionamos aquella que deseamos restaurar o pulsamos Todo.

Figura Nº 8

.- Buscar registro

También tenemos la opción de buscar registros. Para ello procedemos de la siguiente manera, desde el menú principal Editar → Buscar registro… y nos aparece la siguiente ventana.

Figura Nº 9

No presenta varias opciones fáciles de entender y podemos ver que podemos seleccionar e indicar el contenido a buscar, si deseamos buscar por un campo específico o por todos los campos, rango de búsqueda dentro del campo y otras opciones más.

.- Ordenar y filtrar registros

Este editor nos permite ordenar la información fácilmente. Para ello desde el menú principal procedemos de la siguiente manera seleccionamos la opción Datos y nos presenta el siguiente menú.

Figura Nº 10

Vamos a indicar cada opción.

  • Actualizar. Nos permite refrescar los datos presentados realizando una nueva consulta en la tabla.
  • Ordenar. Nos permite ordenar los registros de diversas formas invocando una ventana de Ordenación donde podemos seleccionar entre varias opciones.

Figura Nº 11

Podemos indicar el o los campos de ordenamiento y su dirección y una vez seleccionado las opciones pulsamos Aceptar.

  • Orden ascendente. Nos ordena de una vez los registros de forma ascendente, marcando previamente la columna en el editor.
  • Orden descendente. Nos ordena de una vez los registros de forma descendente, marcando previamente la columna en el editor.
  • Filtro automático. Filtra por la columna seleccionada.
  • Usar filtro. Activamos / desactivamos el filtro.
  • Filtro estándar. Nos presenta una ventana con opciones para realizar un filtro de datos más específico.

Figura Nº 12

Podemos indicar los campos y la condición y el valor a buscar, una vez seleccionada las opciones pulsamos Aceptar.

.- Agregar un registro

Para agregar un registro en la tabla procedemos a ir al final de la línea y llenamos los campos y pulsamos enter y automáticamente el registro queda guardado en la tabla.

.- Eliminar un registro.

Seleccionamos el registro a eliminar y desde el menú Editar → Eliminar. O pulsamos el botón derecho del ratón y nos despliega un menú y seleccionamos Eliminar. Se nos presenta una ventana de confirmación y procedemos.

Figura Nº 13

Como podemos observar el editar los registros es muy fácil desde el GUI, claro también podemos editar y realizar estas acciones desde la ventana del comando SQL que indicamos anteriormente.

Hasta aquí tenemos las herramientas necesarias para crear y manipular las tablas y registros de una base de datos para tener el pilar o la base de nuestro proyecto, recordemos que debemos planificar previamente como son nuestras tablas y con las herramientas indicadas anteriormente podemos adelantar operaciones como consultas, ediciones, etc, para tener una idea clara de como se comporta los datos en nuestras tablas y validar lo que estamos haciendo y proceder a realizar los ajustes antes de comenzar con los formularios e informes.

 

Deja un comentario