Accéder au contenu principal

Tutoriel MySQL : Un guide complet pour les débutants

Découvrez ce qu'est MySQL et comment commencer à utiliser l'un des systèmes de gestion de base de données les plus populaires.
Actualisé 16 janv. 2025  · 15 min de lecture

Les données constituent le fondement de notre société de plus en plus numérique. Des applications mobiles et des systèmes bancaires aux moteurs de recherche et aux chatbots d'IA de nouvelle génération comme ChatGPT, aucun de ces outils ne serait possible sans données. Vous êtes-vous déjà demandé où sont stockées toutes ces données ? Vous l'avez deviné : les bases de données.

Une base de données est une collection organisée de données structurées, normalement stockées dans un système informatique. Une grande partie des données dans le monde est stockée dans des bases de données relationnelles.

Dans ce tutoriel, nous nous concentrerons sur MySQL, un système de gestion de base de données relationnelle (SGBDR) très répandu. Soutenue par Oracle, MySQL est une base de données open-source, fiable, évolutive et conviviale, utilisée par certaines des entreprises les plus importantes du secteur technologique, telles que Meta, Netflix et Airbnb.

Après avoir lu cet article, vous serez prêt à utiliser cet outil populaire et bien établi, depuis son installation sur votre ordinateur et la création de bases de données jusqu'à l'exécution de requêtes SQL de base et d'opérations plus avancées. Prêt à relever le défi ? Commençons !

Conditions préalables et concepts de base

Il existe de nombreux types de bases de données, différentes étant adaptées au stockage de différents types de données. Ces dernières années, de nouveaux types de bases de données ont été développés pour répondre à la diversité croissante des formats de données. Malgré l'essor des bases de données dites NoSQL, les bases de données relationnelles restent les plus populaires.

Les bases de données relationnelles sont conçues pour stocker des données sous forme de tableaux prédéfinis avec des lignes et des colonnes reliées par une ou plusieurs relations.

La méthode standard pour créer, gérer et communiquer avec les bases de données est le langage SQL (Structured Query Language). SQL est le fondement de certains des systèmes les plus populaires du marché, notamment PostgreSQL, SQLite et MySQL.

Pour suivre ce tutoriel, nous vous recommandons d'avoir des connaissances de base en SQL. Notre cours d'introduction à SQL est un excellent moyen de commencer. Vous aurez également besoin de MySQL sur votre ordinateur, nous allons donc voir comment installer MySQL.

Devenez certifié SQL

Prouvez que vos compétences en SQL sont prêtes à l'emploi grâce à une certification.
Booster ma carrière

Configuration de MySQL

L'installation de l'outil est un processus simple. Il vous suffit de télécharger le bon programme d'installation depuis le site officiel, en fonction du système d'exploitation de votre ordinateur, qu'il s'agisse de macOS, de Windows ou de Linux.

Installation sur macOS

Une fois que vous avez téléchargé le programme d'installation de MySQL, suivez les instructions de l'assistant d'installation. Vous pouvez suivre l'installation standard, mais vous pouvez aussi personnaliser les composants à installer en cliquant sur le bouton "Personnaliser".

Assistant d'installation du package MySQL : Personnaliser.

Assistant d'installation du paquet MySQL : Personnalisez. Source : MySQL

Après une nouvelle installation réussie du serveur MySQL, terminez les étapes de configuration en choisissant le type de cryptage par défaut pour les mots de passe, en définissant le mot de passe root et en activant (ou désactivant) le serveur MySQL au démarrage.

Lors de l'installation à l'aide du programme d'installation des paquets, les fichiers sont installés dans un répertoire de /usr/local correspondant au nom de la version et de la plate-forme d'installation.

Installation sous Windows

L'installation de MySQL sous Windows est assez simple. La méthode recommandée consiste à télécharger Windows Installer et à le laisser installer et configurer une version spécifique de MySQL. Si vous utilisez l'installation par défaut, Windows démarrera automatiquement MySQL en tant qu'hôte local.

Installation sous Linux

