Administrez vos bases de données avec MySQL

Ce tutoriel a été initialement rédigé sur le Site du Zéro par Taguan sous licence CC BY-NC-SA.

Vous avez de nombreuses données à traiter et vous voulez les organiser correctement, avec un outil adapté ?
Les bases de données ont été créées pour vous !

Ce tutoriel porte sur MySQL, qui est un Système de Gestion de Bases de Données Relationnelles (abrégé SGBDR). C'est-à-dire un logiciel qui permet de gérer des bases de données, et donc de gérer de grosses quantités d'informations. Il utilise pour cela le langage SQL.

Il s'agit d'un des SGBDR les plus connus et les plus utilisés (Wikipédia et Adobe utilisent par exemple MySQL). Et c'est certainement le SGBDR le plus utilisé à ce jour pour réaliser des sites web dynamiques.

MySQL peut donc s'utiliser seul, mais est la plupart du temps combiné à un autre langage de programmation : PHP par exemple pour de nombreux sites web, mais aussi Java, Python, C++, et beaucoup, beaucoup d'autres.

MySQL avec l'interface PHPMyAdminMySQL avec une console windows
Différentes façons d'utiliser MySQL

Quelques exemples d'applications

Vous gérez une boîte de location de matériel audiovisuel, et afin de toujours savoir où vous en êtes dans votre stock, vous voudriez un système informatique vous permettant de gérer les entrées et sorties de matériel, mais aussi éventuellement les données de vos clients. MySQL est une des solutions possibles pour gérer tout ça.

Vous voulez créer un site web dynamique en HTML/CSS/PHP avec un espace membre, un forum, un système de news ou même un simple livre d'or. Une base de données vous sera presque indispensable.

Vous créez un super logiciel en Java qui va vous permettre de gérer vos dépenses afin de ne plus jamais être à découvert, ou devoir vous affamer pendant trois semaines pour pouvoir payer le cadeau d'anniversaire du petit frère. Vous pouvez utiliser une base de données pour stocker les dépenses déjà effectuées, les dépenses à venir, les rentrées régulières, …

Votre tantine éleveuse d'animaux voudrait un logiciel simple pour gérer ses bestioles, vous savez programmer en python et lui proposez vos services dans l'espoir d'avoir un top cadeau à Noël. Une base de données vous aidera à retenir que Poupouche le Caniche est né le 13 décembre 2007, que Sami le Persan a des poils blancs et que Igor la tortue est le dernier représentant d'une race super rare !

Points abordés dans ce tutoriel

La conception et l'utilisation de bases de données est un vaste sujet, il a fallu faire des choix sur les thèmes à aborder. Voici les compétences que ce tutoriel vise à vous faire acquérir :

  • Création d'une base de données et des tables nécessaires à la gestion des données
  • Gestion des relations entre les différentes tables d'une base
  • Sélection des données selon de nombreux critères
  • Manipulation des données (modification, suppression, calculs divers)
  • Utilisation des triggers et des procédures stockées pour automatiser certaines actions
  • Utilisation des vues et des tables temporaires
  • Gestion des utilisateurs de la base de données
  • Et plus encore…

MySQL et les bases du langage SQL

  1. Introduction

    1. Concepts de base

    2. Présentation succincte de MySQL...

    3. ... et de ses concurrents

    4. Organisation d'une base de données

  2. Installation de MySQL

    1. Avant-propos

    2. Installation du logiciel

    3. Connexion à MySQL

    4. Syntaxe SQL et premières commandes

    5. Encodage, jeux de caractères et interclassement

  3. Les types de données

    1. Avertissement

    2. Types numériques

    3. Types alphanumériques

    4. Types temporels

  4. Création d'une base de données

    1. Avant-propos : conseils et conventions

    2. Création et suppression d'une base de données

  5. Création de tables

    1. Définition des colonnes

    2. Introduction aux clés primaires

    3. Les moteurs de tables

    4. Syntaxe de CREATE TABLE

    5. Suppression d'une table

  6. Modification d'une table

    1. Syntaxe de la requête

    2. Ajout et suppression d'une colonne

    3. Modification de colonne

  7. Insertion de données

    1. Syntaxe de INSERT

    2. Syntaxe alternative de MySQL

    3. Utilisation de fichiers externes

    4. Remplissage de la base

  8. Sélection de données

    1. Syntaxe de SELECT

    2. La clause WHERE

    3. Tri des données

    4. Éliminer les doublons

    5. Restreindre les résultats

  9. Élargir les possibilités de la clause WHERE

    1. Recherche approximative

    2. Recherche dans un intervalle

    3. Set de critères

  10. Suppression et modification de données

    1. Sauvegarde d'une base de données

    2. Suppression

    3. Modification

Index, jointures et sous-requêtes

  1. Index

    1. Qu'est-ce qu'un index ?

    2. Les différents types d'index

    3. Création et suppression des index

    4. Recherches avec FULLTEXT

  2. Clés primaires et étrangères

    1. Clés primaires, le retour

    2. Clés étrangères

    3. Modification de notre base

  3. Jointures

    1. Principe des jointures et notion d'alias

    2. Jointure interne

    3. Jointure externe

    4. Syntaxes alternatives

    5. Exemples d'application et exercices

  4. Sous-requêtes

    1. Sous-requêtes dans le FROM

    2. Sous-requêtes dans les conditions

    3. Sous-requêtes corrélées

  5. Jointures et sous-requêtes : modification de données

    1. Insertion

    2. Modification

    3. Suppression

  6. Union de plusieurs requêtes

    1. Syntaxe

    2. UNION ALL

    3. LIMIT et ORDER BY

  7. Options des clés étrangères

    1. Option sur suppression des clés étrangères

    2. Option sur modification des clés étrangères

    3. Utilisation de ces options dans notre base

  8. Violation de contrainte d'unicité

    1. Ignorer les erreurs

    2. Remplacer l'ancienne ligne

    3. Modifier l'ancienne ligne

