Les bases de données ont besoin d’organiser logiquement les données. Les données sont rangées dans des tables pour les bases de données relationnelles. Mais parfois, les tables ne suffisent pas et on a besoin d’utiliser des tables temporaires.
C’est le cas lorsqu’il y a besoin de stocker des valeurs intermédiaires et de leur appliquer des opérations. Cela permet notamment d’éviter des requêtes redondantes et ayant un impact sur les ressources serveur. La table temporaire sert alors de tampon et permet de stocker ces données à faible durée de vie. Une fois que les opérations sont réalisées, il sera possible de stocker le résultat dans une table permanente et de supprimer la table temporaire.
Une table temporaire n’existe que dans le contexte de la session qui l’a créée.
- Comme pour les tables classiques, une table temporaire peut être requếtée : ajout, modification, suppression et lecture de données. Les instructions sont les mêmes.
- Une table temporaire est visible uniquement dans sa session et disparaît dès que la session est fermée. S’il y a plusieurs sessions en parallèle, chaque session aura sa ou ses propres tables temporaires. Il n’y aura pas de conflits entre elles ;
- Une table temporaire peut aussi être globale et visible par toutes les sessions simultanées. On
Une table temporaire est simplement construite en utilisant TEMPORARY dans une requête SQL :
CREATE TEMPORARY TABLE meilleurs_clients SELECT p.client_num, c.client_nom, ROUND(SUM(p.montant),2) ventes FROM paiement p INNER JOIN client c ON c.client_num = p.client_num GROUP BY p.client_num ORDER BY ventes DESC LIMIT 100;
Cette table temporaire extrait les 100 clients ayant réalisés les ventes les plus importantes. On peut ensuite utiliser la table temporaire pour réaliser d’autres opérations sans toucher les tables initiales des clients et des paiements :
SELECT client_num, client_nom, ventes FROM meilleurs_clients ORDER BY ventes DESC ;