Les langages de programmation du Web

Précédent Sommaire 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Suivant

16. Le système de gestion de bases de données MySQL

SGBD

Un système de gestion de base de données (SGBD) est un logiciel destiné à traiter des informations structurées, stockées dans un système de fichiers.

Les systèmes de gestion de base de données les plus largement utilisés sont de type relationnel (SGBDR).

Les SGBDR les plus connus sont Oracle Database (propriétaire), MySQL et son fork MariaDB (libres), PostgreSQL (libre), SQLite (libre), Microsoft SQL Server (propriétaire), Microsoft Access (propriétaire)...

Toutes les informations privées vous concernant sont stockées dans des bases de données (numéro INSEE, compte bancaire, forfait portable, profil Facebook, les moyennes de votre dernier trimestre...).
Les SGBD se doivent donc de respecter un certain nombre de règles de sécurité.

Les tables

MySQL est un SGBD de type relationnel, ce qui veut dire que les données sont organisées sous forme de tables.

Par exemple, voici une table qui contient les logins d'accès d'un site Web :

utilisateurmot_de_passedate_inscription
Fabrice58eFt2017-06-15
MurielyRE4122017-06-23
NUXPark882017-05-11

Création de la table avec l'interface phpMyAdmin

phpMyAdmin

phpMyAdmin est une interface Web très pratique pour gérer une base de données MySQL.
Nous allons nous en servir pour créer une base, puis une table et la remplir.

URL http://localhost/phpmyadmin

MySQL

Créer une base de données

Il existe déjà plusieurs bases de données (information_schema, performance_schema...) auxquelles il ne faut pas toucher !

Pour notre usage personnel, nous allons ajouter une base de données :

Nom : base_isn
Interclassement → latin1_bin (sensible à la casse)

MySQL

Créer une table dans la base base_isn

Notre base de données est vide, nous allons y placer une table :

Nom : table_login
Nombre de colonnes : 3 (3 champs)

MySQL

Structure de la table

Chaque ligne d'une table doit avoir un identificateur unique : il faut définir une clé primaire.
Pour la clé primaire, on choisit ici le champ utilisateur.
Nous sommes ainsi certain qu'un nom d'utilisateur sera unique.

Champ utilisateur
Type : VARCHAR (chaîne de caractères)
Taille : 20
Index : PRIMARY (clé primaire)

Champ mot_de_passe
Type : VARCHAR (chaîne de caractères)
Taille : 20

Champ date_inscription
Type : DATE (format YYYY-MM-DD)

MySQL

Insertion d'une entrée (nouvelle ligne)

MySQL

Affichage du contenu de la table

MySQL

Le langage SQL (Structured Query Language)

SQL est un langage informatique servant à effectuer des opérations sur des bases de données de type relationnel (cela ne concerne pas uniquement MySQL).

Précédemment, nous avons créé une base, une table et l'avons remplie avec phpMyAdmin.
Toutes ces opérations se font avec des requêtes SQL, que l'application phyMyAdmin a envoyé au serveur MySQL.
phpMyAdmin nous a donc permis de manipuler du code SQL de manière tout à fait transparente (c'est appréciable pour un débutant).

Exemples de requêtes SQL

phpMyAdmin offre la possibilité d'exécuter nos propres requêtes SQL (dans l'onglet SQL) :

Afficher le contenu complet de la table :

SELECT * FROM table_login

Afficher certains champs de la table :

SELECT utilisateur,mot_de_passe FROM table_login

Trier dans l'ordre alphabétique décroissant :

SELECT * FROM table_login ORDER BY utilisateur DESC

MySQL

Trier dans l'ordre alphabétique croissant :

SELECT * FROM table_login ORDER BY utilisateur ASC

... et limiter le nombre maximum de résultats :

SELECT * FROM table_login ORDER BY utilisateur ASC LIMIT 1

Rechercher selon une condition :

SELECT * FROM table_login WHERE date_inscription = '2017-06-23'

Rechercher selon plusieurs conditions :

SELECT * FROM table_login WHERE date_inscription > '2017-05-11' AND date_inscription <= '2017-06-23'

Créer une entrée (nouvelle ligne ou nouvel enregistrement) :

INSERT INTO table_login (utilisateur,mot_de_passe,date_inscription) VALUES ('Camille','gh8Zre','2017-06-25')

Mettre à jour un enregistrement :

UPDATE table_login SET mot_de_passe = 'rtuaZ' WHERE utilisateur = 'Muriel'

Supprimer un enregistrement :

DELETE FROM table_login WHERE utilisateur = 'Fabrice'

Exercices

Exercice 1

Tester et commenter les exemples de requêtes SQL ci-dessus.

Exercice 2

Ecrire la requêtes SQL qui permet de trier les utilisateurs par date d'inscription.

Exercice 3

Ecrire la requêtes SQL qui donne la date d'inscription la plus récente.

Exercice 4

Ecrire la requêtes SQL d'un nouvel enregistrement.

Exercice 5

Ecrire la requêtes SQL d'un nouvel enregistrement avec un nom d'utilisateur déjà utilisé (Muriel par exemple).
Exécuter la requête. Commentaire ?