Accessibility Tools

- Le blog participatif de bioinformatique francophone depuis 2012 -

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  :

CREATE TABLE nom_table AS requete;

Exemple :

  • Données dans la table "pdb" :
code_​pdblengthcode_​uniprotkb
1F88348P02699
3IYO666Q1AHV0
3HYD7P01308
2FGT417Q794W0
3B4T262Q10628
  • Requête qui extrait les lignes que nous souhaitons, celle avec une longueur comprise entre 10 et 400 :
SELECT code_pdb, length, code_uniprotkb FROM pdb WHERE length BETWEEN 10 and 400;
  • La création de la nouvelle table pré-​remplie :
CREATE TABLE pdb_length AS SELECT code_pdb, length, code_uniprotkb FROM pdb
WHERE length BETWEEN 10 and 400;
  • Pour vérification on affiche le contenu de la table pdb_​length :
SELECT * from pdb_length
code_​pdblengthcode_​uniprotkb
1F88348P02699
3B4T262Q10628

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.

CREATE VIEW pdb_length AS SELECT code_pdb, length, code_uniprotkb FROM pdb
WHERE length BETWEEN 10 and 400;

=> 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 :




Commentaires

Une réponse à “SQL Tips : Créer une table avec le résultat d'une requête”

  1. Avatar de sansen

    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

Pour insérer du code dans vos commentaires, utilisez les balises <code> et <\code>.