Vous êtes sur la page 1sur 5

COURS 5 CHAPITRE 5 ETUDE DE SQL STRUCTURED QUERY LANGUAGE I/ LES RECHERCHES SUR UNE TABLE : 1/ SANS CONDITION : SYNTAXE

SELECT nom colonnes FROM nom table A/ CAS GENERAL : REQUETE 1 : Tous les fournisseurs SELECT fournum,fournom,fouradr FROM FOURNISSEURS ou SELECT * FROM fournisseurs B/ CAS PARTICULIER : ne conserver que certaines colonnes REQUETE 2 : Tous les noms des fournisseurs SELECT nom FROM fournisseurs C/ LA CLAUSE DISTINCT :elle permet d'viter les doublons REQUETE 3 : Numros et noms des fournisseurs sans les doublons SELECT DISTINCT fournum,fournom FROM fournisseurs

II/ RECHERCHE AVEC CONDITIONS :

SYNTAXE : SELECT colonnes FROM tables WHERE condition Condition est une expression logique qui met en oeuvre les colonnes de la table en utilisant : - les oprateurs de comparaison < <= > >= > - les connecteurs logiques AND OR NOT - les oprateurs ensemblistes 1/ LES OPERATEURS DE COMPARAISON : REQUETE 4 : Obtenir les numros d'articles et les prix d'achat des articles pour lesquels le delai est < 20 SELECT artnum,prixachat FROM achat WHERE dlai < 20 2/ LES CONNECTEURS LOGIQUES : REQUETE 5 : Obtenir les numros d'articles et les prix d'achat des articles pour lesquels le delai est > 25 et le numro fournisseur > 73 SELECT artnum,prixachat FROM achat WHERE delai > 25 AND fournum > 73 REQUETE 6 : Obtenir les numros d'articles et les libells des articles pour lesquels le prix d'inventaire est > 50 et le stock est infrieur <25et > 300 SELECT artnum,libelle FROM achat WHERE prixinven > 50 AND (stock<25 OR stock> 300)

3/ LES OPERATEURS ENSEMBLISTES :

IN

BETWEEN LIKE

A/ IN : test l'appartenance un ensemble de valeurs REQUETE 7 : stock des articles pour lesquels les numros sont 435, 496,356 ou 402 SELECT stock FROM inventaire WHERE artnum IN (435,496,356,402)

B/ BETWEEN : teste l'appartenance une plage de valeurs REQUETE 8 : libelle des articles pour lesquels le prix d'inventaire est compris entre 100 et 200 SELECT libell FROM inventaire WHERE prixinven BETWEEN 100 AND 200 Il est possible de combiner NOTet BETWEEN REQUETE 9 : libelle des articles pour lesquels le prix d'inventaire n'est pas compris entre 100 et 200 SELECT libell FROM inventaire WHERE prixinven NOT BETWEEN 100 AND 200 C/ LIKE : Cet oprateur compare des chaines de caractres les jokers : _ (soulign) -->> 1 caractre % un ensemble de caractres REQUETE 10 : obtenir tous les renseignements sur les fournisseurs dont le nom commence par STE : SELECT * FROM fournissseurs WHERE fournom LIKE ' STE%'

II/ LES RECHERCHES SUR DEUX TABLES :

Il faut une opration de jointure sur un attribut commun : 1/ recherche sur deux tables : REQUETE 11 : Nom et adresse des fournisseurs qui fournissent les articles pour lesquels la quantit en commande est comprise entre 100 et 300 SELECT fournom,fouradr FROM achat, fournisseurs WHERE achat.fournum = fournisseur.fournum AND achat.encommande BETWEEN 100 AND 200 2/ recherche sur trois tables : REQUETE 12 : numro des fournisseurs qui correspondent aux articles dont le stock en cours est infrieur quatre fois la quantit en commande divis par le dlai : SELECT fournum FROM achat,inventaire,fournisseurs WHERE inventaire.artnum=achat.artnum AND achat.fournum=fournisseurs.fournum AND inventaire.stock < 4*(achat.encommande/ achat.delai)

3/ l'autojointure : REQUETE 13 : Liste des ensembles des prix d'achat des articles livrs par les mmes fournisseurs SELECT X.prixachat,Y.achat FROM achat.X,achat.Y WHERE X.fournum = Y.fournum NOTE : les jointures peuvent galement se raliser avec les autres oprateurs de comparaison

4/ LA CLAUSE NULL : elle permet de traiter les vlauers indfinies REQUETE 14 : Liste des fournisseurs dont on ne connait pas l'adresse

SELECT * FROM fournisseurs WHERE fouradr IS NULL

REQUETE 15 : Liste des fournisseurs dont on connait l'adresse SELECT * FROM fournisseurs WHERE fouradr IS NOT NULL