Linux prend en charge un certain nombre de solutions différentes pour l'installation de MySQL. MySQL vous recommande d'utiliser l'une des distributions d'Oracle, pour laquelle plusieurs méthodes d'installation sont disponibles, comme vous pouvez le constater dans la documentation.

Comprendre MySQL

Avant de commencer à utiliser MySQL, il convient d'analyser son fonctionnement. Analysons quelques-uns de ses concepts fondamentaux.

Architecture MySQL

Comme beaucoup d'autres bases de données relationnelles populaires, MySQL est conçu comme une architecture client-serveur.

Dans le cadre de ce modèle informatique, un serveur est conçu pour héberger des données, gérer les autorisations et les configurations des bases de données et prendre en charge la plupart des ressources et des services demandés par le client.

Dans les architectures client-serveur les plus courantes, il y a un serveur centralisé et plusieurs clients. Tout ordinateur peut être un serveur s'il est configuré pour fournir un service. Cependant, les serveurs sont généralement des machines très puissantes et de grande taille, car ils sont les mieux équipés pour traiter un volume élevé de demandes et de données.

En revanche, les clients peuvent être installés sur n'importe quel type d'ordinateur.

Architecture client-serveur.

Architecture client-serveur. Source : DataCamp

Dans MySQL, ces deux composants sont le client MySQL et le serveur MySQL.

Types de données

Les types de données sont utilisés pour déterminer les valeurs qu'une colonne peut contenir. Il s'agit d'une sorte de métadonnée qui aide SQL à comprendre quel type de données est attendu dans chaque colonne et comment traiter les requêtes relatives à une colonne spécifique.

MySQL prend en charge les types de données SQL ordinaires dans trois catégories principales :

  • Types numériques
  • Types de chaînes
  • Types de date et d'heure

Dans les tableaux suivants, vous trouverez une vue d'ensemble des principaux types de données dans MySQL.

Types de données numériques

Type de données

Description

TINYINT

Un très petit nombre entier.

SMALLINT

Un petit nombre entier.

MEDIUMINT

Un nombre entier de taille moyenne.

INT ou INTEGER

Un nombre entier standard.

BIGINT

Un grand nombre entier.

FLOTTANT

Un nombre à virgule flottante.

DOUBLE

Un nombre à virgule flottante en double précision.

DECIMALE ou NUMÉRIQUE

Un nombre en virgule fixe.

Types de données de date et d'heure

Type de données

Description

DATE

Une valeur de date au format AAAA-MM-JJ.

TEMPS

Valeur de l'heure au format HH:MM:SS.

DATETIME

Une valeur de date et d'heure au format AAAA-MM-JJ HH:MM:SS.

TIMESTAMP

Une valeur d'horodatage au format AAAA-MM-JJ HH:MM:SS.

ANNÉE

Valeur de l'année au format AAAA ou YYY.

Types de données des chaînes de caractères

Type de données

Description

CHAR

Une chaîne de longueur fixe.

VARCHAR

Une chaîne de longueur variable.

TINYTEXT

Une toute petite chaîne de texte.

TEXT

Une petite chaîne de texte.

MEDIUMTEXT

Une chaîne de texte de taille moyenne.

LONGTEXT

Une grande chaîne de texte.

ENUM

Un objet de type chaîne de caractères qui ne peut avoir qu'une seule valeur, choisie dans une liste de valeurs prédéfinies.

SET

Un objet de type chaîne de caractères qui peut avoir zéro ou plusieurs valeurs, choisies dans une liste de valeurs prédéfinies.

Accès à MySQL

Une fois que vous avez installé MySQL sur votre ordinateur, vous pouvez commencer à l'utiliser à partir de votre terminal. Pour lancer MySQL, vous pouvez y accéder avec votre nom d'utilisateur et le mot de passe associé. Dans ce cas, nous accéderons à MySQL avec le compte root et le mot de passe root que nous avons défini lors de l'installation. Comme nous nous connectons sur la même machine que MySQL, nous n'avons pas besoin de fournir d'informations dans le paramètre host (-h) :

