J’ai assuré pendant plusieurs années un enseignement des bases de SQL en utilisant le défunt module SQLite Manager pour Firefox. Pour cela, j’ai créé une base des communes de France et quelques documents (avec LaTeX). Le master pour lequel j’ai préparé tout cela est désormais de l’histoire ancienne et, au cas où cela pourrait servir, je place sur ce site tout mon petit bazar.
Réalisées avec beamer sous LaTeX, les deux présentations se situent à niveau élémentaire : après avoir exposé à grands traits les principes des bases de données relationnelles, on passe à SQL dont on n’étudie qu’une partie du Data Manipulation Language.
La première présentation se consacre ensuite aux manipulations concernant une seule table et s’achève avec les tris et les fonctions statistiques.
La 
		deuxième présentation 
		aborde les manipulations utilisant
		plusieurs tables. On aborde donc les jointures. Les vues sont
		abordées ensuite. La présentation se termine avec l’expression
		CASE et le mot-clé DISTINCT.
Les sources sont fournies dans le fichier
		diapo_sql_sources.zip, archive 
		du dossier diapo_sql_sources qui contient également
		deux fichiers .sql présentant des instructions
		compatibles avec SQLite dont plusieurs sont commentées. La base de
		données utilisée est france.sqlite disponible dans 
		l’archive
		france.sqlite.zip.
Enfin, le fichier diapo_sql.pdf regroupe le contenu des deux présentations précédentes.
J’ai extrait les données de fichiers disponibles sur le site de l’INSEE. J’ai créé la base, au format SQLite, grace à un script que je fournis. Je donne également un script pour PostGreSQL et un autre pour MySQL.
J’ai récupéré sur le site de l’INSEE les données concernant la
		population légale de 2009 dans un fichier portant le nom évocateur
		de BTX_CC_POP_2009.zip contenant un
		classeur au format MS-Excel et un pdf dont le titre est Bases
		de chiffres clés : documentation // Évolution et structure de la
		population
. N’ayant pas gardé l’adresse exacte du document sur
		le site de l’INSEE, je ne suis pas en mesure de la retrouver
		aujourd’hui, d’autant que, depuis, la population légale présentée
		est celle de 2012.
Je suis passé au format .ods pour traiter le fichier
		avec LibreOffice Calc. J’en ai extrait les données sous forme de
		fichiers .csv dont l’extension est
		.data.
À la recherche d’une solution pour tirer partie de cette base en
		cours — problème d’accessibilité, de compatibilités diverses, etc. —
		j’ai envisagé tour à tour MySQL et PostGreSQL pour lesquels j’ai
		écrit les scripts de création de la base. Sur la suggestion d’un
		collègue, je me suis tourné vers SQLite et le module pour Firefox
		qui résolvaient d’un coup tous les problèmes : pas besoin de créer
		une base centralisée car la base est contenu dans un unique
		fichier .sqlite donc pas de problème de gestion des
		accès, des autorisations de manipulation, etc. ; pas
		d’installation complexe car les salles étaient déjà équipées de
		Firefox et qu’un module s’installe sans trop de peine, etc.
On a accès à la région dans laquelle se trouve une commune en
		passant par le département et à l’arrondissement dont elle dépend
		en passant par le canton. L’identifiant d’une commune ne porte pas
		le même nom dans la table communes et dans la table
		population. La base ne comporte pas de
		NULL dans sa version 1, elle en comporte dans sa
		version 2 (SQLite seulement). La base ne comporte pas de champs de
		type date ou heure.
La base au format sqlite france.sqlite est
		disponible
		zippée ici. Elle
		contient neuf tables :
dictionnaire: dictionnaire des champs apparaissant dans les autres tables ;
zeat: liste des zones d'études et d'aménagement du territoire, voir la définition sur le site de l’INSEE ;
regions: régions administratives avant réforme 2015 ;
departements: idem pour les départements ;
arrondissements: idem pour les arrondissements ;
cantons: idem pour les cantons ;
communes: idem pour les communes ;
population: donne les différents comptes de la population par commune comme présentés dans le dictionnaire ;
regadj: donne un moyen d’étudier l’adjacence des régions de France métropolitaine. Si deux régions apparaissent sur la même ligne, elles sont adjacentes, la direction donne une indication de la place de la deuxième par rapport à la première, le plan étant découpé en huit angles égaux de sommet le centre de la première région,
0 est
			le nord, je crois me souvenir qu’ensuite on tourne dans le sens
			des aiguilles d’une montre (sens indirect) mais c’est SGDG
			;-).La version n° 2,
		disponible zippée ici,
		contient des NULL au lieu d’un texte vide
		"" dans les champs ArtMaj et
		ArtMin. Le fichier
		rem_france2.txt donne la procédure suivie pour
		la transformation.
Les sources sont données aziz
 autrement dit telles
		quelles et sans garanti aucune.
Pas grand’ chose mais il parait que c’est mieux que rien. D’abord les devoirs de ces deux dernières années (SQL et Excel) et les corrections des questions sur SQL. Puis quelques requêtes avec, parfois, quelques commentaires.