PostgreSQL ALTER Table : AJOUTER une colonne, renommer des exemples de colonnes/tables

La commande ALTER TABLE permet de modifier la structure d'un PostgreSQL tableau. C'est la commande utilisée pour changer les colonnes du tableau ou le nom du tableau.

Syntaxe

Voici la syntaxe du PostgreSQL Commande ALTER TABLE :

ALTER TABLE table-name action;

Le paramètre table-name est le nom de la table que vous devez modifier.

Le paramètre action est l'action que vous devez effectuer, comme changer le nom d'une colonne, changer le type de données d'une colonne, etc.

Description

La commande ALTER TABLE modifie la définition d'une table existante. Il prend les sous-formulaires suivants :

  • AJOUTER UNE COLONNE: ceci utilise une syntaxe similaire à celle de la commande CREATE TABLE pour ajouter une nouvelle colonne à une table.
  • COLONNE DE DÉPOSE: pour supprimer une colonne de tableau. Les contraintes et index imposés aux colonnes seront également supprimés.
  • Définir/supprimer la valeur par défaut: À utiliser pour supprimer la valeur par défaut d'une colonne. Toutefois, le changement ne s'appliquera qu'aux versions ultérieures. INSÉRER les instructions.
  • SET/DROP NON NULL: Change si une colonne autorise ou non les valeurs nulles.
  • DÉFINIR LES STATISTIQUES : Pour définir la cible de collecte de statistiques pour chaque colonne pour les opérations ANALYZE.
  • STOCKAGE DES ENSEMBLES: Pour définir le mode de stockage d'une colonne. Cela déterminera où la colonne est conservée, qu'elle soit en ligne ou dans un tableau supplémentaire.
  • ENSEMBLE SANS OIDES: À utiliser pour supprimer l'ancienne colonne du tableau.
  • RENOMMER: pour changer le nom de la table ou le nom d'une colonne.
  • AJOUTER table_constraint: Utilisé pour ajouter une nouvelle contrainte à une table. Il utilise la même syntaxe que CREER LA TABLE commander.
  • CONTRAINTE DE CHUTE: À utiliser pour supprimer une contrainte de table.
  • PROPRIÉTAIRE: pour changer le propriétaire d'une table, d'une séquence, d'un index ou d'une vue en un certain utilisateur.
  • CLUSTER: pour marquer une table à utiliser pour effectuer de futures opérations de cluster.

Modifier une colonne

Une colonne peut être modifiée de plusieurs manières. De telles modifications peuvent être effectuées à l'aide de la commande ALTER TABLE. Discutons-en :

Ajout d'une nouvelle colonne

Pour ajouter une nouvelle colonne à un PostgreSQL table, la commande ALTER TABLE est utilisée avec la syntaxe suivante :

ALTER TABLE table-name
  ADD new-column-name column-definition;

Le nom-table est le nom de la table à modifier.

Le nom de la nouvelle colonne est le nom de la nouvelle colonne à ajouter.

La définition de colonne est la Type de données de la nouvelle colonne.

Voir le tableau des livres ci-dessous :

Ajout d'une nouvelle colonne dans PostgreSQL

Le tableau comporte deux colonnes, id et name. Nous devons ajouter une nouvelle colonne au tableau et lui donner le nom d'auteur. Exécutez simplement la commande suivante :

ALTER TABLE Book
  ADD author VARCHAR(50);

Après avoir exécuté la commande ci-dessus, la table Book se présente désormais comme suit :

Ajout d'une nouvelle colonne dans PostgreSQL

La nouvelle colonne a été ajoutée avec succès.

Renommer une colonne de tableau

Nous pouvons utiliser la commande ALTER TABLE pour changer le nom d'une colonne. Dans ce cas, la commande est utilisée avec la syntaxe suivante :

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

Le nom de la table est le nom de la table dont la colonne doit être renommée.

L'ancien nom est l'ancien/actuel nom de la colonne.

Le nouveau nom est le nouveau nom de la colonne. Considérez le tableau Livre ci-dessous :

Livre:

Renommer une colonne de tableau dans PostgreSQL

Nous avons besoin du nom de l’auteur de la colonne book_author. Voici la commande :

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Après avoir exécuté la commande, nous pouvons visualiser la structure de la table :

Renommer une colonne de tableau dans PostgreSQL

Le nom de la colonne a été modifié avec succès.

Définition d'une valeur par défaut pour une colonne

Nous pouvons définir une valeur par défaut pour une colonne de telle sorte que même si vous ne spécifiez pas de valeur pour cette colonne lors des opérations INSERT, la valeur par défaut sera utilisée. Dans ce cas, la commande ALTER TABLE peut être utilisée avec la syntaxe suivante :

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

Le nom-table est le nom de la table dont la colonne doit être modifiée.

Le nom de colonne est le nom pour lequel la valeur par défaut doit être définie.

La valeur est la valeur par défaut de la colonne.

Considérez le tableau Livre ci-dessous :

Définition d'une valeur par défaut pour une colonne

Nous devons définir une valeur par défaut pour la colonne book_author. Nous pouvons exécuter la commande suivante :

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';		

Maintenant, insérons une ligne dans le tableau :

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

Notez que nous avons inséré des valeurs pour seulement deux colonnes, id et name. Cependant, la valeur par défaut a été utilisée pour la colonne book_author :

Définition d'une valeur par défaut pour une colonne

Ajout d'une contrainte de vérification