> mysql -uroot -p

Si vous souhaitez ajouter de nouveaux utilisateurs, tapez :

> CREATE USER 'username' IDENTIFIED BY 'password';

Une fois que vous avez créé un nouvel utilisateur, vous pouvez entrer dans MySQL à l'aide de cette commande et un message de bienvenue s'affichera, suivi d'une invite mysql> :

> mysql -u username -p 
Welcome to the MySQL monitor.  Commands end with; or \g.
Your MySQL connection id is 25
Server version: 8.1.0 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
Owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Comment créer une base de données MySQL

Création d'une base de données

Il est temps de créer votre première base de données en MySQL. Pour ce tutoriel, nous voulons créer une base de données appelée "datacamp_courses", qui contiendra des informations sur certains cours de DataCamp. La base de données est hébergée localement.

Pour créer une base de données, utilisez la commande suivante :

mysql> CREATE DATABASE datacamp_courses;

Pour vérifier que la base de données est créée, tapez ce qui suit et un tableau contenant toutes les bases de données disponibles s'affichera :

mysql> SHOW databases;
+--------------------+
| Database           |
+--------------------+
| datacamp_courses   |
| mysql              |
+--------------------+
5 rows in set (0,00 sec)

Vous êtes maintenant prêt à accéder à votre toute nouvelle base de données.

mysql> USE datacamp_courses;
Database changed

Création d'un tableau

Jusqu'à présent, vous avez créé votre première base de données. Mais il est toujours vide. Nous allons maintenant créer le premier tableau de la base de données. Nous voulons créer un tableau appelé "cours", contenant des informations sur plusieurs cours disponibles dans le catalogue de cours de DataCamp.

Il est temps de créer votre premier tableau dans la base de données "datacamp_courses". Nous souhaitons créer un tableau contenant des informations sur certains cours du catalogue de cours de DataCamp.

La clé primaire du tableau doit être course_id (notez que seule cette clé est en gras), et son type de données doit être un nombre entier. Une clé primaire est une contrainte qui impose que les valeurs des colonnes soient non nulles et uniques. Il vous permet d'identifier de manière unique une instance spécifique ou un ensemble d'instances présentes dans le tableau.

Les autres colonnes fournissent des informations sur le nom du cours, le formateur, le thème du cours et l'url.

Pour créer le premier tableau de la base de données "datatacamp_courses", utilisez la commande suivante :

mysql> CREATE TABLE courses (
  course_id int NOT NULL,
  course_name varchar(250) NOT NULL,
  instructor_name varchar(250) NOT NULL,
  technology varchar(50) NOT NULL,
  topic varchar(50) NOT NULL,
  PRIMARY KEY (course_id)
);

Requêtes SQL de base

Vous avez votre première base de données et votre premier tableau. Excellent ! Il est maintenant temps d'ajouter des données au tableau.

Ajoutons quelques lignes contenant des cours populaires disponibles dans notre catalogue à l'aide de l'instruction INSERT. Le code suivant fera la magie.

INSERT INTO 
    courses (course_id, course_name, instructor_name, technology, topic) VALUES 
    (1, 'Introduction to SQL', 'Izzy Weber', 'SQL','Data Manipulation'), 
    (2, 'Database Design', 'Lis Sulmont', 'SQL', 'Data Engineering'), 
    (3, 'Data Manipulation with pandas', 'Richie Cotton', 'R','Programming'),
    (4, 'Generative AI Concepts', 'Daniel Tedesco', 'Theory', 'AI & Machine Learning');

Pour vérifier que les tableaux ont été correctement ajoutés, affichons toutes les lignes du tableau à l'aide de l'instruction SELECT :

SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-----------------------+
| course_id | course_name                   | instructor_name | technology | topic                 |
+-----------+-------------------------------+-----------------+------------+-----------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation     |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering      |
|         3 | Data Manipulation with pandas | Richie Cotton   | R          | Programming           |
|         4 | Generative AI Concepts        | Daniel Tedesco  | Theory     | AI & Machine Learning |
+-----------+-------------------------------+-----------------+------------+-----------------------+
4 rows in set (0,00 sec)

