Jour 1
CONCEPTS ET FONCTIONNEMENT DES SGBDR
- Différences entre données structurées et non structurés
- Besoin d'un formalisme conceptuel pour représenter les données (Modèle Conceptuel des Données, MCD)
- Liens entre algèbre relationnelle, MCD, SGBDR
- Passage au format logique des données dans une base relationnelle (table, colonne, ligne)
- Liens entre les données et contraintes d’intégrité (clefs primaire et étrangères)
- Problématiques liées à l’implémentation physique des données
- Les solutions proposées par les SGBDR
- Un petit mot sur les bases NoSQL par rapport à un SGBDR
- Aperçu des possibilités du langage SQL (select, insert, update, delete)
- Standardisation du SQL par l’ANSI
- Les dialectes
- Utilisateurs et droits (GRANT, REVOKE)
- Notions de transactions (ACID)
- Accès concurrents et verrous (commit, rollback)
- L’objet de base dans un SGBDR : la table
- Pourquoi doit-on typer les données d’une table (varchar, number, date…) ?
- Notion de schéma par utilisateur
Ateliers
Objectifs : Comprendre les fonctions de base d’un SGBDR
Contenu : Conception guidée d’une petite base de données afin de prendre en main la structure relationnelle entre les données, les contraintes d’intégrité (clef primaire, clef secondaire) qui en découlent et faire nos premiers pas en SQL.
L'ENVIRONNEMENT DE TRAVAIL POUR LE SQL
Les IDE (Environnement de Développement Intégré) du marché
- Les grands éditeurs du marché (Oracle, DB2, SQL Server, PostgreSQL, MySQL, etc.)
- Fonctionnalités des IDE pour un développeur SQL
- Oracle et SQL Developer
- SQL Server et DBA Management Studio
- MySQL et SQL Workbench ou phpMyAdmin
- PostgreSQL et DBeaver
- Autres outils (DbVisualizer, Devart…)
- Paramétrer sa session de travail (formats d’affichage)
Import/Export de données
- Savoir exporter les données de sa base dans un fichier texte
- Savoir importer les données d'un fichier texte, CSV, XML dans la base
- Découvrir comment présenter les résultats des requêtes SQL dans un fichier Excel
Ateliers
Objectif : Prendre en main son environnement
Contenu : Prise en main de l’IDE choisi par le participant (par défaut nous utilisons SQL Developer) afin de se connecter à une base de données, parcourir les éléments fondamentaux des menus et exécuter nos premières requêtes SQL en mode interactif et via des scripts SQL. Exécution du script SQL conçu dans l’atelier précédent permettant de générer la base que nous allons utiliser durant la formation.
SAVOIR ÉCRIRE DES REQUÊTES SQL
Les requêtes SQL de base
- Bien comprendre le schéma relationnel sous-jacent
- Vue générale d’une requête SQL (select, from, where)
- Exemple de requête d’extraction simple sur une seule table
- Les clauses de filtrage (where)
- Trier les résultats (ORDER BY)
- Conditions et opérateurs de comparaison
- Les mots clefs IN, BETWENN, LIKE, IS NULL
Récupérer les données de plusieurs tables
- Comprendre le produit cartésien pour comprendre la jointure
- Récupération de données à partir de plusieurs tables :
- Les jointures internes (INNER JOIN)
- Les corrélations
- Les jointures Himself
- Présentation des jointures externes (OUTER JOIN)
Synthèse
- Comment appréhender l’écriture d’une requête SQL ?
- Par quoi commencer (select ? from ? where ?)
- Modélisation des jointures pour clarifier une requête (arbre)
Ateliers
Objectif : Ecrire des requêtes SQL
Contenu : Exécution de requêtes SQL de difficultés croissantes reprenant les éléments de ce chapitre (filtrage, tri, jointure, etc.).
Jour 2
MANIPULATION DES DONNÉES DE LA BASE
La genèse des données
- Création de tables en SQL
- Les types de données
- Modification du schéma d’une table (alter table)
- La suppression d'une table (drop table)
- Manipulations de séquences
La mise à jour des données
- L'insertion de données (insert)
- La mise à jour (update)
- La suppression d'informations (delete)
- Ne pas confondre NULL, 0, et chaîne vide (˜˜)
Ateliers
Objectifs : Comprendre le cycle de vie des données dans une base SQL et savoir les mettre à jour
Contenu : Création de tables, remplissage et mises à jour selon différentes techniques (insert, update, delete, insert associé à un select, etc.) selon une complexité croissante. Script SQL de synthèse permettant de générer une base de données (tables, données, contraintes)
LES FONCTIONS EN SQL
Les classiques
- Présentation des grandes familles de fonctions SQL
- Où peut-on utiliser les fonctions SQL dans une requête ?
- Moyenne des valeurs (avg)
- Nombre d'enregistrements retournés (count)
- Minimum et maximum (min, max)
- Somme des valeurs (sum)
Les fonctions sur les chaînes de caractères
- La longueur d'une chaîne (length)
- Les minuscules et majuscules (lower, upper)
- L'opérateur LIKE et le symbole %
- Extraction d'une partie de la chaîne (substr)
- Gérer les valeurs null (Coalesce, IsNull)
Les fonctions temporelles
- Savoir manipuler une date (current_date)
- Les variantes (premier jour du mois, dernier jour, etc.)
- L’heure courante (current_time)
- Retourner la date et l’heure (current_timestamp)
Les conversions date/nombre/chaîne
- Bien comprendre les formats visibles (AAA-MM-JJ HH :MM :SS, etc.)
- Les pièges classiques avec les dates
- Conversion d'une date en caractères
- Conversion d'une chaîne de caractères en date
Portabilité des fonctions SQL d’un SGBD à un autre
- Exemples de fonctions spécifiques à SQL Server, MySQL, Oracle, etc.
- Les sites des références pour s’assurer de la portabilité de nos requêtes SQL
Ateliers
Objectifs : Savoir utiliser les fonctions SQL standards et rechercher de façon autonome dans les bibliothèques
Contenu : Recherche de texte dans la base, manipulations autour des dates et du temps, opérations arithmétiques, statistiques de ventes d’articles par secteur sur certaines périodes selon des critères fins.
Jour 3
REQUÊTES ENSEMBLISTES EN SQL
- Regroupement et condition (group by, having)
- Le cumul de résultats (union)
- Le recoupement de résultats (intersect, minus)
Ateliers
Objectif : Mettre en œuvre les requêtes ensemblistes
Contenu : Utilisation des requêtes ensemblistes dans une approche progressive.
Exemple : moyenne des ventes par département à partir d’un nombre significatif de ventes minimum.
REQUÊTES COMPLEXES EN SQL
- Bien comprendre les sous-interrogations dans le where
- Bien comprendre les sous-requêtes synchronisées (where exists)
- Variantes sur la jointure (auto jointure, jointure complexe)
- Retour sur l’arbre de requêtes SQL pour les requêtes complexes
- Principes des vues (view)
- Quand utiliser les vues ?
- Notion de performances des requêtes
- Principes d’un index
Ateliers
Objectifs : Disposer d’une méthode pour écrire des requêtes plus complexes qu’une « simple » jointure
Contenu : Jointure sur 3 tables et plus, modélisation de la requête sous forme d’arbre. Création et utilisation de vues dans les requêtes
LE SQL DANS LES APPLICATIONS ET LES OUTILS
- Utilisation du SQL dans les applications ou sites Web
- Limites du SQL « seul » et apports des procédures stockées
- Liens entre Business Intelligence (BI) et SQL
- SQL et les outils d’aide à la décision (Power BI, Tableau, Webi)
- Création et stockage de requêtes SQL dans les ETL (Extract-Transform-Load)
- Import/Export de données au format SQL
Ateliers
Objectifs : Comprendre qu’au-delà des résultats bruts visibles de façon interactive les requêtes SQL sont encapsulées dans diverses sources applicatives
Contenu : Exemple d’intégration de requête SQL dans le code d’un site ou d’une application WEB. Exemple de requête SQL dans un ETL pour extraire les données d’une base à des fins de chargement dans une autre. Exemple de requêtes SQL utilisées dans une présentation graphique d’aide à la décision avec Power BI. Export des données d’une base (format SQL) et import dans une autre bas