Las expresiones regulares son muy útiles cuando escribimos un SELECT para filtrar el contenido de las tablas y así obtener los datos que nos interesan. Algo que poca gente sabe es que también pueden ser usadas en las restricciones CHECK, y que si las usamos allí disminuiremos la probabilidad de que entre “basura” en nuestras tablas.

Caracteres que pueden ser usados en las expresiones regulares:

[ ]  ( )  { } |  ^  -  +  *  % _ ?

Clases de caracteres que pueden ser usadas en las expresiones regulares

[:ALPHA:]
[:DIGIT:]
[:ALNUM:]
[:UPPER:]
[:LOWER:]
[:SPACE:]
[:WHITESPACE:]

Entonces, si nuestra columna es CHAR o VARCHAR podríamos escribir restricciones CHECK como las siguientes:

Ejemplo 1.

Listado 1.

ALTER TABLE 
   SUSTANTIVOS
ADD CONSTRAINT 
   CHK_SUSTANTIVOS CHECK (
      SUS_NOMBRE SIMILAR TO '_ASO'
   )

Que aceptará a ‘CASO’, a ‘VASO’, a ‘PASO’, a ‘RASO’, pero no a ‘CASOS’ ni a ‘AFRICA’. ¿Por qué? porque el primer carácter puede ser cualquiera pero los 3 siguientes deben ser sí o sí ‘ASO’. Y deben usarse 4 caracteres, ni uno más.

Ejemplo 2.

Listado 2.

 
ALTER TABLE 
   SUSTANTIVOS 
ADD CONSTRAINT 
   CHK_SUSTANTIVOS CHECK (
      SUS_NOMBRE SIMILAR TO '[[:ALPHA:]]*' )

Ahora le estamos ordenando que acepte solamente caracteres alfabéticos, si intentamos introducir números o cualquier carácter que no sea una letra, los rechazará.

Ejemplo 3.

Listado 3.

 
ALTER TABLE 
   SUSTANTIVOS 
ADD CONSTRAINT 
   CHK_SUSTANTIVOS CHECK (
      SUS_NOMBRE SIMILAR TO '[[:DIGIT:]]*' )

Y ahora le estamos diciendo que acepte solamente dígitos. Cualquier otro carácter será rechazado.

Conclusión:

La restricción CHECK es muy útil para impedir que entre “basura” en nuestra Base de Datos. Como sabes, se le llama “basura” a cualquier carácter, palabra o dato que está pero que no debería estar.

Las expresiones regulares son muy usadas en los SELECT para filtrar las filas que nos interesan, y es bueno saber que también pueden ser usadas en las restricciones CHECK. De esta manera son una herramienta más que tenemos para asegurarnos que el contenido de nuestras tablas sea correcto y consistente.

Si aún no sabes usar las expresiones regulares, en los siguientes enlaces hay artículos que te mostrarán como se usan.

Artículos relacionados:

Los predicados de comparación

Usando SIMILAR TO

Validando un e-mail

El índice del blog Firebird21

El foro del blog Firebird21

Anuncios