Vous avez peut-être remarqué qu'il y a une erreur dans les données que nous venons d'ajouter. La technologie du cours Data Manipulation with pandas est un Python, ni R. Corrigeons l'erreur avec l'instruction UPDATE accompagnée de la clause WHERE pour spécifier la ligne à mettre à jour

UPDATE courses SET technology = 'Python' WHERE course_id = 3;
SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-----------------------+
| course_id | course_name                   | instructor_name | technology | topic                 |
+-----------+-------------------------------+-----------------+------------+-----------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation     |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering      |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming           |
|         4 | Generative AI Concepts        | Daniel Tedesco  | Theory     | AI & Machine Learning |
+-----------+-------------------------------+-----------------+------------+-----------------------+
4 rows in set (0,00 sec)

Enfin, il se peut que vous souhaitiez supprimer l'un des enregistrements de votre tableau. Par exemple, supprimons le cours Concepts d'IA générative :

DELETE from courses WHERE course_name = 'Generative AI Concepts';
SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-------------------+
| course_id | course_name                   | instructor_name | technology | topic             |
+-----------+-------------------------------+-----------------+------------+-------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering  |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming       |
+-----------+-------------------------------+-----------------+------------+-------------------+
3 rows in set (0,00 sec)

Sujets avancés

Indexation

Par défaut, lorsque MySQL doit trouver des lignes, il commence par la première et lit de la tête à la queue. Ce comportement peut être problématique lorsque vos bases de données contiennent des millions de lignes, car le processus peut être très lent.

La création d'un index est un excellent moyen d'accélérer la recherche de lignes dans vos tableaux par MySQL. Un index d'un composant de vos tableaux que MySQL utilise pour récupérer plus rapidement les lignes avec des colonnes spécifiques.

Créons un index dans notre tableau de cours appelé "idx_course" sur la colonne "course_id".

CREATE INDEX idx_course
ON courses (course_id);

Joins

Jusqu'à présent, nous n'avons travaillé qu'avec le tableau des cours. Mais vous ne commencez à exploiter tout le potentiel des bases de données relationnelles, comme MySQL, que lorsque vous travaillez avec plusieurs tableaux à la fois.

L'outil magique pour combiner plusieurs tableaux est l'opération JOIN. Imaginez que nous ayons un deuxième tableau dans notre base de données, appelé "instructeurs", qui contient des informations de base sur les instructeurs des cours de DataCamp. Le script suivant crée le tableau et ajoute quelques tableaux (fictifs) :

mysql> CREATE TABLE instructors (
  instructor_id int NOT NULL,
  instructor_name varchar(250) NOT NULL,
  role varchar(500) NOT NULL,
  number_courses int NOT NULL,
  PRIMARY KEY (instructor_id)
);
INSERT INTO 
    instructors (instructor_id, instructor_name, role, number_courses) VALUES 
    (1, 'Lis Sulmont', 'Data Scientist', 4),
    (2, 'Daniel Tedesco', 'Business Analyst', 1),
    (3, 'Richie Cotton', 'Data Evangelist',5),
    (4, 'Izzy Weber', 'Data Engineer', 2), 
    (5, 'James Chapman', 'Data Analyst',3);

Imaginez que vous souhaitiez fusionner les deux tableaux pour obtenir les informations relatives aux cours, ainsi que les données associées à l'instructeur. Nous utiliserons un INNER JOIN pour obtenir uniquement les informations sur les cours qui apparaissent dans le tableau des cours. La colonne commune pour effectuer la jointure est "nom_instructeur".

