• Keine Ergebnisse gefunden

CHAPITRE II : TRAITEMENT ET ORGANISATION

II. 2.2.2.5. Jointure de tables sans clause WHERE

II.4. Requête-modification de tables

D’une manière générale, une requête-modification est une requête dans laquelle on modifie une table existante (sans avoir besoin de créer une nouvelle table) soit en ajoutant de nouvelles variables, soit en ajoutant de nouvelles lignes d’observations, ou simplement en modifiant les valeurs des variables existantes.

II.4.1. Modifier les variables dans une table existante

Pour pouvoir modifier les valeurs des variables dans une table avec une PROC SQL, on utilise l’instruction UPDATE en indiquant la formule de modification. Les exemples ci-dessous sont des illustrations.

Exemple 1 :

PROC SQL ;

UPDATE country_tab SET

superficie= superficie*1000000, population=population/1000000 , ;

QUIT;

Exemple 2 : PROC SQL ;

UPDATE country_tab SET

population=population*1,05 WHERE namel like '%B' ;

QUIT;

II.4.2. Ajouter de nouvelles variables à une table existante

La commande UPDATE permet de modifier les variables existantes dans une table mais elle ne permet pas d’ajouter de nouvelles. Il faut alors utiliser la commande ALTER TABLE avec l’instruction ADD pour insérer dans une premier temps de nouvelles variables dans la table et dans un second temps utiliser UPDATE pour ajouter les formules de calcul. L’exemple ci-dessous est une illustration.

/* Déclaration de la variable*/

PROC SQL;

ALTER TABLE COUNTRY_TAB

ADD density_pop NUM LABEL='Population Density' FORMAT=6.2;

QUIT;

/* Formule de calcul*/

PROC SQL;

UPDATE country_tab

SET density=population/area;

QUIT;

II.4.3. Sélection ou suppression de variable avec création de nouvelle table

Pour sélectionner ou supprimer une ou plusieurs dans une proc SQL, on utilise les instructions KEEP ou DROP dans la clause FROM (Voir exemples ci-dessous).

/* SUPPRESSION */

PROC SQL;

CREATE TABLE FACTURE2 AS SELECT *

FROM FACTURE (DROP=NOM_CLIENT NUM_EMPLOYE) ; QUIT;

/* SELECTION */

PROC SQL;

CREATE TABLE FACTURE2 AS SELECT *

FROM FACTURE (KEEP=NUM_FACTURE NUM_CLIENT NOM_PRODUIT QUANTITE PRIX_UNIT) ;

QUIT;

II.4.4. Suppression de variable sans création de nouvelle table

Pour supprimer une ou plusieurs variables sans création de table, on utilise l’instruction ALTER TABLE en ajoutant la clause DROP (voir l’exemple ci-dessous).

PROC SQL;

ALTER TABLE COUNTRY_TAB DROP DENSITY_POP ;

QUIT;

Ici, on supprime la variable DENSITY_POP de la table COUNTRY_TAB.

II.4.5. Insérer de nouvelles lignes d’observations dans une table

Pour insérer des observations à une table on utilise la commande INSERT INTO.

On peut distinguer trois manières d’utiliser l’instruction INSERT INTO pour ajouter des observations à une table: soit on spécifie les valeurs en utilisant la clause SET, soit on utilise la clause VALUES ou bien on utilise les résultats provenant d'une requête.

II.4.5.1. Ajout d'observations en utilisant la clause SET Exemple :

PROC SQL;

INSERT INTO country_tab SET

name='Bangladesh', capital='Dhaka',

population=126391060 SET

name='Japan', capital='Tokyo',

population=126352003;

QUIT;

Cette commande ajoute deux observations à la table country_tab. Les variables renseignées sont : name, capital et population.

On constate ici qu’il faut spécifier de clause SET que d’observation à ajouter.

II.4.5.2. Ajout d'observations en utilisant la clause VALUES Exemple :

PROC SQL;

INSERT INTO country_tab2

VALUES ('Pakistan', 'Islamabad', 123060000, ., ' ', .) VALUES ('Nigeria', 'Lagos', 99062000, ., ' ', .);

QUIT;

Cette commande ajoute deux observations à la table country_tab2 dans les colonnes name, capital et population et en mettant des valeurs manquantes pour les autres variables qui sont à la 4ième, 5ième et 6ième position et qui sont respectivement numérique, caractère et numérique.

II.4.5.3. Ajout d'observations en utilisant une requête Exemple :

PROC SQL;

INSERT INTO country_tab3 SELECT *

FROM country_table

WHERE population ge 130000000;

QUIT;

Dans cette requête, on insère dans country_tab3 toutes les observations venant de country_table pour lesquelles la population est supérieure à 130000000.

Notons ici que puisque nous sélectionnons toutes les informations de la table country_table avec SELECT*, pour que cette requête fonctionne correctement, il faut que les deux tables soient de même structure (nom des variables, dimensions table, formats, etc). Lorsque les tables ne sont pas de même dimension, on peut spécifier la clause SELECT en indiquant la liste des variables de sorte à ajuster les informations à insérer à la table de base.

II.4.6. Faire la c opie d’une table

II.4.6.1. Copier une table avec toutes les observations

Faire la copie d’une table, c’est simplement effectuer une requête-création en

PROC SQL ;

CREATE TABLE COPIE_A AS SELECT *

FROM A

; QUIT;

II.4.6.2. Créer une table vide des observations à partir d’une table existante

Pour créer une table vide conforme à une autre table donnée, on utilise l’instruction LIKE comme suit :

PROC SQL;

CREATE TABLE NEWTABLE LIKE OLDTABLE;

QUIT;

Où OLDTABLE est la table initiale et NEWTABLE est la nouvelle table (vide) mais dont les variables ont les mêmes propriétés que celle de la table initiale.

II.4.7 . Suppression d’observation s dans une PROC SQL

Pour supprimer des observations dans une table selon une condition, on utilise l’instruction DELETE. L’exemple ci-dessous est une illustration.

PROC SQL;

DELETE

FROM COUNTRY_TAB WHERE NAME LIKE 'R%';

QUIT;

Ici, on supprime toutes les observations pour lesquelles la valeur de la colonne name commence par R.

Il faut noter que pour supprimer toutes les observations d’une table, on spécifie la requête sans clause WHERE. Ainsi on a :

PROC SQL;

DELETE

FROM COUNTRY_TAB QUIT;

Cette requête permet d’aboutir au même résultat qu’en utilisant CREATE TABLE et l’instruction LIKE.

II.4.8 . Suppression d’une table dans une PROC SQL

Pour supprimer une table dans une requête SQL, on utilise simplement la commande DROP TABLE. L’exemple suivant est une illustration.

PROC SQL;

DROP TABLE COUNTRY_TAB;

QUIT;