Estas restricciones definen condiciones que deben cumplirse cuando se introducen datos.
Observe la siguiente instrucción:
CREATE TABLE "Socios" ("ID" INT GENERATED BY DEFAULT AS IDENTITY
(START WITH 1, INCREMENT BY 1) PRIMARY KEY,
"Apellidos" VARCHAR(50) NOT NULL,
"Nombre" VARCHAR(50) NOT NULL,
"Especialidad" VARCHAR(100),
"Número socio" INT NOT NULL,
"Fecha Alta" DATE DEFAULT TODAY,
"Fecha Baja" DATE DEFAULT TODAY,
"Estado" BOOLEAN,
"Ingresos" INT NOT NULL,
CONSTRAINT "comprobaciones" UNIQUE ("Número socio"),
CHECK ("Ingresos">999 AND "Ingresos"<10001));
Con esta instrucción crearemos una tabla llamada Especialistas, el campo clave será ID que se lo hemos indicado con la cláusuala PRIMARY KEY, la cláusula GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), indicará que es un campo autoincremental, que comienza en el valor uno y se incrementa en uno.
Seguidamente hemos declarado varios campos con la cláusula NOT NULL, los campos no tendrán valores nulos, no confundir con espacios.
La ayuda de LibreOffice lo explica muy bien, NULL es una cadena vacía es una cadena con longitud cero (""). Normalmente, un valor NULL no es lo mismo que una cadena vacía. En general, el termino NULL es usado para denotar un valor indefinido, un valor desconocido, o "un valor no ingresado aun.". Los sistemas de bases de datos varían y pueden manejar un valor NULL de manera diferente. Referirse a las documentaciones de las bases de datos que se están usando.
Para terminar tenemos unos campos tipo DATE, a los cuales les hemos incluido la cláusula DEFAULT TODAY, para que por defecto inserte la fecha del día
Los campos tipo DATE, TIME o TIMESTAMP puede inicializarlos con CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, TODAY, NOW.
Si desea saber mas sobre los tipos de campos consulte el artículo, LibreOffice Base - Tipos de datos.
Como hemos explicado al comienzo del capítulo, los o las CONSTRAINT definen una serie de condiciones que deben cumplirse cuando se introducen datos, son una restricciones añadidas a la tabla para controlar los datos que van insertándose en los campos de la tabla.
Estas CONSTRAINT se definen de la siguiente forma:
CONSTRAINT "comprobaciones"
Después de esto comenzaremos a definir nuestras restricciones para la tabla, en este caso le hemos aplicado al campo Número socio, que sea único o que no haya otro registro con el mismo va valor.
Otra restricción que hemos aplicado es:
CHECK ("Ingresos">999 AND "Ingresos"<10001))
Para que los valores que se vayan ingresando en el campo Ingresos, sean superiores a 999 y menores de 10001.
En primer lugar introduciremos nuestra instrucción SQL, haga clic en Herramientas - SQL...
Nos muestra el siguiente cuadro de diálogo, donde puede introducir sentencias SQL directas, visualizando el resultado en el campo estado y salida.
Introduzca la sentencia en el campo Orden a ejecutar y haga clic en el botón Ejecutar.
En principio no muestra la nueva tabla que se ha creado.
Haga clic en la barra de menú en la opción Ver - Actualizar tablas.
Le mostrará la nueva tabla que creo con la ejecución directa de la instrucción SQL.
Haga doble clic sobre ella para comprobar que se creo correctamente. Como hemos dicho al comienzo del capítulo los campos de Apellidos y Nombre pueden ir a espacios pero no los iniciará a nulos, las fecha en caso de no introducirlas las iniciará con la fecha del día.
Puede rellenar los campos en la base de datos, provocaremos un error para comprobar que funciona la definición que hemos definido, dejamos vacío el campo Número de socio e intentamos añadir un nuevo registro a la tabla, para ver que nos muestra.
Al intentar añadir un nuevo registro sin haber terminado de rellenar los campos que les hemos definido una CONSTRAINT, nos muestra este error.
Si hacemos clic en el botón Más nos amplia la información.
Seguimos probando y volvemos a provocar otro error, en este caso con el campo Ingresos, vamos a insertar un vamos menor de 1000. Al intentar añadir un nuevo registro sin haber terminado de rellenar los campos que les hemos definido una CONSTRAINT, nos muestra este error.
SI hacemos clic en el botón Más nos amplia la información.
Insertamos los datos corrector y pasamos a otro registro.
En los próximos capítulos iremos viendo algunas variantes de esta instrucción SQL. Le recomiendo leer el artículo ver las CONSTRAINT de una Base de datos en LibreOffice Base con SQL (XXI).
0 comentarios:
Publicar un comentario