تمارين الاستعلام مع لغة SQL مع الحل
التمرين 1:
خذ بعين الاعتبار النموذج العلائقي التالي
المتعلق بقاعدة بيانات عن التمثيلات الموسيقية
REPRESENTATION (n°représentation,
titre_représentation, lieu)
MUSICIEN (nom,
n°représentation*)
PROGRAMMER (date,
n°représentation*, tarif)
ملاحظة: يتم وضع خط تحت المفاتيح الأساسية ويتم تمييز المفاتيح الخارجية بعلامة
*
الأسئلة:
1 - أدرج عناوين العروض.
2 - إدراج عناوين العروض المسرحية
في دار أوبرا Bastille.
3 - أذكر أسماء الموسيقيين
وعناوين العروض التي يشاركون فيها.
4- إعطاء قائمة بعناوين العروض
والأماكن والأسعار ليوم 14/09/1996.
التمرين 2:
لنفترض النموذج العلائقي التالي المتعلق
بالإدارة المبسطة لمراحل سباق فرنسا للدراجات 97، حيث أن إحدى مراحل من نوع "تجربة
الوقت الفردي" تجري في Saint-Etienne
EQUIPE(CodeEquipe, NomEquipe,
DirecteurSportif)
COUREUR(NuméroCoureur,
NomCoureur, CodeEquipe*, CodePays*)
PAYS(CodePays,
NomPays)
TYPE_ETAPE(CodeType,
LibelléType)
ETAPE(NuméroEtape,
DateEtape, VilleDép, VilleArr, NbKm, CodeType*)
PARTICIPER(NuméroCoureur*,
NuméroEtape*, TempsRéalisé)
ATTRIBUER_BONIFICATION(NuméroEtape*,
km, Rang, NbSecondes, NuméroCoureur*)
ملاحظة: يتم وضع خط تحت المفاتيح الأساسية ويتم تمييز المفاتيح الخارجية بعلامة
*
الأسئلة:
1 - ما هو تكوين فريق Festina (عدد واسم وبلد العدائين)؟
2 - ما هو إجمالي عدد كيلومترات
سباق فرنسا للدراجات 97؟
3 - ما هو عدد الكيلومترات
لمراحل "Haute
Montagne"؟
4 - ما هي أسماء المتسابقين
الذين لم يحصلوا على مكافآت؟
5- ما هي أسماء العدائين الذين
شاركوا في جميع المراحل؟
6 - ما هو التصنيف العام للراكبين
(nom,
code équipe, code pays et temps des coureurs)في نهاية المراحل الثلاث عشرة الأولى ، مع العلم أن تم دمج المكافآت في
الأوقات التي تحققت في كل مرحلة؟
7 - ما هو تصنيف الفريق في
نهاية المراحل الـ13 الأولى (nom
et temps des équipes)؟
تصحيح التمرين رقم
1
1 - أدرج عناوين العروض.
SELECT titre_représentation FROM
REPRESENTATION ;
2 - إدراج عناوين العروض المسرحية
في دار أوبرا Bastille.
SELECT titre_représentation FROM
REPRESENTATION
WHERE lieu="Opéra Bastille" ;
3 - أذكر أسماء الموسيقيين
وعناوين العروض التي يشاركون فيها.
SELECT nom, titre_représentation
FROM MUSICIEN, REPRESENTATION
WHERE MUSICIEN.n°représentation =
REPRESENTATION.n°représentation ;
4- إعطاء قائمة بعناوين العروض
والأماكن والأسعار ليوم 14/09/1996.
SELECT titre_représentation, lieu,
tarif
FROM REPRESENTATION, PROGRAMMER
WHERE PROGRAMMER.n°représentation =
REPRESENTATION.n°représentation
AND date='14/06/96' ;
تصحيح التمرين رقم
2
1 - ما هو تكوين فريق Festina (عدد واسم وبلد العدائين)؟
SELECT NuméroCoureur, NomCoureur,
NomPays
FROM EQUIPE A, COUREUR B, PAYS C
WHERE A.CodeEquipe=B.CodeEquipe And B.CodePays=C.CodePays
And NomEquipe="FESTINA" ;
2 - ما هو إجمالي عدد كيلومترات
سباق فرنسا للدراجات 97؟
SELECT SUM(Nbkm) FROM ETAPE ;
3 - ما هو عدد الكيلومترات
لمراحل "Haute
Montagne"؟
SELECT SUM(Nbkm) FROM ETAPE A,
TYPE_ETAPE B
WHERE A.CodeType=B.CodeType And LibelléType="HAUTE
MONTAGNE" ;
4 - ما هي أسماء المتسابقين
الذين لم يحصلوا على مكافآت؟
SELECT NomCoureur FROM COUREUR
WHERE NuméroCoureur NOT IN (SELECT NuméroCoureur FROM
ATTRIBUER_BONIFICATION) ;
5- ما هي أسماء العدائين الذين
شاركوا في جميع المراحل؟
SELECT NomCoureur FROM PARTICIPER A,
COUREUR B
WHERE A.NuméroCoureur=B.NuméroCoureur
GROUP BY NuméroCoureur, NomCoureur
HAVING COUNT(*)=(SELECT COUNT(*) FROM ETAPE) ;
6 - ما هو التصنيف العام للراكبين
(nom,
code équipe, code pays et temps des coureurs)في نهاية المراحل الثلاث عشرة الأولى ، مع العلم أن تم دمج المكافآت في
الأوقات التي تحققت في كل مرحلة؟
SELECT NomCoureur, CodeEquipe,
CodePays, SUM(TempsRéalisé) AS Total
FROM PARTICIPER A, COUREUR B
WHERE A.NuméroCoureur=B.NuméroCoureur and NuméroEtape<=13
GROUP BY A.NuméroCoureur, NomCoureur, CodeEquipe,
CodePays
ORDER BY Total;
7 - ما هو تصنيف الفريق في
نهاية المراحل الـ13 الأولى (nom
et temps des équipes)؟
SELECT NomEquipe, SUM(TempsRéalisé)
AS Total
FROM PARTICIPER A, COUREUR B, EQUIPE C
WHERE A.NuméroCoureur=B.NuméroCoureur And
B.CodeEquipe=C.CodeEquipe
And NuméroEtape<=13
GROUP BY B.CodeEquipe, NomEquipe
ORDER BY Total;
Commentaires
Enregistrer un commentaire