Fonctions : nombres, chaînes et agrégats

  1. Rappels et introduction

    1. Rappels et manipulation simple de nombres

    2. Définition d'une fonction

    3. Quelques fonctions générales

  2. Fonctions scalaires

    1. Manipulation de nombres

    2. Manipulation de chaînes de caractères

    3. Exemples d'application et exercices

  3. Fonctions d'agrégation

    1. Fonctions statistiques

    2. Concaténation

  4. Regroupement

    1. Regroupement sur un critère

    2. Regroupement sur plusieurs critères

    3. Super-agrégats

    4. Conditions sur les fonctions d'agrégation

  5. Exercices sur les agrégats

    1. Du simple…

    2. …Vers le complexe

Fonctions : manipuler les dates

  1. Obtenir la date/l'heure actuelle

    1. Rappels

    2. Date actuelle

    3. Heure actuelle

    4. Date et heure actuelles

  2. Formater une donnée temporelle

    1. Extraire une information précise

    2. Formater une date facilement

    3. Créer une date à partir d'une chaîne de caractères

  3. Calculs sur les données temporelles

    1. Différence entre deux dates/heures

    2. Ajout et retrait d'un intervalle de temps

    3. Divers

  4. Exercices

    1. Commençons par le format

    2. Passons aux calculs

    3. Et pour finir, mélangeons le tout

Sécuriser et automatiser ses actions

  1. Transactions

    1. Principe

    2. Syntaxe et utilisation

    3. Validation implicite et commandes non-annulables

    4. ACID

  2. Verrous

    1. Principe

    2. Syntaxe et utilisation : verrous de table

    3. Syntaxe et utilisation : verrous de ligne

    4. Niveaux d'isolation

  3. Requêtes préparées

    1. Variables utilisateur

    2. Principe et syntaxe des requêtes préparées

    3. Usage et utilité

  4. Procédures stockées

    1. Création et utilisation d'une procédure

    2. Les paramètres d'une procédure stockée

    3. Suppression d'une procédure

    4. Avantages, inconvénients et usage des procédures stockées

  5. Structurer ses instructions

    1. Blocs d'instructions et variables locales

    2. Structures conditionnelles

    3. Boucles

  6. Gestionnaires d'erreurs, curseurs et utilisation avancée

    1. Gestion des erreurs

    2. Curseurs

    3. Utilisation avancée des blocs d'instructions

  7. Triggers

    1. Principe et usage

    2. Création des triggers

    3. Suppression des triggers

    4. Exemples

    5. Restrictions

Au-delà des tables classiques : vues, tables temporaires et vues matérialisées

  1. Vues

    1. Création d'une vue

    2. Sélection des données d'une vue

    3. Modification et suppression d'une vue

    4. Utilité des vues

    5. Algorithmes

    6. Modification des données d'une vue

  2. Tables temporaires

    1. Principe, règles et comportement

    2. Méthodes alternatives de création des tables

    3. Utilité des tables temporaires

  3. Vues matérialisées

    1. Principe

    2. Mise à jour des vues matérialisées

    3. Gain de performance

Gestion des utilisateurs et configuration du serveur

  1. Gestion des utilisateurs

    1. Introduction

    2. Création, modification et suppression des utilisateurs

    3. Les privilèges - introduction

    4. Ajout et révocation de privilèges

    5. Privilèges particuliers

    6. Options supplémentaires

  2. Informations sur la base de données et les requêtes

    1. Commandes de description

    2. La base de données information_schema

    3. Déroulement d'une requête de sélection

  3. Configuration et options

    1. Variables système

    2. Modification des variables système avec SET

    3. Options au démarrage du client mysql

    4. Options au démarrage du serveur mysqld

    5. Fichiers de configuration



Ce cours est maintenant terminé. J'espère que vous y aurez trouvé les informations dont vous aviez besoin.

Quoiqu'il en soit, la fin de ce cours ne doit surtout pas sonner la fin de votre apprentissage de MySQL, ou de la gestion de bases de données en général.

Aller plus loin

  • Certaines parties de ce cours sont volontairement superficielles. En particulier tout ce qui concerne la configuration du serveur et des logiciels clients. Le but était d'être le moins théorique possible, tout en vous donnant un aperçu relativement complet des énormes possibilités de MySQL. Il existe de nombreuses ressources sur internet, ainsi que de nombreux ouvrages d'un niveau plus avancé qui pourront vous en apprendre plus.
  • J'ai essayé de vous donner un maximum de pistes et de bonnes pratiques pour concevoir intelligemment vos bases de données, mais la conception d'une base de données est un vaste sujet. Si celui-ci vous intéresse, penchez-vous par exemple sur la théorie relationnelle, les formes normales, les modèles de donnés tels le modèle Entité-Relation, la méthode Merise,…
  • Même constat au niveau de l'optimisation des requêtes. Des ouvrages entiers ont été consacrés aux techniques d'optimisation utilisables avec MySQL.
  • Et tant et tant d'autres choses vous restent à découvrir.

6 commentaires

Pour ce genre de question, les forums sont là pour ça. Ceci est la section commentaire pour critiquer (positivement ou négativement), faire des suggestions ou ajouter des informations au tutoriel.

D’ailleurs, il me parait important de signaler que depuis l’écriture du tutoriel, MySQL a été racheté par Oracle et que le créateur a forké le projet pour le nommer MariaDB. Donc à-priori, ce tutoriel devrait tout aussi bien fonctionner avec MariaDB.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte