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 :
1 |
CREATE TABLE nom_table AS requete ; |
Exemple :
- Données dans la table "pdb" :
- Requête qui extrait les lignes que nous souhaitons, celle avec une longueur comprise entre 10 et 400 :
1 |
SELECT code_pdb, length, code_uniprotkb FROM pdb WHERE length BETWEEN 10 and 400 ; |
- La création de la nouvelle table pré-remplie :
1 2 |
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 :
1 |
SELECT * from pdb_length |
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.
1 2 |
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 :
Laisser un commentaire