Base de Données M Cieloski
1
S Q L
STRUCTURED QUERY LANGAGE
Définition :
Langage de définition et de manipulation de données.
1er mouture SQL SQL 1 en 1986
puis SQL 1 en 1989
puis SQL 2 en 1992 norme ISO
Une version SQL 3 orientée objet est à l’étude aux USA.
Il s’agit en fait de 3 langages :
- LDD Langage de Description des Données
- LMD Langage de Manipulation des données
- LCD Langage de contrôle des données
LE LMD
L’obtention des données se fait dans un ordre unique : SELECT
Select <liste colonne> * pour toutes les colonnes
From <liste table> Attention le Select seul n’efface pas les doublons
Exemple : les exercices suivant découle du poly. ALGEBRE RELATIONNEL (produits,
fournisseurs, commandes)
- lister la table des fournisseurs.
Select *
From fournisseurs ;
- lister les n° de facture et les fournisseurs.
Select fno,nom
From fournisseurs ;
Pour éviter les doublons on peut utiliser DISTINCT après le SELECT.
Instruction de restriction : WHERE
- lister les données des produits dont le poids est supérieur à 15 Kg
Select *
From produits
Where poids>15 ;
Base de Données M Cieloski
2
- lister les données des produits dont le poids est > 15 Kg et < à 40 Kg.
Select *
From produits
Where poids > 15 and poids < 40;
Instruction BETWEEN, IN, LIKE
_ remplace n’importe quel caractère
% remplace n’importe quel séquence
Select *
From produits
Where poids IN (15 ,40) ;
Select *
From produits
Where poids NOT BETWEEN 15 and 40;
Select *
From fournisseurs
Where ville=”LYON”;
Select *
From fournisseurs
Where nom NOT LIKE ‘D%’ ;
Le test d’une valeur manquante est également possible, représenté par NULL.
- lister les fournisseurs dont l’adresse n’est pas renseignée.
Select *
From fournisseurs
Where adresse IS NULL ; (pas d’adresse)
Ou Where adresse IS NOT NULL ; (il existe une adresse)
RAPPEL SUR LES TABLES DE VERITE
ET
V
F
Null
OU
V
F
Null
NON
V
V
F
Null
V
V
V
V
V
F
F
F
F
F
F
V
F
Null
F
V
Null
Null
F
Null
Null
V
Null
Null
Null
Null
Base de Données M Cieloski
3
TRI EST PRESENTATION
Le langage SQL permet de trier les tuples obtenus grace à une clause ODER BY;
ASC et DESC permettent de préciser si le tri est croissant ou décroissant, par défaut
il est croissant.
- afficher les produits rouge ou vert, trier sur le nom croissant et la couleur
décroissante.
Select *
From produits
Where couleur IN (‘rouge’,’vert’)
Order by design ASC, couleur DESC;
- lister les produits cartésien de la tables produits et fournisseurs
Select *
From fournisseurs, produits ;
- lister les noms des fournisseurs avec les n° de produits commandés ainsi que
la quantité commandés.
Select nom, pno, qute
From fournisseurs, commandes
Where fournisseur.fno=commandes.fno ;
Autre façon via les synonymes de tables :
Select nom, pno, qute
From fournisseur F, commande C
Where F.fno=C.fno ;
- lister les couples de réferences fournisseurs situés dans la même ville.
Select F1.fno, F2.fno
From fournisseur.F1, fournisseur.F2,
Where F1.fno<F2.fno
And F1.ville=F2.ville;
LA MANIPULATION DE DONNEES
Lister le prix des produits avec une TVA à 5.5%
Select Distinct design, prix*1.055 AS prix_ttc
From produits ;
Base de Données M Cieloski
4
Exemple, illustrer le volume financier commandé par des commandes de
moins de 10 articles.
Select Distinct cno, prix*qute AS volume
From produits p, commande c
Where c.pno=p.pno
and qute<10;
D’autres commande:
YEAR (Date) LOWER (Chaine)
MONTH (Date) UPPER (Chaine)
DAY (Date) LENGTH (Chaine)
SUBSTRING (Chaine, position départ, longueur)
LES FONCTIONS STATISTIQUES
AVG moyenne
COUNT compter le nombre d’éléments
MAX donne le MAX du nombre d’éléments
MIN donne le MIN du nombre d’éléments
SUM fait la somme d’une liste d’éléments
Select COUNT (fno)
From fournisseurs;
- calculer la somme des quantités commandées.
Select SUM (qute)
From commandes;
- donner le nombre de livraison du produit 102.
Select COUNT (*)
From commandes
Where pno=102;
- compter les noms des fournisseurs différents.
Select COUNT (Distinct nom)
From fournisseurs;
- donner la quantité maximum commandée
select MAX (qute)
from commandes ;
Base de Données M Cieloski
5
LES REGROUPEMENTS
Il est souvent intéressant de regrouper des données pour y faire des opérations.
GROUP BY (nom d’une colonne) HAVING qualificatif
Ex : compter les commandes par fournisseur.
Select fno, COUNT (*) nb (ou as nb)
From commandes
Group by fno;
HAVING permet d’exprimer une restriction sur les résultats obtenus avec une
fonction de calcul.
Pour éviter toute confusion les tests sur les colonnes simples : Where ; les tests
sur les colonnes de regroupements Having.
Ex : lister uniquement les n° de fournisseurs qui ont plus de trois commandes
d’au moins dix articles, liste triée sur le nom du fournisseur.
Select F.fno, nom
From commande C, fournisseur F,
Where qute>10
and C.fno=F.fno
Group by F.fno
Having Count (*) > 3
Order by nom;
Ex : donner le n° de fournisseur qui fournit plus d’un produit.
Select fno
From fournisseur
Group by fno
Having Count (fno) > 1;
Ex : On ne s’intéresse qu’aux commandes dont le n° et > à 1000 et pour celles ci,
on souhaite lister les noms des fournisseurs avec les quantités maximum
commandées dont la moyenne des quantités commandées et > à 7 articles.
Select nom, MAX (qute)
From commande C, fournisseur F,
Where C.fno=F.fno
and C.cno > 1000
Group by nom
Having AVG (qute) > 7;
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !