SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
RamziTrabelsi
1
Chapitre III : Le langage de
commande SQL
2014-2015
2014-20152
Pour faire des interrogations sur les données de ma base :
• QBE (Query By Exemple)
• SQL (Structured Query Langage),
• ...
SQL : standard de fait (norme ANSI) il permet :
- la création, interrogation et manipulation des données d'une base
- déclarer les relations, créer les occurrences
- faire toute opération définie par l'algèbre relationnelle.
SELECT liste des colonnes
FROM nom des tables
WHERE conditions
Le Langage SQL
2014-20153
Langage de Définition de Données  CREATE, ALTER, DROP,
 RENAME, TRUNCATE
Langage de Manipulation de Données  INSERT, UPDATE, DELETE
 Langage d'Interrogation des Données  SELECT
 Langage de Contrôle des Données  GRANT, DENY, REVOKE
Le Langage SQL
Quatre grandes familles de commandes
2014-20154
LE LANGAGE SQL : Définition des données
1 – Création de table: CREATE TABLE
2 – Modification de la table : ALTER TABLE
Modélisation à plusieurs niveaux
5
Réel
Modèle
conceptuel
Indépendant du
modèle de
données
Indépendant du
SGBD
Modèle
logique
Dépendant du
modèle de
données
Indépendant du
SGBD
Codasyl Relationnel Objet XML
Modèle
Physique
Dépendant du
modèle de
données
Dépendant du
SGBD
Oracle MySQL MS.ACESS SQL
SERVER
Médecin effectue Visite
2014-20156
Epreuves
CodeEp
NomEp
CoefEp
Etudiants
CodeEt
NomEt
PrenomEt
VilleEt
…
Notes
CodeNt
NoteNt
Avoir
Note
appartenir
1,11,N
1,1
0,N
MCD
2014-20157
Epreuves
CodeEp
NomEp
CoefEp
Etudiants
CodeEt
NomEt
PrenomEt
VilleEt
…
Notes
CodeNt
NoteNt
#CodeEp
#CodeEt
1,1
0,N
MLD
Etude de cas
2014-20158
MPD
Création de table
CREATE TABLE nom_de_la_table (    
colonne1 type_donnees [Contrainte],    
colonne2 type_donnees,    
colonne3 type_donnees,    
colonne4 type_donnees )
Type_données : VARCHAR(taille) INTEGER
NUMERIC (ou DECIMAL ou DEC)  DATE
Contrainte : NOT NULL , PRIMARY KEY, FORIGN
KEY, UNIQUE
2014-20159
Création de tables
CREATE TABLE Etudiants(
CodeEt VARCHAR(50) PRIMARY KEY,
NomEt VARCHAR(50) NOT NULL,
PrenomEt VARCHAR(50) NOT NULL,
VilleEt VARCHAR(50) );
2014-201510
Création de tables
CREATE TABLE Epreuves (
CodeEp VARCHAR(10),
NomEp VARCHAR(50) UNIQUE,
CoefEp NUMERIC NOT NULL);
ALTER TABLE Epreuves ADD CONSTRAINT
PK_CodeEp PRIMARY KEY(CodeEp) ;
2014-201511
Création de tables
CREATE TABLE Etudiants(
CodeEt VARCHAR(10) PRIMARY KEY,
NomEp VARCHAR(50) NOT NULL,
NomEt VARCHAR(50) NOT NULL,
VilleEt VARCHAR(50));
2014-201512
Création de tables
CREATE TABLE Etudiants(
CodeEt VARCHAR(10),
NomEp VARCHAR(50) NOT NULL,
NomEt VARCHAR(50) NOT NULL,
VilleEt VARCHAR(50));
ALTER TABLE Etudiants ADD CONSTRAINT
PK_CodeEt PRIMARY KEY(CodeEp) ;
2014-201513
Création de tables
CREATE TABLE Notes(
CodeNt VARCHAR(10) PRIMARY KEY
NoteNt NUMERIC,
CodeEp VARCHAR(10) FOREIGN KEY REFERENCES
Epreuves(CodeEp),
CodeEt VARCHAR(10) FOREIGN KEY REFERENCES
Etudiants(CodeEt));
2014-201514
Création de tables
CREATE TABLE Notes(
CodeNt VARCHAR(10) PRIMARY KEY
NoteNt NUMERIC,
CodeEp VARCHAR(10) ,
CodeEt VARCHAR(10),
Etudiants(CodeEt));
ALTER TABLE Etudiants ADD CONSTRAINT FK_CodeEp
CodeEp FOREIGN KEY REFERENCES Epreuves(CodeEp);
ALTER TABLE Etudiants ADD CONSTRAINT FK_CodeEt
CodeEp FOREIGN KEY REFERENCES Etudiants(CodeEt);
2014-201515
Création de tables
CREATE TABLE Notes(
CodeNt VARCHAR(10) PRIMARY KEY
NoteNt NUMERIC,
CodeEp VARCHAR(10) ,
CodeEt VARCHAR(10),
Etudiants(CodeEt));
ALTER TABLE Etudiants ADD CONSTRAINT PK_CodeNt
PRIMARY KEY(CodeNt);
ALTER TABLE Etudiants ADD CONSTRAINT FK_CodeEp
CodeEp FOREIGN KEY REFERENCES Epreuves(CodeEp);
ALTER TABLE Etudiants ADD CONSTRAINT FK_CodeEt
CodeEp FOREIGN KEY REFERENCES Etudiants(CodeEt);2014-201516
2014-201517
LE LANGAGE SQL : modification des données
1 – Insertion dans la base : Insert
2 – Suppression dans la base : Delete
3 – Modification dans la base : Update
2014-201518
INSERT INTO Agent (IdAgent, Anom, Aprenom) VALUES (25236, 'Dalton', 'Joe');
• Pour insérer une ligne dans une table on utilise la commande
SQL INSERT
Le Langage SQL : Mise-à-jour des données
DELETE FROM Agent WHERE IdAgent = 25236 ;
• Pour supprimer des données dans une table on utilise la commande
SQL DELETE
UPDATE Agent SET ANom = ‘DURANT’
WHERE Salaire = 2500 ;
• Pour modifier des données dans une table on utilise la commande
SQL UPDATE
2014-201519
LE LANGAGE SQL : Interrogation des données
1 – Interrogation de la base : LID
2 – Les jointures
3 – Les sous-interrogations et fonctions de groupe
2014-201520
SELECT Sélection des colonnes à interroger.
FROM Choix des tables à partir desquelles on fait la sélection.
WHERE Sélection des lignes (application d'un filtre).
Le Langage SQL : Interrogation des données
2014-201521
Sélectionner des colonnes spécifiques
• Choix des colonnes par la clause SELECT.
• Afficher toutes les colonnes d'une table.
SELECT *
FROM Animaux ;
SELECT ID, Espèce, Nom
FROM Animaux;
ID Espèce Nom
-- ------ ---
1 Chien Bidou
2 Chat Groucha
3 Yeti Georges
4 Elephant Dumbo
5 Girafe Flip Flap
2014-201522
Agent
IdAgent
...
Fournisseur
IdFourS
...
Fourniture
IdFourT
...
Collectivite
IdCollect
...
Service
IdService
...
Commander
IdCom
Dépendre Rattacher
1,1
1,n1,1
1,n 0,n
1,n
0,n
Autre exemple de BD
2014-201523
Fournisseur
IdFourS FNom FAdresse FType
Commande
IdCom Agent_Id FourT_Id FourS_Id DateC DateL Prix Quantite
Service
IdService SNom Collect_Id
Agents
IdAgent ANom APrenom DateE Fonction Responsable Salaire
Service_Id
Collectivité
IdCollect CDesignation
Fourniture
IdFourT FDesignation Quantite_Stock
Commission
Autre exemple de BD
2014-201524
Expressions Arithmétiques
• Créer des expressions sur des données de type NUMBER ou DATE avec : + - * /
SELECT ANom, Salaire*12
FROM Agent ; Remarque : la colonne salaire*12
existe uniquement à l’affichage.
SELECT ANom, Salaire*12 AS ‘Salaire Annuel’
FROM Agent ;
• Alias sur colonne : AS
• La clause ORDER BY permet de trier les lignes : ASC DESC
SELECT ANom, Fonction, Salaire
FROM Agent
ORDER BY Salaire DESC;
2014-201525
Il est possible de limiter le nombre de lignes rapportées en utilisant la clause WHERE :
• permet d'exprimer une condition.
SELECT ANom, Fonction, Salaire
FROM Agent
WHERE Service_Id = 10;
Sélection des Lignes
SELECT ANom, Fonction, Salaire
FROM Agent
WHERE ANom = 'Dupont'
AND APrenom LIKE '_ea%';
chaîne de caractères• permet de faire des comparaisons
Opérateurs de comparaison logiques . = > >= < <= != <>
Opérateurs de comparaison . BETWEEN, AND, IN, LIKE, IS NULL
Opérateurs logiques . AND, OR, NOT
2014-201526
SELECT ANom, APrenom, Fonction, Salaire
FROM Agent
WHERE DateE BETWEEN #08-AOU-93#
AND #08- AOU-99#;
Opérateurs de comparaison
• On utilise l'opérateur BETWEEN pour tester l'appartenance à un intervalle.
SELECT IdService, SNom, Collect_Id
FROM Service
WHERE Collect_Id IN (38,42,69,01);
• On utilise l'opérateur IN pour tester l'appartenance à une liste de valeurs.
format des dates par défaut
2014-201527
SELECT UPPER(ANom), CONCAT(ANom, APrenom), Salaire
FROM Agent
WHERE LOWER(Fonction) = ‘directeur ’;
Fonctions Mono-Ligne
• LOWER convertit en minuscule
• UPPER convertit en majuscule
• INITCAP convertit l’initiale en capitale
• CONCAT concatène des valeurs
• SUBSTR retourne une sous-chaîne
• LENGTH retourne un nombre de caractères
• ROUND(col,n) arrondit une valeur à n décimales spécif.
• TRUNC (col,n) tronque une valeur à n décimales spécif.
• MOD(m,n) retourne le reste de la division de m par n
2015-201628
SELECT *
FROM Notes, Etudiants
Les jointures
WHERE
CodeEt=CodeEt
WHERE
Notes.CodeEt=Etudiants.CodeEt
FROM Notes N, Etudiants E
WHERE
N.CodeEt=E.CodeEt
SELECT N.CodeNt, N.NoteNt, E.NomEt, E.PrenomEt
FROM Notes N, Etudiants E
WHERE
N.CodeEt=E.CodeEt
AND
N.CodeNt=‘N0045’
2014-201529
• Une jointure est utilisée pour rechercher les données dans plusieurs
tables.
• Les lignes sont reliées grâce aux valeurs communes contenues dans
les clés primaires et étrangères.
• La condition de jointure s’exprime dans le WHERE.
Les jointures
SELECT Ag.ANom , Ag.Service_Id ,
Se.IdService
FROM Agent Ag, Service Se
WHERE Ag.Service_Id = Se.IdService ;
2014-201530
Les Sous-Interrogations
• Il est possible d'imbriquer une, ou plusieurs, interrogation (SELECT) dans une autre.
• On parle alors de sous-interrogation.
• Elle est exécutée avant la requête principale ; son résultat est utilisé par la requête
principale.
• Elle permet de rechercher des données basées sur un critère inconnu.
SELECT ANom, Fonction
FROM Agent
WHERE Service_Id = ( SELECT Service_Id
FROM Agent
WHERE ANom = 'Dupont' ) ;
2014-201531
SELECT ANom, Salaire, Service_Id
FROM Agent
WHERE Salaire = ( SELECT MIN (Salaire)
FROM Agent );
•MIN, MAX,AVG,SUM,COUNT
•Si une sous-interrogation retourne plus d'une ligne
SELECT ANom, Salaire, Service_Id
FROM Agent
WHERE Salaire = ( SELECT MIN (Salaire)
FROM Agent
GROUP BY Service_Id );
Il faut remplacer = par IN (opérateur multi-lignes).
Réponses Multi-Lignes (1/2)
2014-201532
Réponses Multi-Lignes (2/2)
• Autre exemple
SELECT Service_Id, AVG(Salaire)
FROM Agent
GROUP BY Service_Id
HAVING AVG(Salaire) > ( SELECT AVG(Salaire)
FROM Agent
WHERE Service_Id = 10 );
Salaire moyen par service, dont le salaire moyen est
supérieur à celui du service 10.
Syntaxe Select
SELECT codeEp,AVG(NoteNt)
FROM Table1, Table2
WHERE Joiture
AND Autres_f
Group By (codeEp)
HAVING AVG(NoteNt) >12
ORDER BY AVG(NoteNt) DESC
2014-201533
Groupement
2014-201534
SELECT Categorie,SUM(Qte) as S_Qte
FROM Produit
WHERE Couleur=‘Rouge’
GROUP BY Categorie
HAVING SUM(Qte)>100
ORDER BY SUM(Qte) DESC
Le nom , prénom et note DS de
tous les étudiants
2014-201535
1
SELECT NomEt , PrenomEt, NoteNt as Notes_DS
FROM Etudiants E , Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp=‘DS’;
Le nom , prénom et note DS de
tous les étudiants ayant une note
entre 8 et 12
2014-201536
2
SELECT NomEt , PrenomEt, NoteNt as Notes_DS
FROM Etudiants E , Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp=‘DS’
AND NoteNt BETWEEN 8 AND 12;
Le nombre des étudiants ayant une
note entre 8 et 12 en DS
2014-201537
3
SELECT Count(*)
FROM Etudiants E , Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp=‘DS’
AND NoteNt BETWEEN 8 AND 12;
Max et Min des notes de DS
2014-201538
4
SELECT Max(NoteNt),Min(NoteNt)
FROM Notes
WHERE CodeEp=‘DS’
Le nom , prénom et note DS de
tous les étudiants ayant une note
supérieure à la moyenne des DS
2014-201539
5
SELECT NomEt , PrenomEt, NoteNt as Notes_DS
FROM Etudiants E , Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp='DS'
AND NoteNt > SELECT AVG(NoteNT)
FROM Notes
WHERE CodeEp= 'DS'
Calcul de la moyenne des notes DS
Le nom , prénom et Examen triés
de la note la plus petite à la plus
grande
2014-201540
6
SELECT NomEt , PrenomEt, NoteNt as Notes_Examen
FROM Etudiants E , Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp='EX‘
AND NoteNt IS NOT NULL
ORDER BY NoteNt ASC ;
Le nom , prénom des étudiants
n’ayant pas passé l’examen
2014-201541
7
SELECT NomEt , PrenomEt
FROM Etudiants E , Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp='EX'
AND NoteNt IS NULL
Le maximum en DS , EX et NP
2014-201542
8
SELECT CodeEp,NomEp, Max(NoteNt) AS max_Note
FROM Notes
GROUP BY CodeEp
Le maximum en Devoir Surveillé ,
Examen et Présentiel
2014-201543
9
SELECT NomEp, Max(NoteNt) AS max_Note
FROM Notes N, Epreuves E
WHERE N.CodeEP= E.CodeEp
GROUP BY NomEp
Le nom et Prénom de l’étudiant
ayant la note de DS la plus élevée
SELECT NomEt, PrenomET , NoteNt
FROM Etudiants E, Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp='DS‘
AND NoteNt =
2014-201544
10
SELECT MAX(NoteNT)
FROM Notes
WHERE CodeEp= 'DS'
Trouver le max note DS
Le nom , prénom et moyenne
générale de la matière
2014-201545
11
SELECT NomEt, PrenomEt, SUM(NoteNt*CoefEp )
FROM Epreuves Ep, Notes N , Etudiants Et
WHERE Et.CodeEt = N.CodeET
AND N.CodeEp=Ep.CodeEp
GROUP BY NomEt , PrenomEt
Le nom , prénom et moyenne
générale triés par Moy Générale
2014-201546
12
SELECT NomEt, PrenomEt, SUM(NoteNt*CoefEp )
FROM Epreuves Ep, Notes N , Etudiants Et
WHERE Et.CodeEt = N.CodeET
AND N.CodeEp=Ep.CodeEp
GROUP BY NomEt , PrenomEt
ORDER BY SUM(NoteNt*CoefEp ) DESC
Le nom , prénom et moyenne
générale triés (seule moy>=10)
*HAVING n’est utilisée qu’avec GROUP BY quand il s’agit de
filtrer selon l’une des fonctions de groupement
2014-201547
13
SELECT NomEt, PrenomEt, SUM(NoteNt*CoefEp )
FROM Epreuves Ep, Notes N , Etudiants Et
WHERE Et.CodeEt = N.CodeET
AND N.CodeEp=Ep.CodeEp
GROUP BY NomEt , PrenomEt
HAVING SUM(NoteNt*CoefEp ) >=10
ORDER BY SUM(NoteNt*CoefEp ) DESC
Le nom et prénom de la fille ayant
la plus grande note de NP
2014-201548
14
SELECT NomEt, PrenomET , NoteNt
FROM Etudiants E, Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp=‘NP‘
AND SexeEt='F'
AND NoteNt = SELECT MAX(NoteNT)
FROM Notes N, Etudiants E
Where N.CodeEt=E.CodeEt
AND SexeEt= 'F'
Trouver La note TP la plus
élevée obtenue par une fille
Le maximum et minimum de note
par Ville
2014-201549
15
SELECT VilleEt, MAX(NoteNt) , MIN(NoteNt)
FROM Etudiants E, Notes N
WHERE E.CodeEt = N.CodeEt
GROUP BY (VilleEt)
La note d’examen maximale par
ville et par sexe
2014-201550
16
SELECT VilleEt, MAX(NoteNt)
FROM Etudiants E, Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp = 'EX'
GROUP BY VilleEtol , SexeEt;
La note d’examen maximale par
ville et par sexe dépassant 15
2014-201551
17
SELECT VilleEt, MAX(NoteNt)
FROM Etudiants E, Notes N
WHERE E.CodeEt = N.CodeEt
AND CodeEp = 'EX'
GROUP BY VilleEt , SexeEt
HAVING MAX(NoteNt)>15 ;
2014-201552
Fournisseur
CodeF
NomF
VilleF
Boutique
CodeB
NomB
VilleB
Piece
CodeP
NomP
CouleurP
PoidsP
NbrP
Fournit
Qte
Vend
Qte
1,N0,N
1,N
1,N
2014-201553
Boutique
CodeB
NomB
VilleB
Piece
CodeP
NomPc
CouleurP
PoidsP
Note
#CodeP
#CodeB
QteVend
2014-201554
Fournisseur
CodeF
NomF
VilleF
Boutique
CodeB
NomB
VilleB
Piece
CodeP
NomP
CouleurP
PoidsP
Fournit
Qte
0,N 1,N
1,N
2014-201555
Fournisseur
CodeFr
NomFr
VilleFr
Boutique
CodeB
NomB
VilleB
Piece
CodeP
NomP
CouleurP
PoidsP
Fournit
#CodeP
#CodeF
#CodeB
QteFrn
2014-201556
CodeF NomF VilleF
F1 P.M.S Tunis
F2 S.T.M Tunis
F3 F.R.P Sousse
F4 M.T Sfax
F5 N.X Tunis
F6 K.L Sousse
CodeP NomP CouleurP PoidsP
Pc1 Papier Rouge 500
Pc2 Plateau Vert 30
Pc3 Rideau Vert 450
Pc3 Cadre Orange 250
Pc4 Verre Rouge 20
Pc5 Assiette Orange 40
CodeB NomB VilleB
B1 Promi Tunis
B2 Fonis Tunis
B3 Breco Sousse
B4 Bord Nabeul
B5 Halu Bizerte
B6 Bonpro Sfax
CodeF CodeP CodeB QteFrn
F1 Pc1 B1 200
F1 Pc2 B2 150
F2 Pc3 B1 600
F4 Pc1 B2 100
F1 Pc4 B1 300
F3 Pc6 B3 250

Mais conteúdo relacionado

Mais procurados

Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsAlexandre Salomé
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Kristen Le Liboux
 
Scala : programmation fonctionnelle
Scala : programmation fonctionnelleScala : programmation fonctionnelle
Scala : programmation fonctionnelleMICHRAFY MUSTAFA
 
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedCours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedWajdi Ben Helal
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...MICHRAFY MUSTAFA
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage CAbdoulaye Dieng
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applicationsDamien Seguy
 

Mais procurados (7)

Formulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explicationsFormulaires Symfony2 - Cas pratiques et explications
Formulaires Symfony2 - Cas pratiques et explications
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
 
Scala : programmation fonctionnelle
Scala : programmation fonctionnelleScala : programmation fonctionnelle
Scala : programmation fonctionnelle
 
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+ziedCours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
Cours+sql++ +base+de+données+-+bac+informatique+(2009-2010)++elève++khmiri+zied
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage C
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applications
 

Destaque

30.10.2013 Launching mining projects in Mongolia–a major contractor’s perspec...
30.10.2013 Launching mining projects in Mongolia–a major contractor’s perspec...30.10.2013 Launching mining projects in Mongolia–a major contractor’s perspec...
30.10.2013 Launching mining projects in Mongolia–a major contractor’s perspec...The Business Council of Mongolia
 
11.16-17.2015, PRESENTATION, The new equilibrium- reforms to sustainable grow...
11.16-17.2015, PRESENTATION, The new equilibrium- reforms to sustainable grow...11.16-17.2015, PRESENTATION, The new equilibrium- reforms to sustainable grow...
11.16-17.2015, PRESENTATION, The new equilibrium- reforms to sustainable grow...The Business Council of Mongolia
 
23.05.2013 Building Mongolian Talent Pipeline, Enkhbaatar D.
23.05.2013 Building Mongolian Talent Pipeline, Enkhbaatar D.23.05.2013 Building Mongolian Talent Pipeline, Enkhbaatar D.
23.05.2013 Building Mongolian Talent Pipeline, Enkhbaatar D.The Business Council of Mongolia
 
09.10.2011 Understanding Mongolia’s current situation what do investors need ...
09.10.2011 Understanding Mongolia’s current situation what do investors need ...09.10.2011 Understanding Mongolia’s current situation what do investors need ...
09.10.2011 Understanding Mongolia’s current situation what do investors need ...The Business Council of Mongolia
 
22.03.2011 Roles and opportunities for local banks, Mr. Zagal Badamgerel
22.03.2011 Roles and opportunities for local banks, Mr. Zagal Badamgerel22.03.2011 Roles and opportunities for local banks, Mr. Zagal Badamgerel
22.03.2011 Roles and opportunities for local banks, Mr. Zagal BadamgerelThe Business Council of Mongolia
 
27.01.2014, The year 2014 starts with new IPO on the Mongolian Stock Exchange...
27.01.2014, The year 2014 starts with new IPO on the Mongolian Stock Exchange...27.01.2014, The year 2014 starts with new IPO on the Mongolian Stock Exchange...
27.01.2014, The year 2014 starts with new IPO on the Mongolian Stock Exchange...The Business Council of Mongolia
 
18.03.2013 Mongolia and Mining: The policy evolution what's the next? Dr. Ch....
18.03.2013 Mongolia and Mining: The policy evolution what's the next? Dr. Ch....18.03.2013 Mongolia and Mining: The policy evolution what's the next? Dr. Ch....
18.03.2013 Mongolia and Mining: The policy evolution what's the next? Dr. Ch....The Business Council of Mongolia
 
Sampling of the Gallery of Events that have been managed
Sampling of the Gallery of Events that have been managedSampling of the Gallery of Events that have been managed
Sampling of the Gallery of Events that have been managedPam Parker
 
Jaw & Spider Couplings
Jaw & Spider CouplingsJaw & Spider Couplings
Jaw & Spider CouplingsJoseph Barlow
 
08.09.2011 Asia: Regional commodity needs and outlook, Mr. Tim Goldsmith
08.09.2011 Asia: Regional commodity needs and outlook, Mr. Tim Goldsmith08.09.2011 Asia: Regional commodity needs and outlook, Mr. Tim Goldsmith
08.09.2011 Asia: Regional commodity needs and outlook, Mr. Tim GoldsmithThe Business Council of Mongolia
 
Introduction to Rust Programming Language
Introduction to Rust Programming LanguageIntroduction to Rust Programming Language
Introduction to Rust Programming LanguageJohn Liu
 
28.04.2014, Socio-Political Situation in Spring 2014, L.Sumati
28.04.2014, Socio-Political Situation in Spring 2014, L.Sumati28.04.2014, Socio-Political Situation in Spring 2014, L.Sumati
28.04.2014, Socio-Political Situation in Spring 2014, L.SumatiThe Business Council of Mongolia
 

Destaque (20)

CV - Bahruz Qachayev
CV - Bahruz QachayevCV - Bahruz Qachayev
CV - Bahruz Qachayev
 
30.10.2013 Launching mining projects in Mongolia–a major contractor’s perspec...
30.10.2013 Launching mining projects in Mongolia–a major contractor’s perspec...30.10.2013 Launching mining projects in Mongolia–a major contractor’s perspec...
30.10.2013 Launching mining projects in Mongolia–a major contractor’s perspec...
 
11.16-17.2015, PRESENTATION, The new equilibrium- reforms to sustainable grow...
11.16-17.2015, PRESENTATION, The new equilibrium- reforms to sustainable grow...11.16-17.2015, PRESENTATION, The new equilibrium- reforms to sustainable grow...
11.16-17.2015, PRESENTATION, The new equilibrium- reforms to sustainable grow...
 
23.05.2013 Building Mongolian Talent Pipeline, Enkhbaatar D.
23.05.2013 Building Mongolian Talent Pipeline, Enkhbaatar D.23.05.2013 Building Mongolian Talent Pipeline, Enkhbaatar D.
23.05.2013 Building Mongolian Talent Pipeline, Enkhbaatar D.
 
05.10.2012, NEWSWIRE, Issue 242
05.10.2012, NEWSWIRE, Issue 24205.10.2012, NEWSWIRE, Issue 242
05.10.2012, NEWSWIRE, Issue 242
 
09.10.2011 Understanding Mongolia’s current situation what do investors need ...
09.10.2011 Understanding Mongolia’s current situation what do investors need ...09.10.2011 Understanding Mongolia’s current situation what do investors need ...
09.10.2011 Understanding Mongolia’s current situation what do investors need ...
 
22.03.2011 Roles and opportunities for local banks, Mr. Zagal Badamgerel
22.03.2011 Roles and opportunities for local banks, Mr. Zagal Badamgerel22.03.2011 Roles and opportunities for local banks, Mr. Zagal Badamgerel
22.03.2011 Roles and opportunities for local banks, Mr. Zagal Badamgerel
 
05.12.2008, NEWSWIRE, Issue 49
05.12.2008, NEWSWIRE, Issue 4905.12.2008, NEWSWIRE, Issue 49
05.12.2008, NEWSWIRE, Issue 49
 
27.01.2014, The year 2014 starts with new IPO on the Mongolian Stock Exchange...
27.01.2014, The year 2014 starts with new IPO on the Mongolian Stock Exchange...27.01.2014, The year 2014 starts with new IPO on the Mongolian Stock Exchange...
27.01.2014, The year 2014 starts with new IPO on the Mongolian Stock Exchange...
 
23.11.2010 Mongolia mining supply chain, Mr. Jim Dwyer
23.11.2010 Mongolia mining supply chain, Mr. Jim Dwyer23.11.2010 Mongolia mining supply chain, Mr. Jim Dwyer
23.11.2010 Mongolia mining supply chain, Mr. Jim Dwyer
 
18.03.2013 Mongolia and Mining: The policy evolution what's the next? Dr. Ch....
18.03.2013 Mongolia and Mining: The policy evolution what's the next? Dr. Ch....18.03.2013 Mongolia and Mining: The policy evolution what's the next? Dr. Ch....
18.03.2013 Mongolia and Mining: The policy evolution what's the next? Dr. Ch....
 
07.12.2007
07.12.200707.12.2007
07.12.2007
 
28.06.2013, NEWSWIRE, Issue 280
28.06.2013, NEWSWIRE, Issue 28028.06.2013, NEWSWIRE, Issue 280
28.06.2013, NEWSWIRE, Issue 280
 
Sampling of the Gallery of Events that have been managed
Sampling of the Gallery of Events that have been managedSampling of the Gallery of Events that have been managed
Sampling of the Gallery of Events that have been managed
 
Jaw & Spider Couplings
Jaw & Spider CouplingsJaw & Spider Couplings
Jaw & Spider Couplings
 
08.09.2011 Asia: Regional commodity needs and outlook, Mr. Tim Goldsmith
08.09.2011 Asia: Regional commodity needs and outlook, Mr. Tim Goldsmith08.09.2011 Asia: Regional commodity needs and outlook, Mr. Tim Goldsmith
08.09.2011 Asia: Regional commodity needs and outlook, Mr. Tim Goldsmith
 
Introduction to Rust Programming Language
Introduction to Rust Programming LanguageIntroduction to Rust Programming Language
Introduction to Rust Programming Language
 
28.04.2014, Socio-Political Situation in Spring 2014, L.Sumati
28.04.2014, Socio-Political Situation in Spring 2014, L.Sumati28.04.2014, Socio-Political Situation in Spring 2014, L.Sumati
28.04.2014, Socio-Political Situation in Spring 2014, L.Sumati
 
23.09.2011, NEWSWIRE, Issue 186
23.09.2011, NEWSWIRE, Issue 18623.09.2011, NEWSWIRE, Issue 186
23.09.2011, NEWSWIRE, Issue 186
 
14.10.2010 Mongolia invest in opportunity, B. Zagal
14.10.2010 Mongolia invest in opportunity, B. Zagal14.10.2010 Mongolia invest in opportunity, B. Zagal
14.10.2010 Mongolia invest in opportunity, B. Zagal
 

Semelhante a Chap 3 : structered query language

1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdfImaneZoubir1
 
Support_Cours_SQL.ppt
Support_Cours_SQL.pptSupport_Cours_SQL.ppt
Support_Cours_SQL.pptSiwarAbbes1
 
PL LSQL.pptx
PL LSQL.pptxPL LSQL.pptx
PL LSQL.pptxMaNl13
 
M22461 formation-requetes-microsoft-sql-server-2012
M22461 formation-requetes-microsoft-sql-server-2012M22461 formation-requetes-microsoft-sql-server-2012
M22461 formation-requetes-microsoft-sql-server-2012CERTyou Formation
 
0 a005g formation-introduction-a-ibm-spss-modeler-et-au-data-mining-v16
0 a005g formation-introduction-a-ibm-spss-modeler-et-au-data-mining-v160 a005g formation-introduction-a-ibm-spss-modeler-et-au-data-mining-v16
0 a005g formation-introduction-a-ibm-spss-modeler-et-au-data-mining-v16CERTyou Formation
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlpluswebreaker
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
rapport de stage
rapport de stagerapport de stage
rapport de stagenideleray
 
SGBDR - MySQL
SGBDR - MySQLSGBDR - MySQL
SGBDR - MySQLMusatge
 
Mise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*PlusMise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*Pluswebreaker
 
Cours_JavascriptA.pdf
Cours_JavascriptA.pdfCours_JavascriptA.pdf
Cours_JavascriptA.pdfYaminaGh1
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logicielSylvain Leroy
 

Semelhante a Chap 3 : structered query language (20)

1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf1-pl-sql 2021 2022.pdf
1-pl-sql 2021 2022.pdf
 
Cours sql-sh-
Cours sql-sh-Cours sql-sh-
Cours sql-sh-
 
Support_Cours_SQL.ppt
Support_Cours_SQL.pptSupport_Cours_SQL.ppt
Support_Cours_SQL.ppt
 
cours-sql-sh-.pdf
cours-sql-sh-.pdfcours-sql-sh-.pdf
cours-sql-sh-.pdf
 
Cours sql-sh-
Cours sql-sh-Cours sql-sh-
Cours sql-sh-
 
PL LSQL.pptx
PL LSQL.pptxPL LSQL.pptx
PL LSQL.pptx
 
M22461 formation-requetes-microsoft-sql-server-2012
M22461 formation-requetes-microsoft-sql-server-2012M22461 formation-requetes-microsoft-sql-server-2012
M22461 formation-requetes-microsoft-sql-server-2012
 
0 a005g formation-introduction-a-ibm-spss-modeler-et-au-data-mining-v16
0 a005g formation-introduction-a-ibm-spss-modeler-et-au-data-mining-v160 a005g formation-introduction-a-ibm-spss-modeler-et-au-data-mining-v16
0 a005g formation-introduction-a-ibm-spss-modeler-et-au-data-mining-v16
 
Plsql
PlsqlPlsql
Plsql
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Linq Tech Days08 Lux
Linq Tech Days08 LuxLinq Tech Days08 Lux
Linq Tech Days08 Lux
 
rapport de stage
rapport de stagerapport de stage
rapport de stage
 
Les03.ppt
Les03.pptLes03.ppt
Les03.ppt
 
SGBDR - MySQL
SGBDR - MySQLSGBDR - MySQL
SGBDR - MySQL
 
Cours3 gdm sql
Cours3 gdm sqlCours3 gdm sql
Cours3 gdm sql
 
Mise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*PlusMise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*Plus
 
Cours_JavascriptA.pdf
Cours_JavascriptA.pdfCours_JavascriptA.pdf
Cours_JavascriptA.pdf
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logiciel
 

Chap 3 : structered query language

  • 1. RamziTrabelsi 1 Chapitre III : Le langage de commande SQL 2014-2015
  • 2. 2014-20152 Pour faire des interrogations sur les données de ma base : • QBE (Query By Exemple) • SQL (Structured Query Langage), • ... SQL : standard de fait (norme ANSI) il permet : - la création, interrogation et manipulation des données d'une base - déclarer les relations, créer les occurrences - faire toute opération définie par l'algèbre relationnelle. SELECT liste des colonnes FROM nom des tables WHERE conditions Le Langage SQL
  • 3. 2014-20153 Langage de Définition de Données  CREATE, ALTER, DROP,  RENAME, TRUNCATE Langage de Manipulation de Données  INSERT, UPDATE, DELETE  Langage d'Interrogation des Données  SELECT  Langage de Contrôle des Données  GRANT, DENY, REVOKE Le Langage SQL Quatre grandes familles de commandes
  • 4. 2014-20154 LE LANGAGE SQL : Définition des données 1 – Création de table: CREATE TABLE 2 – Modification de la table : ALTER TABLE
  • 5. Modélisation à plusieurs niveaux 5 Réel Modèle conceptuel Indépendant du modèle de données Indépendant du SGBD Modèle logique Dépendant du modèle de données Indépendant du SGBD Codasyl Relationnel Objet XML Modèle Physique Dépendant du modèle de données Dépendant du SGBD Oracle MySQL MS.ACESS SQL SERVER Médecin effectue Visite
  • 9. Création de table CREATE TABLE nom_de_la_table (     colonne1 type_donnees [Contrainte],     colonne2 type_donnees,     colonne3 type_donnees,     colonne4 type_donnees ) Type_données : VARCHAR(taille) INTEGER NUMERIC (ou DECIMAL ou DEC)  DATE Contrainte : NOT NULL , PRIMARY KEY, FORIGN KEY, UNIQUE 2014-20159
  • 10. Création de tables CREATE TABLE Etudiants( CodeEt VARCHAR(50) PRIMARY KEY, NomEt VARCHAR(50) NOT NULL, PrenomEt VARCHAR(50) NOT NULL, VilleEt VARCHAR(50) ); 2014-201510
  • 11. Création de tables CREATE TABLE Epreuves ( CodeEp VARCHAR(10), NomEp VARCHAR(50) UNIQUE, CoefEp NUMERIC NOT NULL); ALTER TABLE Epreuves ADD CONSTRAINT PK_CodeEp PRIMARY KEY(CodeEp) ; 2014-201511
  • 12. Création de tables CREATE TABLE Etudiants( CodeEt VARCHAR(10) PRIMARY KEY, NomEp VARCHAR(50) NOT NULL, NomEt VARCHAR(50) NOT NULL, VilleEt VARCHAR(50)); 2014-201512
  • 13. Création de tables CREATE TABLE Etudiants( CodeEt VARCHAR(10), NomEp VARCHAR(50) NOT NULL, NomEt VARCHAR(50) NOT NULL, VilleEt VARCHAR(50)); ALTER TABLE Etudiants ADD CONSTRAINT PK_CodeEt PRIMARY KEY(CodeEp) ; 2014-201513
  • 14. Création de tables CREATE TABLE Notes( CodeNt VARCHAR(10) PRIMARY KEY NoteNt NUMERIC, CodeEp VARCHAR(10) FOREIGN KEY REFERENCES Epreuves(CodeEp), CodeEt VARCHAR(10) FOREIGN KEY REFERENCES Etudiants(CodeEt)); 2014-201514
  • 15. Création de tables CREATE TABLE Notes( CodeNt VARCHAR(10) PRIMARY KEY NoteNt NUMERIC, CodeEp VARCHAR(10) , CodeEt VARCHAR(10), Etudiants(CodeEt)); ALTER TABLE Etudiants ADD CONSTRAINT FK_CodeEp CodeEp FOREIGN KEY REFERENCES Epreuves(CodeEp); ALTER TABLE Etudiants ADD CONSTRAINT FK_CodeEt CodeEp FOREIGN KEY REFERENCES Etudiants(CodeEt); 2014-201515
  • 16. Création de tables CREATE TABLE Notes( CodeNt VARCHAR(10) PRIMARY KEY NoteNt NUMERIC, CodeEp VARCHAR(10) , CodeEt VARCHAR(10), Etudiants(CodeEt)); ALTER TABLE Etudiants ADD CONSTRAINT PK_CodeNt PRIMARY KEY(CodeNt); ALTER TABLE Etudiants ADD CONSTRAINT FK_CodeEp CodeEp FOREIGN KEY REFERENCES Epreuves(CodeEp); ALTER TABLE Etudiants ADD CONSTRAINT FK_CodeEt CodeEp FOREIGN KEY REFERENCES Etudiants(CodeEt);2014-201516
  • 17. 2014-201517 LE LANGAGE SQL : modification des données 1 – Insertion dans la base : Insert 2 – Suppression dans la base : Delete 3 – Modification dans la base : Update
  • 18. 2014-201518 INSERT INTO Agent (IdAgent, Anom, Aprenom) VALUES (25236, 'Dalton', 'Joe'); • Pour insérer une ligne dans une table on utilise la commande SQL INSERT Le Langage SQL : Mise-à-jour des données DELETE FROM Agent WHERE IdAgent = 25236 ; • Pour supprimer des données dans une table on utilise la commande SQL DELETE UPDATE Agent SET ANom = ‘DURANT’ WHERE Salaire = 2500 ; • Pour modifier des données dans une table on utilise la commande SQL UPDATE
  • 19. 2014-201519 LE LANGAGE SQL : Interrogation des données 1 – Interrogation de la base : LID 2 – Les jointures 3 – Les sous-interrogations et fonctions de groupe
  • 20. 2014-201520 SELECT Sélection des colonnes à interroger. FROM Choix des tables à partir desquelles on fait la sélection. WHERE Sélection des lignes (application d'un filtre). Le Langage SQL : Interrogation des données
  • 21. 2014-201521 Sélectionner des colonnes spécifiques • Choix des colonnes par la clause SELECT. • Afficher toutes les colonnes d'une table. SELECT * FROM Animaux ; SELECT ID, Espèce, Nom FROM Animaux; ID Espèce Nom -- ------ --- 1 Chien Bidou 2 Chat Groucha 3 Yeti Georges 4 Elephant Dumbo 5 Girafe Flip Flap
  • 23. 2014-201523 Fournisseur IdFourS FNom FAdresse FType Commande IdCom Agent_Id FourT_Id FourS_Id DateC DateL Prix Quantite Service IdService SNom Collect_Id Agents IdAgent ANom APrenom DateE Fonction Responsable Salaire Service_Id Collectivité IdCollect CDesignation Fourniture IdFourT FDesignation Quantite_Stock Commission Autre exemple de BD
  • 24. 2014-201524 Expressions Arithmétiques • Créer des expressions sur des données de type NUMBER ou DATE avec : + - * / SELECT ANom, Salaire*12 FROM Agent ; Remarque : la colonne salaire*12 existe uniquement à l’affichage. SELECT ANom, Salaire*12 AS ‘Salaire Annuel’ FROM Agent ; • Alias sur colonne : AS • La clause ORDER BY permet de trier les lignes : ASC DESC SELECT ANom, Fonction, Salaire FROM Agent ORDER BY Salaire DESC;
  • 25. 2014-201525 Il est possible de limiter le nombre de lignes rapportées en utilisant la clause WHERE : • permet d'exprimer une condition. SELECT ANom, Fonction, Salaire FROM Agent WHERE Service_Id = 10; Sélection des Lignes SELECT ANom, Fonction, Salaire FROM Agent WHERE ANom = 'Dupont' AND APrenom LIKE '_ea%'; chaîne de caractères• permet de faire des comparaisons Opérateurs de comparaison logiques . = > >= < <= != <> Opérateurs de comparaison . BETWEEN, AND, IN, LIKE, IS NULL Opérateurs logiques . AND, OR, NOT
  • 26. 2014-201526 SELECT ANom, APrenom, Fonction, Salaire FROM Agent WHERE DateE BETWEEN #08-AOU-93# AND #08- AOU-99#; Opérateurs de comparaison • On utilise l'opérateur BETWEEN pour tester l'appartenance à un intervalle. SELECT IdService, SNom, Collect_Id FROM Service WHERE Collect_Id IN (38,42,69,01); • On utilise l'opérateur IN pour tester l'appartenance à une liste de valeurs. format des dates par défaut
  • 27. 2014-201527 SELECT UPPER(ANom), CONCAT(ANom, APrenom), Salaire FROM Agent WHERE LOWER(Fonction) = ‘directeur ’; Fonctions Mono-Ligne • LOWER convertit en minuscule • UPPER convertit en majuscule • INITCAP convertit l’initiale en capitale • CONCAT concatène des valeurs • SUBSTR retourne une sous-chaîne • LENGTH retourne un nombre de caractères • ROUND(col,n) arrondit une valeur à n décimales spécif. • TRUNC (col,n) tronque une valeur à n décimales spécif. • MOD(m,n) retourne le reste de la division de m par n
  • 28. 2015-201628 SELECT * FROM Notes, Etudiants Les jointures WHERE CodeEt=CodeEt WHERE Notes.CodeEt=Etudiants.CodeEt FROM Notes N, Etudiants E WHERE N.CodeEt=E.CodeEt SELECT N.CodeNt, N.NoteNt, E.NomEt, E.PrenomEt FROM Notes N, Etudiants E WHERE N.CodeEt=E.CodeEt AND N.CodeNt=‘N0045’
  • 29. 2014-201529 • Une jointure est utilisée pour rechercher les données dans plusieurs tables. • Les lignes sont reliées grâce aux valeurs communes contenues dans les clés primaires et étrangères. • La condition de jointure s’exprime dans le WHERE. Les jointures SELECT Ag.ANom , Ag.Service_Id , Se.IdService FROM Agent Ag, Service Se WHERE Ag.Service_Id = Se.IdService ;
  • 30. 2014-201530 Les Sous-Interrogations • Il est possible d'imbriquer une, ou plusieurs, interrogation (SELECT) dans une autre. • On parle alors de sous-interrogation. • Elle est exécutée avant la requête principale ; son résultat est utilisé par la requête principale. • Elle permet de rechercher des données basées sur un critère inconnu. SELECT ANom, Fonction FROM Agent WHERE Service_Id = ( SELECT Service_Id FROM Agent WHERE ANom = 'Dupont' ) ;
  • 31. 2014-201531 SELECT ANom, Salaire, Service_Id FROM Agent WHERE Salaire = ( SELECT MIN (Salaire) FROM Agent ); •MIN, MAX,AVG,SUM,COUNT •Si une sous-interrogation retourne plus d'une ligne SELECT ANom, Salaire, Service_Id FROM Agent WHERE Salaire = ( SELECT MIN (Salaire) FROM Agent GROUP BY Service_Id ); Il faut remplacer = par IN (opérateur multi-lignes). Réponses Multi-Lignes (1/2)
  • 32. 2014-201532 Réponses Multi-Lignes (2/2) • Autre exemple SELECT Service_Id, AVG(Salaire) FROM Agent GROUP BY Service_Id HAVING AVG(Salaire) > ( SELECT AVG(Salaire) FROM Agent WHERE Service_Id = 10 ); Salaire moyen par service, dont le salaire moyen est supérieur à celui du service 10.
  • 33. Syntaxe Select SELECT codeEp,AVG(NoteNt) FROM Table1, Table2 WHERE Joiture AND Autres_f Group By (codeEp) HAVING AVG(NoteNt) >12 ORDER BY AVG(NoteNt) DESC 2014-201533
  • 34. Groupement 2014-201534 SELECT Categorie,SUM(Qte) as S_Qte FROM Produit WHERE Couleur=‘Rouge’ GROUP BY Categorie HAVING SUM(Qte)>100 ORDER BY SUM(Qte) DESC
  • 35. Le nom , prénom et note DS de tous les étudiants 2014-201535 1 SELECT NomEt , PrenomEt, NoteNt as Notes_DS FROM Etudiants E , Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp=‘DS’;
  • 36. Le nom , prénom et note DS de tous les étudiants ayant une note entre 8 et 12 2014-201536 2 SELECT NomEt , PrenomEt, NoteNt as Notes_DS FROM Etudiants E , Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp=‘DS’ AND NoteNt BETWEEN 8 AND 12;
  • 37. Le nombre des étudiants ayant une note entre 8 et 12 en DS 2014-201537 3 SELECT Count(*) FROM Etudiants E , Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp=‘DS’ AND NoteNt BETWEEN 8 AND 12;
  • 38. Max et Min des notes de DS 2014-201538 4 SELECT Max(NoteNt),Min(NoteNt) FROM Notes WHERE CodeEp=‘DS’
  • 39. Le nom , prénom et note DS de tous les étudiants ayant une note supérieure à la moyenne des DS 2014-201539 5 SELECT NomEt , PrenomEt, NoteNt as Notes_DS FROM Etudiants E , Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp='DS' AND NoteNt > SELECT AVG(NoteNT) FROM Notes WHERE CodeEp= 'DS' Calcul de la moyenne des notes DS
  • 40. Le nom , prénom et Examen triés de la note la plus petite à la plus grande 2014-201540 6 SELECT NomEt , PrenomEt, NoteNt as Notes_Examen FROM Etudiants E , Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp='EX‘ AND NoteNt IS NOT NULL ORDER BY NoteNt ASC ;
  • 41. Le nom , prénom des étudiants n’ayant pas passé l’examen 2014-201541 7 SELECT NomEt , PrenomEt FROM Etudiants E , Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp='EX' AND NoteNt IS NULL
  • 42. Le maximum en DS , EX et NP 2014-201542 8 SELECT CodeEp,NomEp, Max(NoteNt) AS max_Note FROM Notes GROUP BY CodeEp
  • 43. Le maximum en Devoir Surveillé , Examen et Présentiel 2014-201543 9 SELECT NomEp, Max(NoteNt) AS max_Note FROM Notes N, Epreuves E WHERE N.CodeEP= E.CodeEp GROUP BY NomEp
  • 44. Le nom et Prénom de l’étudiant ayant la note de DS la plus élevée SELECT NomEt, PrenomET , NoteNt FROM Etudiants E, Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp='DS‘ AND NoteNt = 2014-201544 10 SELECT MAX(NoteNT) FROM Notes WHERE CodeEp= 'DS' Trouver le max note DS
  • 45. Le nom , prénom et moyenne générale de la matière 2014-201545 11 SELECT NomEt, PrenomEt, SUM(NoteNt*CoefEp ) FROM Epreuves Ep, Notes N , Etudiants Et WHERE Et.CodeEt = N.CodeET AND N.CodeEp=Ep.CodeEp GROUP BY NomEt , PrenomEt
  • 46. Le nom , prénom et moyenne générale triés par Moy Générale 2014-201546 12 SELECT NomEt, PrenomEt, SUM(NoteNt*CoefEp ) FROM Epreuves Ep, Notes N , Etudiants Et WHERE Et.CodeEt = N.CodeET AND N.CodeEp=Ep.CodeEp GROUP BY NomEt , PrenomEt ORDER BY SUM(NoteNt*CoefEp ) DESC
  • 47. Le nom , prénom et moyenne générale triés (seule moy>=10) *HAVING n’est utilisée qu’avec GROUP BY quand il s’agit de filtrer selon l’une des fonctions de groupement 2014-201547 13 SELECT NomEt, PrenomEt, SUM(NoteNt*CoefEp ) FROM Epreuves Ep, Notes N , Etudiants Et WHERE Et.CodeEt = N.CodeET AND N.CodeEp=Ep.CodeEp GROUP BY NomEt , PrenomEt HAVING SUM(NoteNt*CoefEp ) >=10 ORDER BY SUM(NoteNt*CoefEp ) DESC
  • 48. Le nom et prénom de la fille ayant la plus grande note de NP 2014-201548 14 SELECT NomEt, PrenomET , NoteNt FROM Etudiants E, Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp=‘NP‘ AND SexeEt='F' AND NoteNt = SELECT MAX(NoteNT) FROM Notes N, Etudiants E Where N.CodeEt=E.CodeEt AND SexeEt= 'F' Trouver La note TP la plus élevée obtenue par une fille
  • 49. Le maximum et minimum de note par Ville 2014-201549 15 SELECT VilleEt, MAX(NoteNt) , MIN(NoteNt) FROM Etudiants E, Notes N WHERE E.CodeEt = N.CodeEt GROUP BY (VilleEt)
  • 50. La note d’examen maximale par ville et par sexe 2014-201550 16 SELECT VilleEt, MAX(NoteNt) FROM Etudiants E, Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp = 'EX' GROUP BY VilleEtol , SexeEt;
  • 51. La note d’examen maximale par ville et par sexe dépassant 15 2014-201551 17 SELECT VilleEt, MAX(NoteNt) FROM Etudiants E, Notes N WHERE E.CodeEt = N.CodeEt AND CodeEp = 'EX' GROUP BY VilleEt , SexeEt HAVING MAX(NoteNt)>15 ;
  • 56. 2014-201556 CodeF NomF VilleF F1 P.M.S Tunis F2 S.T.M Tunis F3 F.R.P Sousse F4 M.T Sfax F5 N.X Tunis F6 K.L Sousse CodeP NomP CouleurP PoidsP Pc1 Papier Rouge 500 Pc2 Plateau Vert 30 Pc3 Rideau Vert 450 Pc3 Cadre Orange 250 Pc4 Verre Rouge 20 Pc5 Assiette Orange 40 CodeB NomB VilleB B1 Promi Tunis B2 Fonis Tunis B3 Breco Sousse B4 Bord Nabeul B5 Halu Bizerte B6 Bonpro Sfax CodeF CodeP CodeB QteFrn F1 Pc1 B1 200 F1 Pc2 B2 150 F2 Pc3 B1 600 F4 Pc1 B2 100 F1 Pc4 B1 300 F3 Pc6 B3 250