Skip to main content

Dominios y tipos

Dominios

Creamos un dominio cuando vamos aprovecharlo más veces, estos dominios pueden utilizar expresiones regulares.

Dominio para comprobar que los datos de un mayor de edad

CREATE DOMAIN edatAdulto_Dom AS integer
CONSTRAINT edatAdulto_Dom_CK CHECK (
VALUE >= 18);

Dominio para comprobar que los datos numéricos son positivos

CREATE DOMAIN positivosDom AS integer (
CONSTRAINT positivoDom_CK CHECK (
VALUE >=0);

Dominio para comprobar los números del código postal

CREATE DOMAIN codipostalDom AS int (
CONSTRAINT codipostalDom_ck CHECK (
VALUE ~’^[0-9]{5}$’);

Dominio para comprobar que el número de dni es introducido correctamente

CREATE DOMAIN dni_Dom AS varchar(9)
CONSTRAINT dni_Dom_CK CHECK (
VALUE ~’^[0-9]{8}[a-zA-Z]$’);

Dominio para comprobar la correcta introducción de un email.

CREATE DOMAIN email_Dom AS varchar (50)
CONSTRAINT email_Dom_CK CHECK (
VALUE ~’^[a-zA-z0-9]+@[a-zA-z0-9]+\.[a-z]{2,4}$’);

 

Dominio para la comprabación de una dirección web.

CREATE DOMAIN http_Dom AS varchar(100)
CONSTRAINT http_Dom_CK CHECK (
VALUE ~’^http://www\.[a-z0-9]+\.([a-z0-9]+\.)*[a-z]{2,4}$’

Tipos

Los tipos se crean para tener una manera de enumerar, ejemplo:

CREATE TYPE escala_notas AS ENUM (‘N’,’D’,’C-‘,’C+’,’B’,’A’);

Nos crea un tipo en el cuál solo podemos utilizar los valores arriba comentados

Repaso de las expresiones regulares para postgresql

  • [0-9] del cero a nueve una vez
  • [0,9] o el cero o el nueve
  • [0-9]* cero o más veces
  • [0-9]+ como mínimo una vez
  • [0-9]? cero o una vez
  • [0-9]{5} 5 repeticiones del 0 al 9
  • [0-9]{2,4} de 2 a 4 repeticiones
  • [a-zA-z0-9]{10} 10 caracteres que irán desde la A a la Z tanto mayús. como minús. y del 0 al 9.