La commande ALTER TABLE est utilisée pour modifier la structure d'une table PostgreSQL. C'est la commande utilisée pour changer les colonnes de la table ou le nom de la table.
Dans ce tutoriel, vous apprendrez:
- Syntaxe
- Description
- Modifier une colonne
- Ajouter une nouvelle colonne
- Renommer une colonne de table
- Définition d'une valeur par défaut pour une colonne
- Ajout d'une contrainte de contrôle
- Renommer une table
- Utilisation de pgAdmin
Syntaxe
Voici la syntaxe de la commande PostgreSQL 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, telle que la modification du nom d'une colonne, la modification du 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:
- ADD COLUMN : cela utilise une syntaxe similaire à la commande CREATE TABLE pour ajouter une nouvelle colonne à une table.
- DROP COLUMN : pour supprimer une colonne de table. Les contraintes et index imposés aux colonnes seront également supprimés.
- SET / DROP DEFAULT : Utilisé pour supprimer la valeur par défaut d'une colonne. Cependant, la modification ne s'appliquera qu'aux instructions INSERT suivantes.
- SET / DROP NOT NULL : change si une colonne autorise les valeurs nulles ou non.
- SET STATISTICS: Pour définir la cible de collecte de statistiques pour chaque colonne pour les opérations ANALYZE.
- SET STORAGE : Pour définir le mode de stockage d'une colonne. Cela déterminera l'emplacement de la colonne, que ce soit en ligne ou dans une table supplémentaire.
- SET SANS OIDS : Permet de supprimer l'ancienne colonne de la table.
- RENAME : pour changer le nom de la table ou un nom de colonne.
- ADD table_constraint : à utiliser pour ajouter une nouvelle contrainte à une table. Elle utilise la même syntaxe que la commande CREATE TABLE.
- DROP CONSTRAINT : à 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 à un certain utilisateur.
- CLUSTER : pour marquer une table à utiliser pour la réalisation 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. Laissez-nous discuter de ceux-ci:
Ajouter une nouvelle colonne
Pour ajouter une nouvelle colonne à une table PostgreSQL, la commande ALTER TABLE est utilisée avec la syntaxe suivante:
ALTER TABLE table-nameADD new-column-name column-definition;
Le nom de la 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 le type de données de la nouvelle colonne.
Consultez le tableau des livres ci-dessous:
La table a deux colonnes, id et nom. Nous devons ajouter une nouvelle colonne à la table et lui donner le nom d'auteur. Exécutez simplement la commande suivante:
ALTER TABLE BookADD author VARCHAR(50);
Après avoir exécuté la commande ci-dessus, la table Book se présente désormais comme suit:
La nouvelle colonne a été ajoutée avec succès.
Renommer une colonne de table
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-nameRENAME 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 le nom ancien / actuel de la colonne.
Le nouveau nom est le nouveau nom de la colonne. Considérez le livre de tableau ci-dessous:
Livre:
Nous avons besoin du nom de l'auteur de la colonne pour book_author. Voici la commande:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Après avoir exécuté la commande, nous pouvons afficher la structure de la table:
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 de la table est le nom de la table dont la colonne doit être modifiée.
Le nom de colonne est le nom dont la valeur par défaut doit être définie.
La valeur est la valeur par défaut de la colonne.
Considérez le tableau des livres ci-dessous:
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 nom. Cependant, la valeur par défaut a été utilisée pour la colonne book_author:
Ajout d'une contrainte de contrôle
Une contrainte de vérification aide à valider les enregistrements qui sont 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 à la colonne du tableau.
Modifions la colonne book_author de la table Book afin qu'elle n'accepte que les valeurs, Nicholas et Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Maintenant, essayons d'insérer une valeur autre que Nicholas ou Samuel dans la colonne book_author de la table Book:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
L'instruction renverra l'erreur suivante:
L'opération d'insertion a échoué car nous avons enfreint la contrainte de vérification.
Renommer une table
Voici la syntaxe de la commande ALTER TABLE pour renommer une table:
ALTER TABLE table-nameRENAME 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, modifions le nom de la table Book en Books:
ALTER TABLE BookRENAME TO Books;
Utilisation de pgAdmin
Voyons maintenant comment ces actions peuvent être effectuées à l'aide de pgAdmin.
Ajouter une nouvelle colonne
Pour accomplir la même chose via pgAdmin, procédez comme suit:
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation sur la gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requête:
ALTER TABLE BookADD author VARCHAR(50);
Étape 4) Cliquez sur le bouton Exécuter.
Étape 5) Pour vérifier si la colonne a été ajoutée, procédez comme suit:
- Cliquez sur Bases de données dans la navigation de gauche.
- Développez la démo.
- Développez les schémas.
- Développez Public.
- Développez les tableaux.
- Développer le livre.
- Développez les colonnes.
La colonne aurait dû être ajoutée, comme indiqué ci-dessous:
Renommer une colonne de table
Pour accomplir la même chose via pgAdmin, procédez comme suit:
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation sur la gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requête:
ALTER TABLE BookRENAME COLUMN author TO book_author;
Étape 4) Cliquez sur le bouton Exécuter.
Étape 5) Pour vérifier si la modification a réussi, procédez comme suit:
- Cliquez sur Bases de données dans la navigation de gauche.
- Développez la démo.
- Développez les schémas.
- Développez Public.
- Développez les tableaux.
- Développer le livre.
- Développez les colonnes.
Les colonnes devraient maintenant être comme suit:
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)
- Dans la barre de navigation sur la gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requête:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Étape 4) Cliquez sur le bouton Exécuter.
É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:
Ajout d'une contrainte de contrôle
Pour accomplir la même chose via pgAdmin, procédez comme suit:
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation sur la gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requête:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Étape 4) Cliquez sur le bouton Exécuter.
Étape 5) Pour tester cela, procédez comme suit:
- Tapez la requête suivante dans l'éditeur de requête:
INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Cliquez sur le bouton Exécuter.
Il renverra ce qui suit:
Renommer une table
Pour accomplir la même chose via pgAdmin, procédez comme suit:
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation sur la gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requête:
ALTER TABLE BookRENAME TO Books;
Étape 4) Cliquez sur le bouton Exécuter.
Étape 5) Pour vérifier si la table a été renommée, procédez comme suit:
- Cliquez sur Bases de données dans la navigation de gauche.
- Développez la démo.
- Développez les schémas.
- Développez Public.
- Développez les tableaux.
La table a été renommée avec succès.
Résumé:
- L'instruction ALTER TABLE est utilisée pour 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 les colonnes de la table ou la table elle-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 entrées dans une colonne de table.
Téléchargez la base de données utilisée dans ce didacticiel