Académique Documents
Professionnel Documents
Culture Documents
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 1
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
2.1 Introduction
2.2 Extraction simple
2.3 Conditions plus complexes
2.4 Donnes extraites et donnes drives
2.5 Les fonctions agrgatives
2.6 Les sous-requtes
2.7 Les quantificateurs ensemblistes
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 2
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
2.1 Introduction
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 3
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
2.1 Introduction
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 4
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 5
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select *
* = liste des colonnes
from CLIENT;
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 6
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
NCLI NOM
B512 GILLET
C003 AVRON
D063 MERCIER
F011 PONCELET
K729 NEUMAN
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 7
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select LOCALITE
from CLIENT
where CAT = 'C1';
LOCALITE
Poitiers
Namur
Poitiers
Namur
Namur
LOCALITE
Namur
Poitiers
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 8
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 9
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select NCLI
from CLIENT null ne peut tre compar rien,
mme pas lui-mme !
where CAT = null;
NCLI
select NCLI
from CLIENT
where CAT is null;
NCLI
D063
K729
select NCLI
from CLIENT
where CAT is not null;
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 10
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select NCLI
from CLIENT
where CAT in ('C1','C2','C3');
select NCLI
from CLIENT
where LOCALITE not in ('Toulouse','Breda');
select NCLI
from CLIENT
where COMPTE between 1000 and 4000;
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 11
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select NCLI
'_' = un caractre
from CLIENT
quelconque
where CAT like 'B_';
masques
select NPRO
'%' = une chane
from PRODUIT quelconque
where LIBELLE like '%SAPIN%';
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 12
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 13
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 14
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
Produit Valeur_TVA
CS264 67788
PA45 12789
PH222 37770.6
PS222 47397
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 15
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
Outre les 4 oprations arithmtiques, SQL offre une large gamme de fonctions
Chanes de caractres
trim(both ' ' from ADRESSE)||' '||upper(LOCALITE)
position('NEUVE' in upper(ADRESSE)) > 0
upper(ADRESSE) like '%'||upper(LOCALITE)||'%'
Conversion de type
cast(DATECOM as char(12))
CLI.COMPTE - cast(QCOM*PRIX as decimal(9,2))
Fonctions temporelles
extract(year from DATECOM) + 1
extract(hour from current_time) > 18
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 16
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
Fonction de slection
select NCLI,
case substring(CAT from 1 for 1)
when 'A' then 'bon'
when 'B' then 'moyen'
when 'C' then 'occasionnel'
else 'inconnu'
end, LOCALITE
from CLIENT;
Registres du systme
current_user : identification de lutilisateur courant ;
current_date : date courante ;
current_time : instant courant ;
current_timestamp : date + instant courant.
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 17
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 18
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select sum(QSTOCK*PRIX)
from PRODUIT
where LIBELLE like '%SAPIN%';
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 19
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
count(NCLI)
count(NCLI)
count(NCLI)
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 20
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
16 16 16 14
16 15 7 4
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 21
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
0 <null> <null>
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 22
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 23
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
NCLI
B062
C123
L422
S127
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 24
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
B062
C123
L422
S127
mieux :
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 25
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select *
from PRODUIT
where NPRO in
(select NPRO
from DETAIL
where NCOM in
(select NCOM
from COMMANDE
where NCLI in
(select NCLI
from CLIENT
where LOCALITE='Namur')));
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 26
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select *
from PRODUIT
where NPRO in
(select NPRO
from DETAIL
where NCOM in
(select NCOM
from COMMANDE
where NCLI in
(select NCLI
from CLIENT
where LOCALITE='Namur')));
les produits rfrencs par les dtails des commandes des clients de Namur
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 27
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select *
from T
where CT in (select CS
from S
where <condition>);
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 28
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select *
from COMMANDE
where NCLI in (select NCLI
from CLIENT
where LOCALITE = 'Namur');
select *
from CLIENT
where NCLI in (select NCLI
from COMMANDE
where DATECOM = '12-09-2009');
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 29
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
from COMMANDE
where NCOM in (select NCOM
from DETAIL
where NPRO <> 'PA60');
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 30
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
Sous-requtes corrles
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 31
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 32
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 33
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 34
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
all et any
quelles sont les commandes qui spcifient la plus petite quantit de PA60 ?
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 35
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
all et any
quels sont les commandes qui ne spcifient pas la plus petite quantit de PA60 ?
select *
from DETAIL
where QCOM > any (select QCOM
from DETAIL
where NPRO = 'PA60')
and NPRO = PA60;
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 36
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select *
from CLIENT
where NCLI in (select NCLI
from COMMANDE
where DATECOM = '12-09-2009');
select *
from CLIENT C
where exists (select *
from COMMANDE M
where M.NCLI = C.NCLI
and DATECOM = '12-09-2009');
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 37
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
Application : quelles sont les commandes qui spcifient tous les produits ?
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 38
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
select NCOM
from DETAIL
group by NCOM
having count(distinct NPRO) = (select count(*) from PRODUIT);
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 39
1. Le langage SQL-DDL 2.1 Introduction 2.5 Les fonctions agrgatives
2. Le langage SQL DML (1) 2.2 Extraction simple 2.6 Les sous-requtes
3. Le langage SQL DML (2) 2.3 Conditions plus complexes 2.7 Les quantificateurs ensemblistes
4. Le langage SQL avanc 2.4 Donnes extraites et drives
Fin du module 2
Module suivant :
3. Le langage SQL DML (2)
azerty
II. Utilisation des bases de donnes Bases de donnes J-L Hainaut 2012 40
azerty Bases de donnes J-L Hainaut 2012 41