SQL ET POSTGRE 3.11 : Modification du type de données dans colonne
Dans cette vidéo, nous voyons comment modifier le type de données d'une colonne existante sans recréer toute la table. C'est une opération courante quand on fait évoluer un schéma.
Syntaxe ALTER COLUMN ... TYPE
On commence la requête par ALTER TABLE suivi du nom de la table à modifier. On enchaîne avec ALTER COLUMN suivi du nom de la colonne, puis TYPE suivi du nouveau type souhaité.
ALTER TABLE exemple
ALTER COLUMN nationalite TYPE CHAR(2);
Ici, on change le type de la colonne nationalite en CHAR(2) — deux caractères fixes, parfait pour des codes ISO comme « FR », « US », « DE ». On sélectionne la requête, on l'exécute, elle revient avec succès. Pour vérifier, on fait un SELECT * FROM exemple et on observe le nouveau type appliqué.
Modifier plusieurs colonnes en une requête
PostgreSQL permet d'enchaîner plusieurs modifications dans une seule instruction ALTER TABLE, séparées par des virgules. C'est plus efficace que d'exécuter plusieurs requêtes séparées.
ALTER TABLE exemple
ALTER COLUMN nom TYPE VARCHAR(50),
ALTER COLUMN email TYPE VARCHAR(80);
Dans cet exemple, on change simultanément la colonne nom pour qu'elle accepte 50 caractères maximum (au lieu de 30) et la colonne email pour 80 caractères (au lieu de 50). Une seule transaction, deux modifications appliquées.
Récapitulatif
Pour modifier le type d'une colonne, le pattern est toujours le même : on cible la table avec ALTER TABLE, on désigne la colonne avec ALTER COLUMN, on impose le nouveau type avec TYPE. Cette opération est cruciale dès qu'on fait évoluer un schéma de production — pensez à vérifier qu'il n'y a pas de données existantes incompatibles avec le nouveau type, car PostgreSQL refuserait alors la conversion.
Dans la prochaine vidéo, nous abordons la suppression de tables dans une base de données.
Il est donc important de prendre en compte les implications de cette modification sur le référencement naturel de votre site. Il est conseillé de sauvegarder les données avant de les modifier et de s'assurer que la nouvelle structure de données est compatible avec les pages indexées par les moteurs de recherche. Si les données modifiées sont utilisées dans des pages web, il peut être nécessaire de mettre à jour les balises meta et les URL pour s'assurer que les moteurs de recherche continuent à indexer correctement les pages.
En résumé, la modification du type de données dans une colonne peut avoir un impact sur le référencement naturel de votre site web. Il est important de prendre les précautions nécessaires pour s'assurer que les modifications ne perturbent pas l'indexation des pages par les moteurs de recherche
En résumé
Cette leçon explique comment modifier le type de données d'une colonne existante dans PostgreSQL à l'aide de la requête ALTER TABLE. Elle démontre la syntaxe ALTER COLUMN ... TYPE avec des exemples concrets (changement de varchar(30) à varchar(50)), la modification de plusieurs colonnes dans une même requête, et comment vérifier les modifications avec SELECT.
Points clés
- Syntaxe complète : ALTER TABLE nom_table ALTER COLUMN nom_colonne TYPE nouveau_type;
- Possibilité de modifier plusieurs colonnes en une seule requête en les séparant par des virgules
- Utilisation de types énumérés (ex: char(2) pour codes pays) ou varchar avec contraintes de taille
- Vérification des modifications avec SELECT * FROM nom_table pour confirmer les changements
- Exemple d'augmentation de taille varchar : passage de varchar(30) à varchar(50) ou varchar(80)
Questions fréquentes
Quelle est la syntaxe SQL pour modifier le type d'une colonne dans PostgreSQL ?
ALTER TABLE nom_table ALTER COLUMN nom_colonne TYPE nouveau_type; Par exemple : ALTER TABLE exemple ALTER COLUMN nationalité TYPE char(2);
Peut-on modifier plusieurs colonnes à la fois dans une même requête ?
Oui, en utilisant une seule requête ALTER TABLE et en séparant les modifications par des virgules, comme : ALTER TABLE exemple ALTER COLUMN nom TYPE varchar(50), ALTER COLUMN email TYPE varchar(80);
Comment vérifier qu'une modification de type a bien été appliquée ?
Exécuter SELECT * FROM nom_table pour visualiser les données modifiées, ou utiliser \d nom_table pour voir la structure détaillée des colonnes avec leurs nouveaux types.