PostgreSQL - Schéma

UNE schemaest une collection nommée de tables. Un schéma peut également contenir des vues, des index, des séquences, des types de données, des opérateurs et des fonctions. Les schémas sont analogues aux répertoires au niveau du système d'exploitation, sauf que les schémas ne peuvent pas être imbriqués. L'instruction PostgreSQL CREATE SCHEMA crée un schéma.

Syntaxe

La syntaxe de base de CREATE SCHEMA est la suivante -

CREATE SCHEMA name;

nom est le nom du schéma.

Syntaxe pour créer une table dans le schéma

La syntaxe de base pour créer une table dans le schéma est la suivante -

CREATE TABLE myschema.mytable (
...
);

Exemple

Voyons un exemple pour créer un schéma. Connectez-vous à la base de données testdb et créez un schéma myschema comme suit -

testdb=# create schema myschema;
CREATE SCHEMA

Le message "CREATE SCHEMA" signifie que le schéma a été créé avec succès.

Maintenant, créons une table dans le schéma ci-dessus comme suit -

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)
);

Cela créera une table vide. Vous pouvez vérifier la table créée avec la commande donnée ci-dessous -

testdb=# select * from myschema.company;

Cela produirait le résultat suivant -

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

Syntaxe pour supprimer le schéma

Pour supprimer un schéma s'il est vide (tous les objets qu'il contient ont été supprimés), utilisez la commande -

DROP SCHEMA myschema;

Pour supprimer un schéma comprenant tous les objets contenus, utilisez la commande -

DROP SCHEMA myschema CASCADE;

Avantages de l'utilisation d'un schéma

  • Il permet à de nombreux utilisateurs d'utiliser une base de données sans interférer les uns avec les autres.

  • Il organise les objets de base de données en groupes logiques pour les rendre plus faciles à gérer.

  • Les applications tierces peuvent être placées dans des schémas distincts afin de ne pas entrer en collision avec les noms d'autres objets.