sábado, 7 de enero de 2017

relaciones con SQL en LibreOffice Base (XXIX)

LibreOffice Base
Hemos dedicado los primeros capítulos de este curso a repasar los comandos o instrucciones mas sencillo y simples de SQL que podemos utilizar en LibreOffice Base, debemos seguir progresando en nuestros conocimientos y ampliando lo que debemos considerar básicos, para llegar a un nivel aceptable de los mismos y estudiar algunos aspectos SQL que nos facilitarán el mantenimiento de nuestras bases de datos.



Recordemos donde podemos visualizar las relaciones en LibreOffice Base, en la barra de menú haga clic en Herramientas  - Relaciones, es esta opción puede observar todas las relaciones que ha creado a lo largo de la vida de su base de datos.

LibreOffice Base y SQL


Queda claro que en mí caso no tengo ninguna generada, precisamente ese es el motivo de este capítulo, crear una relación entre tablas, pero sin entorno gráfico, mediante instrucciones SQL.

Con anterioridad creamos la tabla Clientes, ahora vamos a crear la tabla Fármacos, vamos a vincular las dos tablas mediante dos campos, en la tabla Clientes será el campo ID que es clave única y en la tabla Fármacos será un campo llamado Cliente, con esta relación queremos indicar que un cliente tiene muchos Fármacos asignados, la relación será de uno a muchos.

Pasando a la práctica, observe la siguiente instrucción:

CREATE TABLE "Farmacos" ("ID" INT GENERATED BY DEFAULT AS IDENTITY
(START WITH  1, INCREMENT BY 1) PRIMARY KEY,
"Fármaco" VARCHAR(100) NOT NULL,
"Cantidad" INT NOT NULL,
"Fecha expedición" DATE  DEFAULT TODAY,
"Cliente" INT NOT NULL,
CONSTRAINT "comprobaciones" UNIQUE ("Cliente"),
FOREIGN KEY ("Cliente") REFERENCES "Clientes");

Vamos a crear una tabla llamada Fármacos, con una serie de restricciones y CONSTRAINT, esto lo puede ver en los capítulos restricciones al crear una tabla en SQL en LibreOffice Base (XIX)  y CONSTRAINT al crear una tabla en SQL en LibreOffice Base (XX).

Lo único nuevo que hemos añadido es:

FOREIGN KEY ("Cliente") REFERENCES "Clientes"); 

Con esto definimos un campo Cliente de la tabla Fármacos está vinculado con el campo de clave primaria de la tabla Clientes, de esta forma lo que indicamos es que un cliente puede tener muchos fármacos asignados.


En primer lugar introduciremos nuestra instrucción SQL, haga clic en Herramientas - SQL... 

LibreOffice Base y SQL

Nos muestra el siguiente cuadro de diálogo, donde puede introducir sentencias SQL directas, visualizando el resultado en el campo estado y salida.

LibreOffice Base y SQL

Introduzca la sentencia en el campo Orden a ejecutar y haga clic en el botón Ejecutar.

LibreOffice Base y SQL


Nos mostrará el estado de haber ejecutado esta instrucción en el cuadro de texto Estado, haga clic en el botón Cerrar.

LibreOffice Base y SQL

En principio no muestra la nueva tabla que se ha creado.

LibreOffice Base y SQL

Haga clic en la barra de menú en la opción Ver - Actualizar tablas.

LibreOffice Base y SQL

Le mostrará la nueva tabla que creo con la ejecución directa de la  instrucción SQL.

LibreOffice Base y SQL

Para ver las relación que hemos creado, haga clic en la barra de menú en la opción Herramientas  - Relaciones, es esta opción puede obsevar todas las relaciones que ha creado en su base de datos.

LibreOffice Base y SQL

Como puede observar ya le muestra la relación que acaba de crear, explicar que puede ver el tipo de relación que es de un cliente a muchos (n) fármacos.


0 comentarios:

Publicar un comentario