mysql> SELECT * FROM courses
    -> INNER JOIN instructors
    -> ON courses.instructor_name = instructors.instructor_name;
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
| course_id | course_name                   | instructor_name | technology | topic             | instructor_id | instructor_name | role            | number_courses |
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering  |             1 | Lis Sulmont     | Data Scientist  |              4 |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming       |             3 | Richie Cotton   | Data Evangelist |              5 |
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation |             4 | Izzy Weber      | Data Engineer   |              2 |
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
3 rows in set (0,00 sec)

Il ne s'agit que d'un type de jointure, mais il en existe d'autres qui sont tout aussi utiles en fonction de votre cas d'utilisation. Notre cours sur la jointure des données en SQL et notre antisèche sur les JOINS vous aideront à démarrer.

Meilleures pratiques MySQL

Mesures de sécurité

Les bases de données modernes peuvent stocker des tableaux de plusieurs millions de lignes. Avec autant de données et d'applications basées sur ces données, il est vital de les sécuriser.

Les bases de données sont exposées à des risques courants, notamment une mauvaise gestion de l'accès aux bases de données, des mots de passe faibles et des injections SQL. Pour faire face à ces menaces et à ces faiblesses, un certain nombre de stratégies et de mesures peuvent être mises en œuvre, notamment la configuration des privilèges d'accès en fonction de l'utilisateur, la création de déclencheurs dans les serveurs SQL et la mise en place de méthodologies de cryptage. Notre cours sur la conception de bases de données constitue un excellent point de départ pour s'initier à la sécurité SQL.

Optimisation des performances

Au fur et à mesure que vous progressez dans votre parcours de codage SQL, vous commencez à réaliser l'importance de la performance. Une requête SQL peut être écrite de différentes manières. Tous fonctionnent, mais certains sont plus efficaces que d'autres.

De nombreuses stratégies et astuces peuvent vous aider à améliorer les performances de votre code SQL, notamment les sous-requêtes et les clauses SQL, telles que WHERE, HAVING et DISTINCT.

Mais l'efficacité n'est pas seulement une question technique, c'est aussi une question d'ordre et de lisibilité. En modifiant légèrement la façon dont vous écrivez le langage SQL, par exemple en utilisant des alias et des commentaires, vous pouvez faire une grande différence qui vous aidera, vous et le reste de votre équipe.

Vous souhaitez en savoir plus sur l'optimisation des performances SQL ? Consultez notre cours sur l'amélioration des performances des requêtes dans SQL Server

Conclusion

Nous vous félicitons d'avoir atteint la fin de ce tutoriel sur MySQL. Nous espérons que vous avez apprécié cette introduction à MySQL et à ses possibilités. Si vous vous intéressez à la gestion des bases de données, apprendre MySQL est une bonne idée.

Mais ce n'est que le début de votre voyage. Si vous souhaitez en savoir plus sur MySQL et SQL en général, DataCamp vous couvre. Voici quelques ressources pour vous aider à démarrer :

Devenez ingénieur en données

Devenez un ingénieur de données grâce à l'apprentissage avancé de Python

Javier Canales Luna's photo
Author
Javier Canales Luna
LinkedIn

Je suis analyste de données indépendant et je collabore avec des entreprises et des organisations du monde entier dans le cadre de projets de science des données. Je suis également formateur en science des données avec plus de 2 ans d'expérience. Je rédige régulièrement des articles sur les sciences des données en anglais et en espagnol, dont certains ont été publiés sur des sites web réputés tels que DataCamp, Towards Data Science et Analytics Vidhya En tant que scientifique des données ayant une formation en sciences politiques et en droit, mon objectif est de travailler à l'interaction des politiques publiques, du droit et de la technologie, en tirant parti du pouvoir des idées pour faire avancer des solutions et des récits innovants qui peuvent nous aider à relever des défis urgents, à savoir la crise climatique. Je me considère comme un autodidacte, un apprenant permanent et un fervent partisan de la pluridisciplinarité. Il n'est jamais trop tard pour apprendre de nouvelles choses.

Sujets

Commencez votre voyage SQL dès aujourd'hui !

cours

Introduction to SQL

2 hr
975.9K
Learn how to create and query relational databases using SQL in just two hours.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

Voir plusVoir plus