Exercice N°2 Série de TD N°3 Et Exercice N°1 Série de TD N°4
Exercice N°2 Série de TD N°3 Et Exercice N°1 Série de TD N°4
Exercice N°2 Série de TD N°3 Et Exercice N°1 Série de TD N°4
SQL :
Select * from ouvrages where annee >2014
Select(SQL) : π (projection de l’AR)
Where (SQL) : ϭ (selection de l’AR)
2. Afficher les personnes (numéro, nom, âge et ville) habitant la ville d’« Alger » ou dont l’âge est
supérieur à 40 ans.
AR :
π numPers, nomPers, âge, ville [ ϭville=’Alger’ (personnes) ∪ ϭage>40 (personnes)]
π numPers, nomPers, âge, ville [ ϭville=’Alger’ (personnes)] ∪ π numPers, nomPers, âge, ville [ ϭ age>40 (personnes)]
SQL :
Select numPers, nomPers, âge, ville
From personnes
Where ville=’Alger’ OR age>40
SQL :
Select titreOuv
From emprunt e, ouvrages o
Where e. ouvrage=o.codouv and dateEmprunt>= ‘01/01/2019’ and dateEmprunt <= ‘31/12/2019’
------------------------------------------------
Select titreOuv
From ouvrages
Where codouv in
(
Select ouvrage
From emprunt where dateEmprunt>= ‘01/01/2019’ and dateEmprunt <= ‘31/12/2019’
)
5. Les codes et les titres des ouvrages de la filière « Info » et dont le prix n’excède pas 50 Euros.
AR :
Π codeOuv, titreOuv [ ϭnomfiliere= ‘Info’ (filieres) ⋈ ϭprix<50 (ouvrages)]
ϴ
ϴ = filieres.codeFilière= ouvrages.filière
SQL :
SQL :
Select titreouv
From ouvrages
Where codeouv in
(
Select ouvrage
From ecrire
Where auteur in
(
Select numpers
From personnes
Where nompers=’Cushman’and prepers=’pauline’
)
)
SQL :
Select numpers, nompers
From personnes
Where numpers in
(
Select auteur From ecrire
)
10. Les auteurs (numéros, noms et âges) qui ne sont pas également lecteurs.
AR :
Π numpers, nompers, age [ personne ⋈ (Πnumpers (personne) - αlecteur :numpers(Πlecteur(emprunt)))]
SQL:
Select numpers, nompers , age
From personnes
Where numpers not in
(
Select lecteur from emprunt
)
11. Les personnes (numéros, noms et prénoms) habitant dans la même ville que la personne numéro «
N01 » ?
AR :
Π numpers, nompers, prepers [ personne ⋈ (Πville (ϭnumpers = ‘N01’ (personne))]
SQL :
Select numpers, nompers , prepers
From personnes
Where ville in
(
Select ville from peronnes where numpers=’N01’
)
12. Les informations (numéros, noms, prénoms) de l’auteur principal de chaque ouvrage de la filière «
Inf ».
AR :
Π numpers, nompers, prepers [ personne ⋈ (ϭposition = 1 (ecrire) ⋈ ( ouvrages ⋈ ϭnomfiliere=’Info’ (filieres)) )]
ϴ1 ϴ2 ϴ3
ϴ1 : numpers=auteur
ϴ2 :ouvrage=codeouv
ϴ3 : filiere=codefiliere
SQL :
Select numpers, nompers , prepers
From personnes
Where numpers in
(
Select auteur from ecrire where ouvrage in
(
Select codeouv from ouvrage where filiere in
(
Select codefiliere where nomfiliere = ‘Info’
)
)
)
13. Les personnes ayant emprunté tous les livres de la filière « Inf ».
AR :
Personnes ⋈ (Π lecteur, ouvrage (Emprunt ) /αcodeouv :ouvrage (Π codeouv(ouvrages ⋈ ϭnomfiliere=’Info’(filiere))) )
ϴ1 ϴ2
ϴ1 : numpers=lecteur
ϴ2 : filiere=codefiliere
SQL :
SELECT lecteur
FROM `emprunts`
WHERE ouvrage IN (
SELECT codeouv
FROM ouvrage
WHERE filiere IN (
SELECT codefiliere
FROM filiere
WHERE nomfiliere = 'Info'
)
)
GROUP BY lecteur
HAVING count(distinct ouvrage ) = ( // Nombre d’ouvrage de la filière ‘Info’
SELECT codefiliere
FROM filiere
WHERE nomfiliere = 'Info'
)
)
SQL :
SELECT ouvrage
FROM `emprunts`
GROUP BY ouvrage
(
SELECT count( distinct numpers )
FROM `personne`