Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 2 · SQL de base

Modifier et supprimer une relation

DROP TABLE relation supprime la table, ses données et sa définition. Si une table a été mal définie, mieux vaut la modifier que la reconstruire : on évite de perdre les données. C'est le rôle d'ALTER TABLE, qui permet d'ajouter/supprimer un attribut, une clé primaire ou un index, d'ajouter une contrainte d'unicité, de changer une valeur par défaut, une définition ou le nom de la table.

BesoinSyntaxe du cours
Ajouter un attributALTER TABLE Personnes ADD fax DECIMAL(10,0) ; position : FIRST ou AFTER téléphone. Le nom ne doit pas déjà exister.
Supprimer un attributALTER TABLE Personnes DROP prénom : la colonne et ses valeurs disparaissent
Créer / supprimer une clé primaireADD PRIMARY KEY (nom, prénom) (seulement s'il n'y en a pas déjà) / DROP PRIMARY KEY (sans clé primaire, la commande est simplement ignorée)
Valeur par défautALTER attribut SET DEFAULT valeur / DROP DEFAULT : n'affecte pas les lignes déjà insérées
Changer la définitionMODIFY fax VARCHAR(14) (même nom) ; CHANGE fax num_fax VARCHAR(14) (avec renommage)
Renommer la tableALTER TABLE Personnes RENAME Carnet
IndexADD INDEX nom_complet (nom, prénom) / DROP INDEX nom_complet

À toi de coder

Ajouter une colonne sans perdre les données

ALTER TABLE modifie la définition d'une relation après coup : ajouter ou supprimer une colonne, une clé, un index, changer un type ou le nom de la table. Plutôt que de supprimer la table et de la reconstruire (et de perdre ses données), on la modifie.

Ajoute la colonne fax (VARCHAR(14)) à Personnes. (Hors cours : MySQL accepte FIRST / AFTER pour choisir la place ; SQLite ajoute toujours en fin de table.)

Ctrl/⌘+Entrée

Vérifie que tu as compris

Que risque-t-on avec ALTER TABLE Personnes DROP prénom quand UNIQUE(nom, prénom) existe ?

Vérifie que tu as compris

Quelle différence entre MODIFY et CHANGE ?

Optimiser

Après la suppression de grandes parties d'une table indexée, les index des tuples supprimés sont conservés et rallongent les sélections. OPTIMIZE TABLE Personnes supprime ces index obsolètes et comble les « trous ».