Astuce :
SQL Tips : Créer une table avec le résultat d'une requête

But : Notre but dans cette exemple est de pouvoir travailler sur une copie des lignes ayant une longueur comprisent entre 10 et 400. Mais cette astuce peux aussi être utilisée pour : Créer un clone d'une table, figer les données à un instant donné, travailler sur un sous ensemble de données, simplifier un ordre sql, etc.

Prérequis : Savoir afficher le(s) champs d'une table correspondant aux valeurs choisies (clause WHERE).

Difficulté : 1 (Facile)

L'ordre SQL permettant de créer une table pré-remplie est le suivant  :

Exemple :

  • Données dans la table "pdb" :
code_pdb length code_uniprotkb
1F88 348 P02699
3IYO 666 Q1AHV0
3HYD 7 P01308
2FGT 417 Q794W0
3B4T 262 Q10628
  • Requête qui extrait les lignes que nous souhaitons, celle avec une longueur comprise entre 10 et 400 :

  • La création de la nouvelle table pré-remplie :

  • Pour vérification on affiche le contenu de la table pdb_length :

code_pdb length code_uniprotkb
1F88 348 P02699
3B4T 262 Q10628

Les modifications dans la table pdb ne seront pas répercutées sur la table pdb_length et inversement. Nous venons de voir comment créer une table pré-remplie avec le jeu de données sur lequel nous souhaitons travailler et indépendant des données de départ.

Pour aller plus loin :

Il est possible de faire la même chose tout en gardant le lien entre les données, ce mécanisme s'appelle VIEW.

=> La table pdb_length est une VIEW de la table pdb. Ceci à l'avantage que toute modification par l'intermédiaire de cette vue (pdb_length) sera répercutée dans les données de la table (pdb) et inversement.

Liens :

 

Catégorie: Astuce | Tags: ,

Un commentaire sur “SQL Tips : Créer une table avec le résultat d'une requête

  1. sympa comme astuce, j'aurais lu ca il y a quelques heures ca m'aurait fait gagner pas mal de temps... T.T
    bon, faut d'abord que je verifie si ca fonctionne avec postgresql ;D

Laisser un commentaire