ITC CCMP 2025 - Partie SQL
Partie SQL⚓︎
Base de données - Exemple de fret maritime de conteneurs⚓︎
On donne les tables NAVIRES et CONTENEURS suivantes :
NAVIRES(idN,evp,portDepN,dateDep,portDestN)
idN: clé primaire, identifiant du navire (type entier, non nul)evp: capacité en équivalent conteneurs de longueur 20 pieds (type entier)portDepN: port de départ (type chaîne de caractères)dateDep: date de départ (type date)portDestN: port de destination (type chaîne de caractères)
CONTENEURS(idC,idN,taille,portDepC,dateDisp,portDestC,val)
idC: clé primaire, identifiant du conteneur (type entier)idN: identifiant du navire attribué (type entier, valeur 0 si non encore attribué).taille: longueur du conteneur, 20 ou 40 pieds (type entier). La hauteur et la profondeur sont identiques. •portDepC: port de départ (type chaîne de caractères) •dateDisp: date de mise à disposition (type date) •portDestC: port de destination (type chaîne de caractères) •val: tarification, valeur entière de 1 à 5 par ordre croissant de profit pour l’entreprise (type entier)
Corrigé⚓︎
Q1
Écrire une requête permettant de retourner la liste des identifiants de conteneurs et leur ratio tarification/longueur trié par ordre décroissant, partant de Marseille et devant aller à Barcelone, avec une mise à disposition avant le 01/01/2025.
| SQL | |
|---|---|
Remarques :
La multiplication par 1.0 sert à convertir la valeur entière de val pour ne pas obtenir le quotient de la division entière qui serait obtenu sans cette conversion.
Il est possible de vérifier que sans cette conversion le ratio est toujours 0 ici.
Les dates s'écrivent avec des guillemets comme les chaînes de caractères.
Q2
| SQL | |
|---|---|
Remarque :
Le NATURAL JOIN est ici possible car les deux relations NAVIRES et CONTENEURS seront jointes par le couple clé primaire / clé étrangère avec le même nom : idN.
Il est aussi possible d'écrire : JOIN CONTENEURS ON NAVIRES.idN = CONTENUERS.idN
Test de requête :⚓︎
Il est possible de tester des requêtes, arpès avoir exécuter (bouton Exécuter sous le code) le chargement du code SQL plus bas.