Introduction au développement Web

Jean-Philippe Doyle, Projet Héritage 2005-2006

MySQL

Table des matières

1 - Introduction
2 - phpMyAdmin
2 - Connexion
4 - Créer une table
5 - Requêtes
6 - Révision
7 - Références

1 - Introduction

MySQL n'est pas un langage de programmation, c'est une base de données que l'on peut utiliser avec PHP, Perl, C, etc. C'est une solution très reconnue et utilisée, car elle est Open Source, donc gratuite. Une base de données c'est quelque chose d'assez abstrait, c'est un genre d'entrepôt virtuel de données. Voici un shémas démontrant comment on peut s'imaginer cette structure :

Il peut bien sûr avoir un nombre infini de bases de données, de tables, de champs dans la structures et de données. La structure et les données ici sont uniquement un exemple, la structure et les données pourraient être tout autres. De plus, chaque table contient une structure et des données différentes.

On peut illustrer une table d'une base de données comme suit :

champ1
champ2
champ3
champ1 valeur1
champ2 valeur1
champ3 valeur1
champ1 valeur2
champ2 valeur2
champ3 valeur2
champ1 valeur3
champ2 valeur3
champ3 valeur3

Ou plus contextuellement ainsi :

id
nom
date
1
Monsieur Culet
04
2
Monsieur Dugay
35
3
Madame Green
70

Il peut y avoir un nombre infini de champs dans une table, qui sont définis lors de sa création. Les champs peuvent contenir plusieurs types de données spécifiques comme des dates, des nombres d'une certaine longueur, des chaînes de caractères d'une longueur définie, etc. ou tout simplement du texte.

Il peut aussi avoir plusieurs bases de données, mais vous n'aurez probablement pas ce genre de privilège avec les hébergeurs gratuit comme pingouin.ca qui fournissent en général une seule base de données par client. Il est utile d'avoir plusieurs bases de données pour ne pas mélanger les tables de différents sites Web hébergés sur un même plan ou sur un même serveur dédié.

2 - phpMyAdmin

phpMyAdmin est un programme fait en PHP distribué gratuitement qui permet de visualiser et de gérer ses bases de données. Ce programme est en général installé chez tous les hébergeurs qui supportes PHP et MySQL, c'est un élément presque essentiel au développement d'un site dynamique. Voici donc à quoi ressemble l'interface de ce programme lorsque vous avez sélectionné votre base de données :

3 - Connexion

Comme on peut s'en douter, il n'est pas souhaitable de partager toutes les données de sa base à tout le monde, il faut donc en général s'identifier pour y avoir accès. Il y a certes plusieurs variantes dans la méthode de procéder, mais je vous présenterai ici la méthode dans sa plus simple expression. Il faut pour ce, connaître le nom de son serveur (habituellement localhost), son nom d'utilisateur, son mot de passe et la base de données à laquelle ont veut accéder :

mysql_connect('serveur','nom d\' utilisateur','mot de passe');
mysql_select_db('base de données');

Voilà donc tout ce qu'il faut (2 fonctions) pour se connecter à un serveur de bases de données et sélectionner une base.

4 - Créer une table

Afin de créer une table, on peut écrire une requête à la main ou avoir recourt à un programme comme phpMyAdmin. Puisque l'on crée en général une table une seule et unique fois et qu'il est ici uniquement question d'une introduction au développement Web, il est plus efficace d'utiliser l'interface de phpMyAdmin prévue à cet effet.

Pour créer sa table, il faut dans un premier temps se connecter à phpMyAdmin. Ensuite il faut sélectionner la base de données sur laquelle on désire créer la table. La première étape est de choisir un nom et un nombre de champs. Il vous sera ensuite non seulement possible de choisir le nom des champs, mais de choisir de multiples options pour chacun de ces champs. Dépendamment de la version de votre serveur MySQL et de votre phpMyadmin, les options peuvent différer, mais j'aborderai ici les principales :

Field

Tout simplement le nom de votre champ.

Type

Plusieurs types vous sont offerts et je ne les expliquerai pas tous, mais je vous explique quelques-unes des multiples utilités. En assignant un certain type à un champ, on s'assure en premier lieu de toujours se retrouver avec le bon type de données au bon endroits dans sa table (ex.: pas de lettres ou il ne devrait y avoir que des chiffres). Ensuite, lorsque vous désirerez sélectionner des enregistrements, vous pourrez les classer de façon adéquate (ex: alphabétique, numérique, dates). Les principaux types à connaître sont :

