PostgreSQL - Esquema

UN schemaes una colección de tablas con nombre. Un esquema también puede contener vistas, índices, secuencias, tipos de datos, operadores y funciones. Los esquemas son análogos a los directorios en el nivel del sistema operativo, excepto que los esquemas no se pueden anidar. La declaración de PostgreSQL CREATE SCHEMA crea un esquema.

Sintaxis

La sintaxis básica de CREATE SCHEMA es la siguiente:

CREATE SCHEMA name;

Donde nombre es el nombre del esquema.

Sintaxis para crear una tabla en esquema

La sintaxis básica para crear una tabla en el esquema es la siguiente:

CREATE TABLE myschema.mytable (
...
);

Ejemplo

Veamos un ejemplo para crear un esquema. Conéctese a la base de datos testdb y cree un esquema myschema de la siguiente manera:

testdb=# create schema myschema;
CREATE SCHEMA

El mensaje "CREAR ESQUEMA" significa que el esquema se creó correctamente.

Ahora, creemos una tabla en el esquema anterior de la siguiente manera:

testdb=# create table myschema.company(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25),
   SALARY   DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

Esto creará una tabla vacía. Puede verificar la tabla creada con el comando que se proporciona a continuación:

testdb=# select * from myschema.company;

Esto produciría el siguiente resultado:

id | name | age | address | salary
----+------+-----+---------+--------
(0 rows)

Sintaxis para eliminar el esquema

Para eliminar un esquema si está vacío (todos los objetos en él se han eliminado), use el comando -

DROP SCHEMA myschema;

Para eliminar un esquema que incluya todos los objetos contenidos, use el comando -

DROP SCHEMA myschema CASCADE;

Ventajas de usar un esquema

  • Permite que muchos usuarios utilicen una base de datos sin interferir entre sí.

  • Organiza los objetos de la base de datos en grupos lógicos para hacerlos más manejables.

  • Las aplicaciones de terceros se pueden colocar en esquemas separados para que no choquen con los nombres de otros objetos.