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
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
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)
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 (˜˜)
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
Regroupement et condition (group by, having)
Le cumul de résultats (union)
Le recoupement de résultats (intersect, minus)
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
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