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 :
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 :
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:
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 :
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 :
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 :
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 :
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)
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
É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.
É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 Démo.
- Développez les schémas.
- Développez Public.
- Développez les tableaux.
- Développez le livre.
- Développez les colonnes.
La colonne aurait dû être ajoutée, comme indiqué ci-dessous :
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)
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
É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.
É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 Démo.
- Développez les schémas.
- Développez Public.
- Développez les tableaux.
- Développez le livre.
- Développez les colonnes.
Les colonnes devraient maintenant être les suivantes :
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 à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
É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.
É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 vérification
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 à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
É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.
Étape 5) Pour tester cela, procédez comme suit :
- Tapez la requête suivante dans l'éditeur de requêtes :
INSERT INTO Book VALUES(7, 'Meilleur 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 à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
É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.
É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 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 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