PostgreSQL Schéma

Un schéma PostgreSQL peut être vu comme une collection de tables.

Un schéma peut contenir des vues, des index, des types de données, des fonctions, des opérateurs, etc.

Le même nom d'objet peut être utilisé dans différents schémas sans conflit ; par exemple, schema1 et myschema peuvent tous deux contenir une table nommée mytable.

Avantages de l'utilisation des schémas :

  • Permet à plusieurs utilisateurs d'utiliser une seule base de données sans interférer les uns avec les autres.

  • Organise les objets de la base de données en groupes logiques pour faciliter leur gestion.

  • Les objets des applications tierces peuvent être placés dans des schémas séparés afin qu'ils n'entrent pas en conflit avec les noms d'autres objets.

Un schéma est similaire à un répertoire au niveau du système d'exploitation, mais les schémas ne peuvent pas être imbriqués.

Syntaxe

Nous pouvons utiliserCREATE SCHEMA instruction pour créer un schéma, la syntaxe est la suivante :

CREATE SCHEMA myschema (
...
);

L'instruction ci-dessus créera un schéma nommé myschema.

Les schémas sont couramment utilisés pour organiser et isoler les objets de base de données, évitant les conflits de noms d'objets.

Pour créer une table, utilisez l'instruction CREATE TABLE :

CREATE TABLE myschema.mytable (
    column1 datatype1,
    column2 datatype2,
    ...
);

L'instruction ci-dessus créera une table nommée mytable dans le schéma myschema, et définira une série de colonnes et leurs types de données.

Veuillez noter que datatype1, datatype2, etc. ci-dessus doivent être remplacés par des types de données réels, tels que integer, varchar(255), etc.

Exemples

Ensuite, nous nous connectons à exampledb pour créer le schéma myschema :

exampledb=# create schema myschema;
CREATE SCHEMA

Le résultat de sortie "CREATE SCHEMA" indique que le schéma a été créé avec succès.

Ensuite, nous créons une autre table :

exampledb=# 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)
);

La commande ci-dessus crée une table vide. Nous utilisons le SQL suivant pour vérifier si la table a été créée :

exampledb=# select * from myschema.company;
 id | name | age | address | salary 
----+------+-----+---------+--------
(0 rows)

Supprimer un schéma

Supprimer un schéma vide (tous les objets qu'il contient ont déjà été supprimés) :

DROP SCHEMA myschema;

Supprimer un schéma ainsi que tous les objets qu'il contient :

DROP SCHEMA myschema CASCADE;
Autres extensions