Autour du world
⚓︎
On considère dans ce sujet la base de données world
. Cette base contient trois relations/tables :
-
city
: contient des informations décrivant des villes :-
ID
: l'identifiant de la ville (entier, clé primaire) -
Name
: le nom de la ville (texte) -
CountryCode
: le code du pays dans lequel est situé la ville (texte, clé étrangère verscountry.Code
) -
District
: la région d'appartenance de la ville (texte) -
Population
: la population de la ville (entier)
-
-
country
: contient des informations décrivant les pays :-
Code
: le code du pays (texte, clé primaire) -
Name
: le nom du pays (texte) -
Continent
: le continent du pays (texte) -
SurfaceArea
: la surface du pays (nombre décimal) -
Population
: la population du pays (entier) -
Capital
: la capitale du pays (entier, clé étrangère verscity.ID
) -
d'autres attributs qui ne nous intéressent pas ici...
-
-
countryLanguage
: décrit les langues parlées dans le pays :-
CountryCode
: le code du pays (texte, clé étrangère verscountry.Code
) -
Language
: la langue concernée par cette entrée (texte) -
IsOfficial
: cette langue est-elle officielle dans ce pays ? (texte,T
pour True,F
pour False) -
Percentage
: le pourcentage de locuteurs dans le pays (nombre décimal)
-
Notez que la clé primaire de la table countryLanguage
est le couple (CountryCode, Language)
.
Cette base est téléchargeable au format sqlite ici. La source provient de ce site.
-
Afficher le nom de toutes les villes ainsi que leur population.
Astuce
Vous pouvez rajouter
LIMIT 10
à la fin de votre requête afin de n'afficher que les 10 premiers résultats. Il y a beaucoup de villes !Votre réponse
Réponse
🗂️ Requête SQLSELECT Name, Population FROM city;
-
Afficher le nom et la population des villes de plus de huit millions d'habitants (inclus):
Votre réponse
Réponse
🗂️ Requête SQLSELECT Name, Population FROM city WHERE Population >= 8000000;
-
Quel est le
Code
de la France ?Votre réponse
Réponse
🗂️ Requête SQLSELECT Code FROM country WHERE Name = 'France';
-
La ville de Rennes est associée au
District
de"Haute-Normandie"
. Corriger cette erreur afin de placer Rennes en Bretagne.Votre réponse
Réponse
🗂️ Requête SQLUPDATE city SET District = 'Bretagne' WHERE Name = 'Rennes';
-
Insérer la ville de Vannes (
District
de Bretagne et population de 53 719 habitants)Votre réponse
Réponse
🗂️ Requête SQLINSERT INTO city (District, CountryCode, Name, Population) VALUES ("Bretagne", "FRA", "Vannes", 53719);
-
Quels sont les noms des pays dans lesquels le portugais (
Portuguese
dans la base) est une langue officielle ?Votre réponse
Réponse
🗂️ Requête SQLSELECT Name FROM country JOIN countrylanguage ON countrylanguage.CountryCode = country.Code WHERE Language = 'Portuguese' AND IsOfficial = 'T';
-
Combien de villes ont un nom débutant par les lettres
Van
?Votre réponse
Réponse
🗂️ Requête SQLSELECT COUNT(Name) FROM city WHERE Name LIKE "Van%"
-
Afficher les noms et la population des villes françaises de plus de 200 000 habitants dans l'ordre décroissant de leur population.
Votre réponse
Réponse
🗂️ Requête SQLSELECT Name, Population FROM city WHERE CountryCode = 'FRA' AND Population >= 200000 ORDER BY Population DESC;
-
Quel est le nom et la surface du plus petit pays du monde ?
Votre réponse
Réponse
En
sqlite
on peut faire :🗂️ Requête SQLSELECT Name, MIN(SurfaceArea) FROM country;
Une approche plus classique est toutefois d'utiliser des requêtes imbriquées :
🗂️ Requête SQLSELECT Name, SurfaceArea FROM country WHERE SurfaceArea = (SELECT Min(SurfaceArea) FROM country);
-
Quel code permettrait de créer la table
district
dont les attributs sont :id
: un entier, clé primairename
: nom du district, au format textecountryCode
: le code du pays d'appartenance de cedistrict
countryCode
est une clé étrangère pointant vers la tablecountry
.Votre réponse
Réponse
🗂️ Requête SQLCREATE TABLE "district" ( "id" INTEGER, "name" TEXT, "countryCode" INTEGER, PRIMARY KEY("id"), FOREIGN KEY("CountryCode") REFERENCES "country"("Code") );