espece_id
smallint(6) unsigned NO
NULL
race_id
smallint(6) unsigned YES
NULL
mere_id
smallint(6) unsigned YES
NULL
pere_id
smallint(6) unsigned YES
NULL
disponible
tinyint(1)
YES
1
Réunir les données de plusieurs tables
Puisque cette méthode de création de table se base sur une requête de sélection, cela signifie qu'on peut très bien créer une table
sur la base d'une partie des colonnes d'une table existante.
Cela signifie également que l'on peut créer une table à partir de données provenant de plusieurs tables différentes.
Bien entendu, une table ne pouvant avoir deux colonnes de même nom, il ne faut pas oublier d'utiliser les alias pour renommer
certaines colonnes en cas de noms dupliqués.
Exemple 1 : création de Client_mini, qui correspond à une partie de la table Client.
Code : SQL
CREATE TABLE Client_mini
SELECT nom, prenom, date_naissance
FROM Client;
Exemple 2 : création de Race_espece, à partir des tables Espece et Race.
Code : SQL
CREATE TABLE Race_espece
SELECT Race.id, Race.nom, Espece.nom_courant AS espece, Espece.id AS
espece_id
FROM Race
INNER JOIN Espece ON Espece.id = Race.espece_id;
Utilité des tables temporaires
Les tables temporaires n'existant que le temps d'une session, leur usage est limité à des situations précises.
Gain de performance
Si, dans une même session, vous devez effectuer des calculs et/ou des requêtes plusieurs fois sur le même set de données, il
peut être intéressant de stocker ce set de données dans une table temporaire, pour travailler sur cette table.
En effet, une fois vos données de travail isolées dans une table temporaire, les requêtes vous servant à sélectionner les données
qui vous intéressent seront simplifiées, donc plus rapides.
Typiquement, imaginons qu'on désire faire une série de statistiques sur les adoptions de chiens.
Quelles races sont les plus demandées ?
Y a-t-il une période de l'année pendant laquelle les gens adoptent beaucoup ?
Nos clients ayant adopté un chien sont-ils souvent dans la même région ?
Les chiens adoptés sont-ils plutôt des mâles ou des femelles ?
…
On va avoir besoin de données provenant des tables Animal, Race, Client et Adoption, en faisant au minimum une jointure à
chaque requête pour n'avoir que les données liées aux chiens.
Il peut dès lors être intéressant de stocker toutes les données dont on aura besoin dans une table temporaire.
Code : SQL
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
363/414
www.openclassrooms.com
smallint(6) unsigned NO
NULL
race_id
smallint(6) unsigned YES
NULL
mere_id
smallint(6) unsigned YES
NULL
pere_id
smallint(6) unsigned YES
NULL
disponible
tinyint(1)
YES
1
Réunir les données de plusieurs tables
Puisque cette méthode de création de table se base sur une requête de sélection, cela signifie qu'on peut très bien créer une table
sur la base d'une partie des colonnes d'une table existante.
Cela signifie également que l'on peut créer une table à partir de données provenant de plusieurs tables différentes.
Bien entendu, une table ne pouvant avoir deux colonnes de même nom, il ne faut pas oublier d'utiliser les alias pour renommer
certaines colonnes en cas de noms dupliqués.
Exemple 1 : création de Client_mini, qui correspond à une partie de la table Client.
Code : SQL
CREATE TABLE Client_mini
SELECT nom, prenom, date_naissance
FROM Client;
Exemple 2 : création de Race_espece, à partir des tables Espece et Race.
Code : SQL
CREATE TABLE Race_espece
SELECT Race.id, Race.nom, Espece.nom_courant AS espece, Espece.id AS
espece_id
FROM Race
INNER JOIN Espece ON Espece.id = Race.espece_id;
Utilité des tables temporaires
Les tables temporaires n'existant que le temps d'une session, leur usage est limité à des situations précises.
Gain de performance
Si, dans une même session, vous devez effectuer des calculs et/ou des requêtes plusieurs fois sur le même set de données, il
peut être intéressant de stocker ce set de données dans une table temporaire, pour travailler sur cette table.
En effet, une fois vos données de travail isolées dans une table temporaire, les requêtes vous servant à sélectionner les données
qui vous intéressent seront simplifiées, donc plus rapides.
Typiquement, imaginons qu'on désire faire une série de statistiques sur les adoptions de chiens.
Quelles races sont les plus demandées ?
Y a-t-il une période de l'année pendant laquelle les gens adoptent beaucoup ?
Nos clients ayant adopté un chien sont-ils souvent dans la même région ?
Les chiens adoptés sont-ils plutôt des mâles ou des femelles ?
…
On va avoir besoin de données provenant des tables Animal, Race, Client et Adoption, en faisant au minimum une jointure à
chaque requête pour n'avoir que les données liées aux chiens.
Il peut dès lors être intéressant de stocker toutes les données dont on aura besoin dans une table temporaire.
Code : SQL
Partie 6 : Au-delà des tables classiques : vues, tables temporaires et vues matérialisées
363/414
www.openclassrooms.com