Une contrainte de vérification permet de valider les enregistrements insérés dans une table. Nous pouvons le faire en combinant la commande ALTER TABLE avec l'instruction ADD CHECK. Syntaxe:

ALTER TABLE table-name ADD CHECK expression;

Le nom de la table est le nom de la table à modifier.

L'expression est la contrainte à imposer sur la colonne du tableau.

Modifions la colonne book_author de la table Book pour qu'elle n'accepte que les valeurs Nicholas et Samuel :

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Essayons maintenant d'insérer une valeur autre que Nicholas ou Samuel dans la colonne book_author de la table Book :

INSERT INTO Book
VALUES(7, 'Meilleur PostgreSQL Book', 'Gregory Bush');

L'instruction renverra l'erreur suivante :

Ajout d'une contrainte de vérification

L'opération d'insertion a échoué car nous avons violé la contrainte de vérification.

Renommer une table

Voici la syntaxe de la commande ALTER TABLE pour renommer une table :

ALTER TABLE table-name
  RENAME TO new-table-name;

Le nom de la table est le nom actuel de la table.

Le nouveau nom de table est le nouveau nom à attribuer à la table.

Par exemple, changeons le nom de la table Book en Books :

ALTER TABLE Book
  RENAME TO Books;

Utiliser pgAdmin

Voyons maintenant comment ces actions peuvent être effectuées à l'aide de pgAdmin.

Ajout d'une nouvelle colonne

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Ajouter une nouvelle colonne à l'aide de pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

ALTER TABLE Book
  ADD author VARCHAR(50);

Étape 4) Cliquez sur le bouton Exécuter.

Ajouter une nouvelle colonne à l'aide de pgAdmin

Étape 5) Pour vérifier si la colonne a été ajoutée, procédez comme suit :

  1. Cliquez sur Bases de données dans la navigation de gauche.
  2. Développez Démo.
  3. Développez les schémas.
  4. Développez Public.
  5. Développez les tableaux.
  6. Développez le livre.
  7. Développez les colonnes.

Ajouter une nouvelle colonne à l'aide de pgAdmin

La colonne aurait dû être ajoutée, comme indiqué ci-dessous :

Ajouter une nouvelle colonne à l'aide de pgAdmin

Renommer une colonne de tableau

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Renommer une colonne de tableau à l'aide de pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

Étape 4) Cliquez sur le bouton Exécuter.

Renommer une colonne de tableau à l'aide de pgAdmin

Étape 5) Pour vérifier si la modification a réussi, procédez comme suit :

  1. Cliquez sur Bases de données dans la navigation de gauche.
  2. Développez Démo.
  3. Développez les schémas.
  4. Développez Public.
  5. Développez les tableaux.
  6. Développez le livre.
  7. Développez les colonnes.

Renommer une colonne de tableau à l'aide de pgAdmin

Les colonnes devraient maintenant être les suivantes :

Renommer une colonne de tableau à l'aide de pgAdmin

La colonne a été modifiée avec succès.

Définition d'une valeur par défaut pour une colonne

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Définition d'une valeur par défaut pour une colonne

Étape 3) Tapez la requête dans l'éditeur de requêtes :

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';		

Étape 4) Cliquez sur le bouton Exécuter.

Définition d'une valeur par défaut pour une colonne

Étape 5) Pour tester, exécutez la commande suivante sur l'éditeur de requête :

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

Étape 6) Maintenant, nous pouvons interroger la table pour vérifier si la valeur par défaut a été insérée dans la colonne book_author :

Définition d'une valeur par défaut pour une colonne

Ajout d'une contrainte de vérification

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Ajout d'une contrainte de vérification à l'aide de pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Étape 4) Cliquez sur le bouton Exécuter.

Ajout d'une contrainte de vérification à l'aide de pgAdmin

Étape 5) Pour tester cela, procédez comme suit :

  1. Tapez la requête suivante dans l'éditeur de requêtes :
    INSERT INTO Book
    VALUES(7, 'Meilleur PostgreSQL Book', 'Gregory Bush');
    
  2. Cliquez sur le bouton Exécuter.

    Ajout d'une contrainte de vérification à l'aide de pgAdmin

    Il renverra ce qui suit :

Ajout d'une contrainte de vérification à l'aide de pgAdmin

Renommer une table

Pour accomplir la même chose via pgAdmin, procédez comme suit :

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Renommer une table à l'aide de pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

ALTER TABLE Book
  RENAME TO Books;

Étape 4) Cliquez sur le bouton Exécuter.

Renommer une table à l'aide de pgAdmin

Étape 5) Pour vérifier si la table a été renommée, procédez comme suit :

  1. Cliquez sur Bases de données dans la navigation de gauche.
  2. Développez Démo.
  3. Développez les schémas.
  4. Développez Public.
  5. Développez les tableaux.

Renommer une table à l'aide de pgAdmin

La table a été renommée avec succès.

Résumé

  • L'instruction ALTER TABLE permet de modifier la structure de la table.
  • La commande ALTER TABLE prend différentes formes en fonction de la tâche que vous devez effectuer.
  • La structure peut être constituée des colonnes du tableau ou du tableau lui-même.
  • Nous pouvons utiliser cette instruction pour changer le nom d'une table.
  • La commande ALTER TABLE peut être utilisée pour définir la valeur par défaut d'une colonne.
  • L'instruction peut être utilisée pour valider les valeurs saisies dans une colonne de tableau.

Téléchargez la base de données utilisée dans ce tutoriel