Requêtes SQL - AliaBrah/militants_droit_femmes GitHub Wiki
Cette page a pour but d'exposer les requêtes SQL posées à notre base de données qui sont pertinentes pour répondre aux interrogations de notre recherche. Toute requête peut être transformée en "vue", grâce à la commande mise avant le script SQL "CREAT VIEW ... as". Les requêtes qui sont exposées ci-dessous ont toutes été transformée en vue et se trouvent dans la base de données.
Requêtes pour répondre à la problématique principale
Sélection de toutes personne ayant eu le grade du master trié par pays de naissance
SELECT p.nom , p.prénom , d.nom as degre , d2.nom as discipline, e.nom as etablissement, fp.date_debut, fp.date_fin, n.date as date_naissance, p2.nom as pays_de_naissance
FROM personne p
JOIN formation_professionnelle fp
ON (p.pk_personne = fp.fk_personne) -- jointure table personne et table poursuite de la formation
JOIN degre d
ON (d.pk_degre = fp.fk_degre) -- jointure table pousite formation et degré de formation
JOIN etablissement e
ON (e.pk_etablissement = fp.fk_etablissement) -- jointure table poursuite formation et l'établissement de formation
JOIN discipline d2
ON (d2.pk_discipline = fp.fk_discipline) -- jointure table pousuite formation et la discipline étudiée
JOIN naissance n
ON (p.pk_personne = n.fk_personne_enfant) -- jointure table personne et naissance
JOIN pays p2
ON (n.fk_pays_naissance_type = p2.pk_pays) -- jointure table pays à la table de la naissance
WHERE d.nom = 'Master'
ORDER BY p2.nom ;
Cette requête a été exportée en fichier CSV.
Personnes militant pour le droit des femmes qui sont fondatrices d'association et qui militent via celle-ci, trié par l'année de création de l'organisation
SELECT p2.nom, p2.prénom, o.nom as nom_organisation, o.annee_de_creation as fondation_organisation, tm.nom as medium_d_expression, p.nom as pays_de_naissance
FROM membre m
JOIN personne p2 -- table membre organisation et personne
ON (m.fk_personne = p2.pk_personne) -- jointure personne et membre
JOIN organisation o -- table membre organisation et personne
ON (m.fk_organisation = o.pk_organisation) -- membre et organisation
JOIN activite a
ON (a.fk_organisation = o.pk_organisation) -- jointure activité militante et l'organisation
JOIN militantisme m2
ON (a.fk_militantisme = m2.pk_militantisme) -- jointure activité militante à type de militantisme
JOIN type_militantisme tm
ON (m2.fk_type_militantisme = tm.pk_type_militantisme) -- jointure le militantisme au type d'expression
JOIN naissance n
ON (p2.pk_personne = n.fk_personne_enfant) -- jointure personne et naissance
JOIN pays p
ON (n.fk_pays_naissance_type = p.pk_pays) -- jointure pays et la naissance cela dans le but de faire apparaître le pays de naissance
WHERE m.fk_role = "1" AND a.fk_organisation NOTNULL -- conditions qui sont que le rôle doit être fondatrice et militantisme via l'organisation
ORDER BY o.annee_de_creation ;
Pour aller plus loin
Requête qui démontre qui a un père avocat dans les militant.e.s, trié par nom
SELECT p.prénom, p.nom, m.nom as nom_metier_pere
FROM personne p
JOIN naissance n
ON (p.pk_personne = n.fk_personne_enfant) -- jointure table naissance et personne
JOIN pousuite_m pm
ON (n.fk_personne_père = pm.fk_personne) -- jointure table naissance et métier du père
JOIN metier m
ON (pm.fk_metier = m.pk_metier) -- jointure poursuite métier avec le métier
WHERE m.nom = 'Avocat.e'
ORDER BY p.nom;
Personnes qui militent grâce à la production écrite, trié par pays
SELECT p.nom , p.prénom , n.date as date_naissance, p2.nom as pays_naissance, a.annee_debut as premiere_annee_publication, tm.nom as medium, m.theme
FROM personne p
JOIN naissance n
ON (p.pk_personne = n.fk_personne_enfant) -- jointure personne et naissance
JOIN pays p2
ON (p2.pk_pays = n.fk_pays_naissance_type) -- jointure naissance et pays
JOIN activite a
ON (p.pk_personne = a.fk_personne) -- jointure entre activité militante et personne
JOIN militantisme m
ON (a.fk_militantisme = m.pk_militantisme) -- jointure militantisme et l'activité
JOIN type_militantisme tm
ON (tm.pk_type_militantisme = m.fk_type_militantisme) -- jointure table militantisme et type de militantisme
WHERE (tm.nom = 'Journal') OR (tm.nom = 'Livre')
ORDER BY p2.nom ;