{"id":25334184,"url":"https://github.com/studoo-app/sql-td3-sio1","last_synced_at":"2025-07-27T04:39:43.674Z","repository":{"id":267434778,"uuid":"900982912","full_name":"studoo-app/SQL-TD3-SIO1","owner":"studoo-app","description":"SQL - Découverte des jointures ","archived":false,"fork":false,"pushed_at":"2024-12-10T11:24:44.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":11,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-14T05:37:09.212Z","etag":null,"topics":["2024-2025","sio1","sql"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/studoo-app.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-09T20:34:35.000Z","updated_at":"2024-12-10T11:24:48.000Z","dependencies_parsed_at":"2024-12-10T10:35:52.525Z","dependency_job_id":"f257f9a3-7fb7-4cd9-9cec-25c360cb5ac9","html_url":"https://github.com/studoo-app/SQL-TD3-SIO1","commit_stats":null,"previous_names":["studoo-app/sql-td3-sio1"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studoo-app%2FSQL-TD3-SIO1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studoo-app%2FSQL-TD3-SIO1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studoo-app%2FSQL-TD3-SIO1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/studoo-app%2FSQL-TD3-SIO1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/studoo-app","download_url":"https://codeload.github.com/studoo-app/SQL-TD3-SIO1/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247807887,"owners_count":20999617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2024-2025","sio1","sql"],"created_at":"2025-02-14T05:37:13.053Z","updated_at":"2025-04-08T08:44:23.268Z","avatar_url":"https://github.com/studoo-app.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"![separe](https://github.com/studoo-app/.github/blob/main/profile/studoo-banner-logo.png)\n# TD 3 - Les jointures en SQL\n[![Version](https://img.shields.io/badge/Version-2024-blue)]()\n\n## Objectifs\n\n- Comprendre le concept de clé étrangère et sa relation avec les clés primaires.\n- Maîtriser la syntaxe des jointures SQL (INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN).\n- Écrire des requêtes SQL intégrant des jointures pour extraire des informations pertinentes.\n\n## Démarrage des services\n- `docker compose up -d` pour démarrer les services\n- `docker compose down` pour arrêter les services\n- Accéder à PHPMYADMIN via `http://localhost:8080`\n\n## Définition : Créer la relation entre deux tables avec la clé étrangère\n\nUne clé étrangère (FOREIGN KEY) établit un lien entre deux tables. Elle correspond à une colonne\n(ou un ensemble de colonnes) dans une table qui fait référence à une clé primaire d'une autre table.\n\n### Exemple\n```sql\nCREATE TABLE Inscription (\n    id_inscription INT PRIMARY KEY NOT NULL AUTO_INCREMENT,\n    id_etudiant INT,\n    id_cours INT,\n    FOREIGN KEY (id_etudiant) REFERENCES Etudiant(id_etudiant),\n    FOREIGN KEY (id_cours) REFERENCES Cours(id_cours)\n);\n```\n\nIci, id_etudiant de la table Inscription est une clé étrangère qui fait référence à id_etudiant de la table Etudiant.\n\n\n## Utilisation de la relation entre deux tables avec les jointures\n\nLes jointures SQL permettent de lier les données de plusieurs tables sur la base d'une relation commune\n(souvent une clé étrangère).\n\n### Les types de jointures :\n\n- **INNER JOIN** : Ne conserve que les correspondances entre les deux tables.\n- **LEFT JOIN** : Conserve toutes les lignes de la table de gauche, même si elles n'ont pas de correspondance.\n- **RIGHT JOIN** : Conserve toutes les lignes de la table de droite, même si elles n'ont pas de correspondance.\n\n### Mise en application\n\n#### **Exercice 1 : Les jointures simples**\n\n- Affichez la liste des étudiants et les cours auxquels ils sont inscrits. (INNER JOIN)\n- Affichez la liste de tous les étudiants, y compris ceux qui ne sont pas inscrits à des cours. (LEFT JOIN)\n- Affichez la liste de tous les cours, y compris ceux auxquels aucun étudiant n'est inscrit. (RIGHT JOIN)\n- Affichez la liste complète de tous les étudiants et de tous les cours, qu'il y ait correspondance ou non. (FULL OUTER JOIN)\n\n#### **Exercice 2 : Les jointures simples**\n\n- Quels sont les étudiants qui ne sont inscrits à aucun cours ?\n- Quels sont les cours qui n’ont aucun étudiant inscrit ?\n- Affichez la liste des étudiants avec leurs cours. Indiquez \"Non inscrit\" si l'étudiant n'est inscrit à aucun cours.\n\n#### **Exercice 3 : Modification des Données**\n\n- Insérez un nouvel étudiant nommé \"Bernard Simon\".\n- Inscrivez \"Bernard Simon\" au cours \"Anglais\".\n- Supprimez l'inscription de Paul Leroy au cours de Mathématiques.\n\n#### **Exercice 4 : Verification de l'intégrité**\n\n- Essayez de supprimer un étudiant qui est encore inscrit à un cours.\n- Essayez d’insérer un enregistrement dans la table `Inscription` avec un `id_etudiant` ou un `id_cours` qui n'existe pas.\n\n#### **Exercice 5 : Création d'une Requête Complexe**\n\n- Affichez la liste des étudiants, le nombre total de cours auxquels ils sont inscrits et la liste de ces cours sous forme de texte.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstudoo-app%2Fsql-td3-sio1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstudoo-app%2Fsql-td3-sio1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstudoo-app%2Fsql-td3-sio1/lists"}