Formation MySQL Développeur

La formation MySQL Développeur a pour objectif de vous permettre de maîtriser la création de requêtes SQL optimisées pour la base de données Open Source MySQL.
Nous commencerons par évoquer les bonnes pratiques de création et de modélisation d'une base MySQL avant de voir les différents types de données. Viendra ensuite l'étude d'une des caractéristiques intéressantes de MySQL : les moteurs de stockage.
Fort de ces bases nous attaquerons les requêtes SQL en commençant par la base et en allant sur des sujets plus pointus tels que les jointures, les sous requêtes, les vues et les transactions. Enfin nous aborderons la programmation coté serveur et l'optimisation.

Objectifs de cette formation

  • Utiliser les fonctionnalités avancées de MySQL pour l'écriture de requêtes
  • Savoir gérer les accès concurrents aux données avec les différents moteurs
  • Maîtriser les possibilités de développement avec MySQL : procédures stockées et déclencheurs

Public visé

  • Développeurs d'applications utilisant des bases de données MySQL

Pré-requis

  • Comprendre les principes des bases de données relationnelles

Programme détaillé

Introduction et les différents projets

  • MySQL : historique, double licence gratuite/payante
  • MariaDB : alternative OpenSource
  • Percona : Percona Toolkit

Création des bases

  • Créer et supprimer une base (CREATE DATABASE et DROP DATABASE)
  • Gérer l'internationalisation (jeux de caractères et interclassement)
  • Modélisation : la normalisation (NF1 à NF6)
  • Modélisation : la dénormalisation, quand, pourquoi et comment

Les types de données

  • Types numériques (INTEGER, FLOAT, DECIMAL) et leurs limitations et cas d'utilisation
  • Types caractères (CHAR, VARCHAR, TEXT) et leurs propriétés
  • Types date (DATE, DATETIME,TIMESTAMP) et leurs propriétés

Les moteurs de stockage

  • L'architecture d'un serveur MySQL : découplage moteur SQL / stockage
  • L'architecture d'un serveur MySQL : implications en terme de fonctionnalités
  • Moteur MyISAM : moteur historique, fonctionnalités restreintes
  • Moteur InnoDB : moteur transactionnel, fonctionnalités attendues d'un SGBD
  • Autres moteurs : Memory, Archive...

Requêtes simples

  • La structure d'une requête SELECT ? FROM ? WHERE ? (SFW)
  • Les autres clauses : GROUP BY, HAVING, ORDER BY, LIMIT
  • Les fonctions d'agrégation
  • Les commandes INSERT, UPDATE et DELETE et les extensions spécifiques à MySQL

Jointures et sous-requêtes

  • Jointures internes / externes
  • Sous-requêtes

Vues

  • Cas d'utilisation
  • Simplifier les requêtes en utilisant des vues
  • Création d'une vue
  • Vues de mise à jour et d'insertion
  • Limitations des vues

Programmation côté serveur

  • Procédures stockées
  • Déclencheurs
  • Evénements

Transactions

  • Norme ACID
  • Niveaux d'isolation
  • Verrouillage

Importation et exportation

  • LOAD DATA INFILE
  • SELECT ... INTO OUTFILE ...
  • clients mysqldump et mysqlimport

Optimisation

  • Bonnes pratiques d'écriture des requêtes
  • Règles et stratégie d'indexation
  • Fonctionnement de l'optimiseur
  • La commande EXPLAIN
  • Identification des requêtes lentes