- varchar : texte d'une longueur maximum de 255 caractères ou moins (à définir dans l'option de longueur);
- text : texte d'une longueur indéfinie;
- date : date au format aaaa-mm-jj;
- int : chiffre;

Length/Values

La longueur est tout simplement le nombre maximum de caractères pour le champ. La valeur est utilisée dans le cas des types set et enum, qui permettent d'avoir un nombre restreint de valeurs possible qui sont définies dans cette option.

Null

L'option null permet d'assigner une valeur nulle au champ lorsque qu'aucune valeur n'est spécifiée lors de l'ajout d'un enregistrement à la table.

Default

L'option default permet d'assigner une valeur de votre choix au champ lorsque qu'aucune valeur n'est spécifiée lors de l'ajout d'un enregistrement à la table.

Extra

Cette option permet l'ajout d'un auto_increment. Un incrément automatique (auto_increment) assigne à chaque enregistrement une numérotation unique qui débute à 1 (et non-pas à 0 comme les tableaux de PHP et JavaScript). Cela permet d'identifier de façon distinque chaque enregistrement dans la table.

Primary

Cette option permet d'empêcher les entrées doubles et sera utilisée pour classé les données, on l'utilise souvent avec l'extra auto_increment pour éviter d'avoir des id qui ne seraient pas uniques.

5 - Requêtes

Pour envoyer quelconque sorte de requête à MySQL, que ce soit pour insérer, mettre à jour, supprimer ou sélectionner des données, il faut faire appel à la fonction mysql_query. Il faut à l'intérieur de cette fonction utiliser et respecter la syntaxe de MySQL qui est tout autre que celle de PHP.

INSERT : insérer un enregistrement

Il faut utiliser cette syntaxe dans laquelle il faut bien sûr changer les valeurs en italiques par celles appropriées à votre situation:

mysql_query('INSERT INTO table (champ1,champ2,champ3) VALUES(\'valeur1\',\'valeur2\',\'valeur3\')');

Il n'est pas nécessaire d'inclure tous les champs dans la requête si vous désirez qu'ils soient vides ou si ils se remplissent automatiquement (ce qui est souvent le cas du champ id auquel on assigne habituellement l'extra auto_increment [incrément automatique]).

UPDATE : mettre à jour un ou des enregistrements

Il faut utiliser cette syntaxe dans laquelle il faut changer les valeurs en italiques par celles appropriées à votre situation:

mysql_query('UPDATE table SET champ1 = \'valeur1\'');

Il n'est pas nécessaire d'inclure tous les champs dans la requête si vous désirez qu'uniquement certains d'entre eux soient mis à jour.

DELETE : supprimer un ou des enregistrements

Il faut utiliser cette syntaxe dans laquelle il faut changer les valeurs en italiques par celles appropriées à votre situation:

mysql_query('DELETE FROM table');

Certes ici nous supprimerions tout le contenu de notre table, c'est pourquoi il faut connaître les arguments WHERE et LIMIT qui sont expliqués plus bas.

SELECT : sélectionner un ou des enregistrements

Il faut utiliser cette syntaxe dans laquelle il faut changer les valeurs en italiques par celles apropriés à votre situation:

mysql_query('SELECT champ1, champ2 FROM table');

On peut sélectionner seulement certains champs en les spécifiant séparés par des virgules comme ci-dessus ou tous les sélectionner en utilisant un astérisque (*). L'avantage est qu'il est plus efficace pour la rapidité de notre site de sélectionner seulement les données que l'on entend utiliser. Encore une fois, il est utile d'utiliser les arguments WHERE et LIMIT.

WHERE, LIMIT : ajouter des restrictions aux requêtes

Il est utile de spécifier une restriction (WHERE) ou un nombre maximum de champs à modifier (LIMIT) pour les requêtes de mise à jour, de suppression et de sélection. La restriction WHERE permet de d'exécuter la commande uniquement aux enregistrements qui ont un ou des champs qui respectent certaines conditions (=, >, <, LIKE, etc.) que l'on retrouve dans la documentation de MySQL. Exemple :

mysql_query('DELETE FROM table WHERE id = 3');

On peut aussi faire une combinaison de plusieurs conditions :

mysql_query('DELETE FROM table WHERE (id > 1 & id < 10) and date > 00-03-2005');

6 - Révison

Voir la section à cet effet sur la page révison.

7 - Références

PHP Débutant (sans date). Consulté le 5 avril 2006.
http://www.phpdebutant.org

MySQL documentation (sans date), sur le site MySQL. Consulté le 6 avril 2006.
http://dev.mysql.com/doc/