WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Gestion_d'informations.Mutationsvers_les_bases_de_données_relationnelles_langage_de_programmation_sq


par Jacques AMINI MUDUMBI
Université de Yaoundé 1 - Master II Recherche  2017
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

IV.5. Interroger une base de données

IV.5.1. Notion de base

S'il est clairement établi dans certaines des sections de cette partie, la commande SELECT constitue, à elle seule, le langage d'interrogation d'une base. A cela, elle permet de:

Sélectionner certaines colonnes d'une table (opération de projection) ;

Sélectionner certaines lignes d'une table en fonction de leur contenu (restriction) ; Combiner des informations venant de plusieurs tables (jointure, union, intersection, différence) ;

Combiner ces différentes opérations ;

Une interrogation, ou requête de sélection, est une combinaison d'opérations portant sur des tables et dont le résultat est lui-même une table, mais éphémère ou dynamique (car elle n'existe que le temps de la requête).

Dans ce qui suit, nous utiliserons les conventions typographiques suivantes :

en MAJUCULES les commandes ou opérateurs qu'il faut recopier tels quels (ex. SELECT)

en italique les paramètres devant être remplacés par une valeur appropriée (ex. table, alias) en souligné la valeur par défaut (ex. {ASC|DESC})

des crochets [...] encadrent une valeur optionnelle (ex. [DISTINCT], [AS alias]) des accolades {...} encadrent des valeurs (séparées par | ) dont l'une doit être saisie (ex. {ON|OFF})

des points de suspension ... indiquent que les valeurs précédentes peuvent être répétées plusieurs fois (ex. table, ...peut prendre comme valeur table1, table2, table3)

75

les signes de ponctuation (parenthèses, virgules et points-virgules) doivent être saisis comme présentés. En particulier, ne pas oublier le point-virgule obligatoire à la fin de chaque requête.

Par ailleurs, on désigne par:

alias un synonyme d'un nom de table, de colonne, ou d'expression calculée

condition une expression prenant la valeur vrai ou faux

sous-interrogation(ou sous-requête) une expression de requête (SELECT) figurant

dans une clause WHERE d'une requête principale

expr une colonne ou un attribut calculé par une expression

num un numéro de colonne

Enfin, dans ce qui suit, nous illustrerons les requêtes sur une base formée des relations suivantes :

Employes(numemp,nom,fonction,_superieur,date_embauche,salaire,comm,_num_dep)

Departements(num_dep,nom,ville)

76

IV.5.2. Syntaxe de base

La syntaxe de base de la commande SELECT est la suivante :

Les attributs sont les colonnes que l'on souhaite voir apparaître dans la réponse. Si l'on souhaite toutes les colonnes, il faut utiliser le symbole*.

Cas pratique :

Nous avons aussi la possibilité de faire précéder les noms des attributs de la table où ils figurent. Cela est obligatoire si l'on extraie les données de plusieurs tables et que deux attributs sélectionnés portent le même nom :

SELECT employes.nom, departements.nom FROM employes, departements;

Il est également possible de renommer une colonne ou une table par un alias, ce qui est utile lorsqu'on veut donner un nom plus « parlant » ou plus court pour faciliter sa désignation ultérieurement dans la requête.

Pour renommer une colonne, on utilise la syntaxe Col1 AS 'Nouveau nom' dans le SELECT (les guillemets ne sont obligatoires que si l'alias comporte des espaces ou des caractères spéciaux). Pour renommer une table, il suffit de faire suivre son nom par son alias dans la clause FROM :

Ceci est particulièrement utile lorsque l'on définit un attribut calculé à partir des attributs de tables. Il est en effet possible de faire figurer comme résultat d'un SELECT une expression composée d'opérateurs, de fonctions prédéfinies, de variables et de constantes :

La clause WHERE permet de spécifier quelles sont les lignes à sélectionner. Le prédicat de sélection, formé d'une expression comportant des opérandes liés par des opérateurs, sera évalué pour chaque ligne de la table, et seules les lignes pour lesquelles il est vrai seront retenues.

77

Les opérandes figurant dans le prédicat peuvent être des noms de colonnes, ou des constantes de type :

nombres : peuvent inclure un signe, un point décimal et une puissance de dix (ex. - 1.2E-5)

chaînes : chaînes de caractères entre apostrophes (Attention : 'Victor' ?'VICTOR') dates : chaînes de caractères entre apostrophes dans un format spécial. Pour s'affranchir des problèmes inhérents aux incompatibilités dans les différentes langues, il est conseillé d'utiliser le format suivant : 'aaaa-mm-jj' (ex. {d '2001-1031'})

la valeur NULL (valeur non définie), que l'on doit tester avec l'opérateur IS, et pas = (cf. ci-dessous).

Les opérateurs figurant dans le prédicat peuvent être :

les opérateurs de comparaison traditionnels (= (égal), <> (différent de), <, <=, >, >=) les opérateurs spéciaux

? BETWEEN ... AND (valeur comprise entre 2 bornes) : expr1 BETWEEN expr2

AND expr3

? IN (valeur comprise dans une liste) : expr1 IN (expr2, expr3, ...)

? LIKE (chaîne semblable à une chaîne générique) : expr1 LIKE chaine

La chaîne générique peut comporter les caractères jokers `_' (remplace 1 seul caractère quelconque) et `%' (remplace une chaîne de caractères quelconque, y compris de longueur nulle)

les opérateurs logiques AND, OR et NOT (inversion logique) pour combiner plusieurs prédicats.

Des parenthèses peuvent être utilisées pour impose rune priorité dans l'évaluation du prédicat (par défaut, l'opérateur AND est prioritaire par rapport à OR).

Cas pratique :

Employés dont la commission est supérieure au salaire

SELECT nom, salaire, comm FROM employes WHERE comm > salaire;

Employés gagnant entre 1700 et 2550€

SELECT nom, salaire FROM employes WHERE salaire BETWEEN 1700 AND 2550;

78

Employés commerciaux ou analystes

SELECT num_emp, nom, fonction FROM employes WHERE fonction IN ('Commercial', 'Analyste');

Employés dont le nom commence par V

SELECT nom FROM employes WHERE nom LIKE 'M%';

Employés du département 30 ayant un salaire supérieur à 2700 €

SELECT nom FROM employes WHERE _num_dep=30 AND salaire>2700;

Employés directeurs ou commerciaux travaillant dansle département 10

SELECT nom, fonction FROM employes

WHERE (fonction='Directeur' OR fonction ='Commercial') AND _num_dep=10;

Employés percevant une commission

SELECT nom, salaire, comm FROM employes WHERE comm IS NOT NULL;

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je ne pense pas qu'un écrivain puisse avoir de profondes assises s'il n'a pas ressenti avec amertume les injustices de la société ou il vit"   Thomas Lanier dit Tennessie Williams