[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
79 vues51 pages

Formation SQL et Analyse de Données

Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
79 vues51 pages

Formation SQL et Analyse de Données

Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 51

Analyse de données

via SQL

Transformez les données


en informations
Alban OUEDRAOGO
Zindi Country Ambassador – Burkina Faso
Alban OUEDRAOGO
❖ Ingénieur en science de données

❖ Jeune Expert-Formateur en Informatique et

Intelligence artificielle du CNJ-BF

❖ Responsable du service support informatique

chez Coris Bank International Burkina

❖ Ambassadeur Zindi pour le Burkina Faso

❖ Formateur Analyse de données

❖ Développeur intelligence artificielle

wende.ouedraogo@gmail.com *** (226) 62149373 *** https://www.linkedin.com/in/alban-wende-ouedraogo/


Plan
Définition
Types d’analyse
Analyse descriptive
Analyse de données avec SQL
J1: Bases
J2: Intermédiaire
J3: Avancé
Généralités:
Analyse de
données
Analyse de données
Définition:
L'analyse des données est une technique
utilisée pour traiter les données, trouver des
modèles et des tendances cachées et
interpréter les données.
Types d’analyse
• Analyse descriptive
• Analyse diagnostique
• Analyse prédictive
• Analyse prescriptive
Types d’analyse: Analyse descriptive
Que s’est-il passé ?

Agrégation
Comparaison
Classement
Types d’analyse: Analyse diagnostique
Pourquoi cela s’est-il passé ?

Hypothèses
Corrélation
Causalité
Types d’analyse: Analyse prédictive
Que va-t-il se passer ?

Extrapolation des tendances


Modélisation
Algorithmes: Machine Learning
Types d’analyse: Analyse prescriptive
Que faire pour que cela se passe ?

Evaluation et Comparaison
L’Oracle, Matrix

des scénarios
Proposition d’actions
implémentables
SQL
Les bases
INTRODUCTION

SQL
Le SQL est un langage standard pour accéder aux bases de données et les
manipuler.

Qu’est-ce que le SQL?


SQL signifie Structured Query Language
SQL permet :
Exécuter les requêtes sur une base de données
Extraire - Insérer – Modifier – Supprimer des données
Créer des bases de données – tables – procédures stockées – fonctions –
vues
Gérer les droits des utilisateurs – leur allouer des ressources

1
INTRODUCTION

RDBMS
RDBMS signifie Relational Database Management System (SGBDR en
français)
Le SGBDR est la base du SQL et pour tous les SGBD tels que MS SQL
Server, IBM DB2, Oracle, MySQL et MS Access, etc.

Les données dans un SGBDR est stockée dans des objets de base de
données appelés tables.

Une table est une collection de données disposées en lignes et colonnes.

1
Les bases du SQL

Table

Une base de données contient une ou plusieurs tables. Chaque table est identifiée par un nom (ex: Clients ou
Commandes). Les tables contiennent des enregistrements avec des données.
P_Id Nom Prénom Adresse Ville

1 SANKARA Thomas Daghnoen Ouagadougou

2 DAMIBA Paul Lomé 2000 Lomé

3 SANOU Didier Nasso Bobo Dioulasso

La table ci-dessus contient 3 enregistrements (1 pour chaque personne) et 5 colonnes (P_Id, Nom,
Prénom, Adresse, and Ville)

1
Les bases du SQL

Requêtes SQL

Nota Bene
- sensible à la casse ? Non
SELECT * FROM Persons 🡸 🡸 select * from persons

- (;) nécessaire ? Selon les SGBD

SQL DML & DDL


SQL peut-être divisé en 2 parties : Le Data Manipulation Language (DML) et le Data Definition Language (DDL).
DML : SELECT – UPDATE – DELETE – INSERT INTO
DLL: CREATE – ALTER – DROP

1
Les bases du SQL

SELECT

SELECT colonnes(s) FROM table(s) Ou SELECT * FROM table

Sélectionner toutes les colonnes: SELECT * FROM Personnes

Si nous voulons sélectionner les colonnes “Nom” et “Prénom” dans la table Personne, la requête serait:

SELECT Nom, Prénom FROM personnes

P_Id Nom Prénom Adresse Ville Nom Prénom

1 SANKARA Thomas Daghnoen Ouagadougou SANKARA Thomas

2 DAMIBA Raoul Lomé 2000 Lomé 🡺 DAMIBA Raoul

3 NEBIE Didier Nasso Bobo Dioulasso NEBIE Didier

1
Les bases du SQL

SELECT (opération)

Nous pouvons réaliser des operations à travers l’instruction de sélection

SELECT operation FROM table

Ex: SELECT 2*1010+4, annee_naissance, 2024-annee_naissance, taille_cm/100 FROM Personnes

2*1010+4 annee_naissance 2024-annee_naissance taille_cm/100


2024 1990 34 1,83

2024 2005 19 1,72


2024 1960 64 1,79

1
Les bases du SQL

ALIAS

SELECT colonnes(s) AS alias_col FROM table(s) AS alias_tab

Ex: SELECT 2*1010+4 as annee, annee_naissance, 2024-annee_naissance AS age, taille_cm/100 AS


taille_metres FROM Personnes

annee annee_naissance age taille_metres


2024 1990 34 1,83

2024 2005 19 1,72


🡺
2024 1960 64 1,79

1
Intermédiaire

CASE WHEN

La commande “CASE … WHEN …” permet d’utiliser des conditions de type “si / sinon” similaire à un
langage de programmation pour retourner un résultat disponible entre plusieurs possibilités.
SELECT CASE
WHEN condition1 THEN resultat1
WHEN condition2 THEN resultat2
WHEN conditionN THEN resultatN
ELSE resultat_defaut
END
FROM table

1
Intermédiaire

CASE WHEN

Ex: Rélevé de compte bancaire

SELECT date_comptable, libelle,


(CASE WHEN sens='D' THEN montant ELSE null END) debit,
(CASE WHEN sens='C' THEN montant ELSE null END) credit,
solde
FROM transactions
Date_comptable Libelle Débit Crédit Solde

25/01/2024 Salaire Janvier 5 000 000 25 000 000

01/02/2024 Loyer 150 000 24 850 000

02/02/2024 Epargne 500 000 24 350 000

1
Les bases du SQL

WHERE
Operateur Description
SELECT colonnes(s) FROM table WHERE colonne OPERATEUR valeur = égale

Sélectionner les personnes s’appellant SANKARA et vivant à Ouagadougou : <> différent de

> plus grand que


SELECT * FROM Personnes
WHERE ville=‘Ouagadougou’ AND nom=‘SANKARA’ < plus petit que

P_Id Nom Prénom Adresse Ville >= plus grand ou égale

1 SANKARA Thomas Daghnoen Ouagadougou <= plus petit ou égale

BETWEEN entre un intervalle de


Les opérateurs AND & OR : plusieurs conditions valeurs

AND: la 1ère et la 2nde condition sont vraies LIKE correspond à un motif

OR: la 1ère ou la 2nde condition est vraie IN parmi une liste de valeurs

NOT négation

1
Les bases du SQL

ORDER BY
Sert à trier les résultats selon une ou plusieurs colonnes
SELECT colonnes(s) FROM table ORDER BY colonne ASC|DESC

Trier les personnes selon la ville:


SELECT * FROM Personnes ORDER BY ville ASC;
P_Id Nom Prénom Adresse Ville

3 NEBIE Didier Nasso Bobo Dioulasso

2 DAMIBA Raoul Lomé 2000 Lomé


Les opérateurs AND & OR : plusieurs conditions
1
AND: la 1ère et laSANKARA Thomas
2nde condition sont vraies Daghnoen Ouagadougou

1
Les bases du SQL

LIMIT
Sert à spécifier le nombre d’enregistrements à retourner
SELECT colonnes(s) FROM table LIMIT nombre

Sélectionner les 2 personnes :


SELECT * FROM Personnes LIMIT 2;
P_Id Nom Prénom Adresse Ville

1 SANKARA Thomas Daghnoen Ouagadougou

2 DAMIBA Raoul Lomé 2000 Lomé


Les opérateurs AND & OR : plusieurs conditions

1
Pause Questions

1
Pause Questions

1
Workshop

Les bases du SQL (cliquer voir BD workshop)

1. Sélectionner tous les produits


2. Sélectionner les villes de tous les clients
3. Sélectionner tous les clients habitant la ville ‘sao paulo’
4. Sélectionner les statuts distincts des commandes
5. Sélectionner toutes les commandes qui ont été livrées
6. Sélectionner toutes les commandes qui ont été livrées dans les délais (date de
livraison chez le client antérieure à la date de livraison prévue
7. Calculer le volume physique de chaque produit, renommer le calcul en "volume"
8. Classer les produits par ordre de poids décroissant
9. Limiter le résultat de la précédente requête à 5 enregistrements

1
SQL
Intermédiaire
Intermédiaire

Les jointures
Sert à combiner les données de 2 ou plusieurs tables basées sur une relation entre certaines colonnes dans ces tables

SELECT colonnes(s)
FROM table1 JOINTURE table2
ON table1.colonne=table2.colonne

1
Intermédiaire

Les jointures

1
Intermédiaire

1
Intermédiaire

Les fonctions d’aggrégation


Les fonctions d’aggrégation servent à retourner une valeur calculée à partir d’une colonne

Fonction Résultats

AVG() la valeur moyenne


COUNT() le nombre d’enregistrements
FIRST() la première valeur
LAST() la dernière valeur
MAX() la valeur maximale
MIN() la valeur minimale
SUM() the somme

1
Intermédiaire

L’instruction GROUP BY

Les fonctions d’aggrégations nécessitent souvent l’instruction GROUP BY

Elle est utilisée en conjonction avec les fonctions d’aggrégation afin de grouper les résultats suivant une ou plusieurs
colonnes

SELECT colonne, fonction_aggregation(colonne)


FROM table
GROUP BY colonne
Ex: Sélectionner le nombre d’habitants par ville

SELECT ville, count(id) AS nombre


FROM population
GROUP BY ville

1
Intermédiaire

L’instruction HAVING

HAVING permet de filtrer un résultat obtenu par l’instruction GROUP BY selon une condition

SELECT colonne, fonction_aggregation(colonne)


FROM table
GROUP BY colonne
HAVING condition

Ex: Sélectionner les villes ayant au moins 1 million de citoyens adultes

SELECT ville, count(id) AS nombre


FROM population
WHERE age>=18
GROUP BY ville
HAVING count(id)>=1 000 000

1
Intermédiaire

L’exécution d’une requête SQL

1
Pause Questions

1
Pause Questions

1
Workshop

Intermédiaire (cliquer voir BD workshop)

1. Calculer le poids moyen et la hauteur moyenne par catégorie de produits


(utiliser GROUP BY)
2. Quel est la catégorie de produit ayant le plus gros volume ?
3. Pour chaque commande, afficher en plus le mode de paiement
(payment_type) (jointure)
4. Quel est l’article le plus vendu ?
5. Quelle est la commande comportant le plus d’articles ?
6. Quelles sont les commandes ayant le plus d’articles ?
7. Calculer le chiffre d’affaires par vendeur (4 tables à joindre)
8. Quartier libre

1
SQL
Avancé
Avancé

Les sous-requêtes

Les sous-requêtes permettent d’utiliser le résultat d’une requête dans une requête plus grande

SELECT colonne, fonction_aggregation(colonne)


FROM (sous-requête)
WHERE colonne operateur sous-requête

Ex: Sélectionner les villes ayant au moins 1 million de citoyens adultes

SELECT ville, nombre


FROM (SELECT ville, count(id) AS nombre FROM population WHERE age >= 18 GROUP BY ville)
WHERE nombre>=1 000 000

1
Avancé

Les Common Table Expression (CTE)

Les CTE permettent d’avoir le même résultat que les sous-requêtes mais ajoutent de la lisibilité

WITH table_cte AS (requete_sql),


SELECT colonne
FROM table_cte

Ex: Sélectionner les villes ayant au moins 1 million de citoyens adultes

CTE Simple CTE Imbriquées


WITH villes_adultes AS ( WITH adultes AS (
SELECT ville, count(id) AS nombre SELECT *
FROM population FROM population
WHERE age >= 18 GROUP BY ville), WHERE age >= 18),
SELECT ville, nombre villes AS (
FROM villes_adultes SELECT ville, count(id) AS nombre
WHERE nombre>1 000 000 FROM adultes
GROUP BY ville),
SELECT ville, nombre
FROM villes
WHERE nombre>1 000 000 1
Avancé

Les Window Functions

Les Window Functions sont similaires à l'agrégation effectuée dans la clause GROUP BY. Cependant, les lignes ne
sont pas regroupées en une seule ligne, chaque ligne conserve son identité distincte. Autrement dit, une fonction
de fenêtre peut renvoyer une valeur unique pour chaque ligne.

1
Avancé

La syntaxe des Window Functions

Comment utilise-t-on les fonctions de fenêtrage ? La clause OVER() définit la fenêtre sur laquelle la fonction doit s'appliquer. Les
arguments optionnels suivants sont acceptés :
• PARTITION BY pour définir la méthode de partitionnement. Si cette clause n'est pas mentionnée, la table entière est
considérée comme unique partition.
• ORDER BY pour définir l'ordre à l'intérieur d'une partition. Si cette clause n'est pas mentionnée, aucun tri n'est effectué dans
la fenêtre.

Les fonctions fenêtrées peuvent être de plusieurs natures. Voici ci-dessous quelques exemples de fonctions pour chaque type.
Cette liste n'est pas exhaustive et peut varier d'un SGBD à l'autre. Vous devrez donc vous référencer à la documentation de votre
SGBD.

• Fonctions d'agrégation (SUM, MAX, COUNT, etc.)


• Fonctions de rang (RANK, DENSE_RANK, ROW_NUMBER, CUME_DIST, etc.)
• Fonctions de valeur (FIRST_VALUE, LAG, LEAD, etc.)

1
Pause Questions

1
Pause Questions

1
Plus loin
Plus loin

La fonction PIVOT

Les fonctions scalaires

Les fonctions de manipulation des dates et heures

Les index

Créer ses fonctions et procedures stockées

Table dual

1
Workshop
Workshop

Dataset
Brazilian E-Commerce Public Dataset by Olist on Kaggle:
https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce

SGBDR: mySQL

Lien de connexion: https://auth-


db977.hstgr.io/index.php?route=/sql&db=u145442528_zindi_sql
Identifiant: u145442528_zindi_sql
Mot de passe: b+7-BF5FV6wF_u*
NB: les accès seront révoqués à partir du 3 Mars 2024

1
Workshop

Schéma

1
Bibliographie

▪ SQL BASICS AND ADVANCED by ATUL KUMAR

▪ https://towardsdatascience.com/take-your-sql-from-good-to-great-
part-3-687d797d1ede
▪ https://www.edureka.co/blog/sql-functions
▪ https://learnsql.com/blog/what-is-common-table-expression/
▪ https://www.freecodecamp.org/news/window-functions-in-sql/

1
Plus de questions ?

wende.ouedraogo@gmail.com

@alban-wende-ouedraogo

+226 62149373 / 77177421

Vous aimerez peut-être aussi