L3 Info : SGBD
 
◃  Ch. 7 Implantation des données avec SQL (DDL)  ▹
 

Création conditionnelle de tables
Création de tables temporaires

  • Pour éviter d'essayer de recréer une table existante (disponible avec MySQL et PostgreSQL)
    CREATE TABLE IF NOT EXISTS nomTable (...
    • permet simplement d'éviter un message d'erreur en cas de tentative sur une table inexistante
  • Pour stocker des données extraites d'autres tables (utilisé en général pour créer des tables temporaires)
    CREATE TABLE nom (col1, ...) AS SELECT ...
    • Attention : les données stockées dans cette nouvelle table sont copiées depuis les tables d'origines.
    • Toutes modifications du contenu des tables d'origine, n'affecte pas le contenu de la nouvelle table.
  • Exemple :
    CREATE TABLE DipRespTemp(dip_nom, nom_resp, prenom_resp)
    AS SELECT dip_nom, prof_nom, prof_prenom
            FROM Professeur NATURAL JOIN Diplome;
    Usage :
    pgl2mi=# SELECT * FROM DipRespTemp;
     dip_nom | nom_resp | prenom_resp
    ---------+----------+-------------
     Licence | Jay      | Véronique
     Master  | Amanton  | Laurent
    (2 rows)
    
    pgl2mi=# UPDATE diplome SET prof_id=4 WHERE dip_id=1;
    UPDATE 1
    
    pgl2mi=# SELECT * FROM DipRespTemp;
     dip_nom | nom_resp | prenom_resp
    ---------+----------+-------------
     Licence | Jay      | Véronique
     Master  | Amanton  | Laurent
    (2 rows)
    
    pgl2mi=# SELECT dip_nom, prof_nom, prof_prenom
            FROM Professeur NATURAL JOIN Diplome;
     dip_nom | nom_resp | prenom_resp
    ---------+----------+-------------
     Master  | Amanton  | Laurent
     Licence | Balev    | Stefan
    (2 rows)