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,Tpour True,Fpour 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
Codede la France ?Votre réponse
Réponse
🗂️ Requête SQLSELECT Code FROM country WHERE Name = 'France'; -
La ville de Rennes est associée au
Districtde"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 (
Districtde 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 (
Portuguesedans 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
sqliteon 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
districtdont les attributs sont :id: un entier, clé primairename: nom du district, au format textecountryCode: le code du pays d'appartenance de cedistrict
countryCodeest 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") );