Skip to content

Latest commit

 

History

History
213 lines (162 loc) · 5.37 KB

dev_db.md

File metadata and controls

213 lines (162 loc) · 5.37 KB

Base de données

Introduction

Qu'est-ce qu'une base de données ?

Une base de données est un système qui permet d'accéder facilement à un ensemble organisé de données, de les manipuler et de les mettre à jour. Comme montré ci-dessous dans le schéma, le client (un site web, une application, etc.) envoie une requête à une API (un serveur) qui va récupérer et/ou mettre à jour les données associées dans la base de données.

Une conversation entre le client, l'API et la base de données

Voici un exemple simple de base de données basée sur de la notation de films. Un film est représenté entre autres par son titre. Il y a des internautes qui donnent des notes aux films. Il y a également des artistes présents dans le film, qui joue un rôle dans celui-ci ou qui le réalise. Enfin, le film peut être diffusé en plusieurs langues dans des pays identifiés par un code. Comme nous pouvons le voir ici, une base de données est composée de tables (Artiste, Film, Internaute, Pays) et de colonnes (nom, prénom, titre, année, résumé, mot de passe, etc.).

La base de données

Aide

Pour des informations supplémentaires ou de l'aide pendant vos exercices, vous pouvez utiliser SQL Tutorial.

Exercices : accès à l'excercice sur programiz

Instructions

Vous allez utiliser et compléter la base de données d'une équipe de développement.

Objectifs

  1. Découvrir le stockage de données via SQL
  2. Lire des données
  3. Ajouter de nouvelles données
  4. Introduction à de la syntaxe plus complexe

Étape 1 : Initialiser les données

  1. Récupérez le fichier init_sql_npt_2025.sql
  2. Copiez/collez son contenu entier dans "Input" sur Programiz
  3. Cliquez sur "Run SQL"
  4. Supprimez tout ce qui se trouve dans "Input"
  5. Comprenez les "Available Tables" sur la droite en utilisant le schéma proposé ci-dessous
flowchart LR 
Tribu --regroupe--> Squad 
Squad --contient--> Personne
Personne --a une--> Fonction
Loading

Étape 2 : Lire des données grâce à SQL

  1. Récupérez les données de la table TRIBU
Solution
SELECT * FROM TRIBU;
  1. Récupérez UNIQUEMENT le nom des SQUAD
Solution
SELECT nom FROM SQUAD;
  1. Récupérez UNIQUEMENT le nom de la table FONCTION où l'idFonction vaut 5
Solution
SELECT nom FROM FONCTION where idFonction = 5;
  1. Récupérez toutes les informations de PERSONNE qui sont des développeurs
Solution
SELECT * FROM PERSONNE where fonction = 5;
  1. Récupérez les noms de PERSONNE triés par ordre alphabétique (A->Z), ensuite par ordre anti-alphabétique (Z->A)
Solution
SELECT nom FROM PERSONNE order by nom asc;
SELECT nom FROM PERSONNE order by nom desc;
  1. Récupérez le nombre de FONCTION différente
Solution
SELECT DISTINCT COUNT(*) AS compteurFonction FROM FONCTION;
  1. Récupérez le nombre de PERSONNE dans chaque SQUAD
Solution
SELECT SQUAD, COUNT(*) as compteurPersonne FROM PERSONNE GROUP BY SQUAD;

Étape 3 : Ajouter de nouvelles données

  1. Ajoutez une nouvelle TRIBU ayant comme nom "Sinistres"
Solution
INSERT INTO TRIBU (idTribu, nom, description) 
VALUES (2, "Sinistres", "La tribu sinistres gère les applications et les services en lien avec les sinistres.");
  1. Ajoutez une nouvelle SQUAD à la TRIBU "Sinistres"
Solution
INSERT INTO SQUAD (idSquad, nom, description, tribu) 
VALUES (3, "Déclaration", "La squad déclaration gère toutes les application permettant aux gestionnaires de déclarer les sinistres.", 2);
  1. Ajoutez vous en tant que nouvelle PERSONNE dans la SQUAD "Déclaration"
Solution
INSERT INTO PERSONNE (idPersonne, nom, prenom, squad, fonction) 
VALUES (11, "Heintz", "Kelly", 3, 5);

Étape 4 : Lire des informations complexes

  1. Récupérez le nom, prénom et le nom de SQUAD de chaque PERSONNE
Solution
SELECT p.nom, p.prenom, s.nom
FROM PERSONNE p
JOIN SQUAD s
ON p.squad = s.idSquad;
  1. Récupérez les mêmes informations que l'exercice précédent, uniquement pour votre PERSONNE en y rajoutant le nom de la TRIBU
Solution
SELECT p.nom as nomPersonne, p.prenom, s.nom as nomSquad, t.nom as nomTribu
FROM PERSONNE p
JOIN SQUAD s
ON p.squad = s.idSquad
JOIN TRIBU t
ON s.tribu = t.idTribu
WHERE p.nom = 'Heintz'
AND p.prenom = 'Kelly';

Résumé

À la fin de l'atelier, chaque participante aura :

  1. Lu et compris du SQL simple
  2. Ajouté de nouvelles données en SQL
  3. Découvert du SQL plus complexe