Dungeon of Bits
Aprendiendo informática.
Dungeon of Bits

Tipos de datos definidos por usuario en PostgreSQL

En este tutorial vamos a crear tipos de datos definidos por el usuario o la usuario en PostgreSQL.

PostgreSQL

Requisitos:

Para realizar esta práctica necesitamos un sistema operativo Linux, nosotros usaremos Ubuntu 22.04 LTS, además habremos instalado el gestor de bases de datos PostgreSQL, tutorial para instalar PostgreSQL.

Gestor PostgreSQL:

El Sistema Gestor de Bases de Datos PostgreSQL tiene web oficial y documentación en inglés PostgreSQL.

1.-Tipos de datos definidos por usuario en PostgreSQL:

1.1.- Crear un tipo de datos personalizado:

En PostgreSQL podemos crear tipos de datos complejos con atributos, para ello utilizamos la expresión CREATE TYPE.

Vamos a ver un ejemplo en el que crearemos un tipo de datos llamada persona, la cual contará con los siguientes atributos: id, nombre, primer apellido, segundo apellido y fecha de necimiento, la instrucción en PostgreSQL será:

CREATE TYPE persona AS (
    id INT, nombre VARCHAR, 
    primer_apellido VARCHAR, 
    segundo_apellido VARCHAR, 
    fecha_nacimiento DATE
);

Para ver el listado de tipos de un esquema de la base de datos usaremos el comando de Postgres dT:

\dT

PostgreSQL

Para ver los atributos de un tipo de datos de un esquema de la base de datos usamos el comando \d nombre de clase:

\d persona

PostgreSQL

1.2.- Modificar un tipo de datos personalizado:

1.2.1.- Cambiar nombre de tipo de datos:

Para cambiar el nombre de tipo usamos la sentencia RENAME, por ejemplo vamos a cambiar el combre del tipo persona por el de cliente:

ALTER TYPE persona RENAME TO cliente;

PostgreSQL

Y la volvemos a cambiar con la sentencia:

ALTER TYPE cliente RENAME TO persona;

1.2.2.- Añadir o quitar atributos:

Para añadir un atributo a un tipo usamos la sentencia ADD ATTRIBUTE, por ejemplo vamos a añadir el atributo dni a persona:

ALTER TYPE persona ADD ATTRIBUTE dni VARCHAR;

PostgreSQL

Para eliminar un atributo de un tipo usamos la sentencia DROP ATTRIBUTE, por ejemplo vamos a eliminar el atributo dni de persona:

ALTER TYPE persona DROP ATTRIBUTE dni;

PostgreSQL

1.2.3.- Cambiar el nombre de un atributo:

Para cambiar el nombre de un atributo usamos la sentencia RENAME ATTRIBUTE, por ejemplo vamos a cambiar el nombre de los atributos primer_apellido y segundo_apellido a los de apellido1 y apellido2:

ALTER TYPE persona RENAME ATTRIBUTE primer_apellido TO apellido1;
ALTER TYPE persona RENAME ATTRIBUTE segundo_apellido TO apellido2;

PostgreSQL

1.3.- Eliminar un tipo:

Para eliminar una clase usamos la sentencia DROP TYPE:

DROP TYPE persona;

PostgreSQL

2.- Tablas que utilizan tipos de datos definidos por el usuario:

2.1 Crear una tabla que contenga tipos definidos por el usuario:

Vamos a aprovechar que tenemos el tipo persona para crear una tabla que lo utilice, como hemos borrado el tipo persona lo volvemos a crear:

CREATE TYPE persona AS (
    nombre VARCHAR, 
    apellido VARCHAR    
);

Crearemos una tabla que tenga simplemente un campo id y un campo persona, la tabla se llamará personas.

CREATE TABLE personas (
    id int PRIMARY KEY, individuo persona
);

Insertamos un registro en el campo:

INSERT INTO personas VALUES (1, ('Tom','Selleck'));

Seleccionar solo los datos de tipo persona de la tabla:

SELECT individuo FROM personas;

Seleccionar solamente el campo nombre del tipo persona:

SELECT (individuo).nombre FROM personas;