Le langage SQL et les bases de données



La base de données (BDD) est un système qui enregistre des informations. Un peu comme un fichier texte ? Non, pas vraiment. Ce qui est très important ici, c'est que ces informations sont toujours classées. Et c'est ça qui fait que la BDD est si pratique : c'est un moyen simple de ranger des informations.

Et si je préfère rester désordonné ? Si je n'ai pas envie de classer mes informations ?
Est-on obligé de classer chaque information qu'on enregistre ?



C'est un peu ce que je me disais au début… Classer certaines choses, d'accord, mais il me semblait que je n'en aurais besoin que très rarement.
Grave erreur ! Vous allez le voir : 99 % du temps, on range ses informations dans une base de données. Pour le reste, on peut les enregistrer dans un fichier comme on a appris à le faire… mais quand on a goûté aux bases de données, on peut difficilement s'en passer ensuite !

Imaginez par exemple une armoire, dans laquelle chaque dossier est à sa place.
Quand tout est à sa place, il est beaucoup plus facile de retrouver un objet, n'est-ce pas ? Eh bien là, c'est pareil : en classant les informations que vous collectez (concernant vos visiteurs par exemple), il vous sera très facile de récupérer plus tard ce que vous cherchez.


Les SGBD s'occupent du stockage



Je vous ai présenté brièvement les SGBD (Systèmes de Gestion de Bases de Données) dans le premier chapitre de ce livre. Les SGBD sont les programmes qui se chargent du stockage de vos données.

Les plus connus sont, pour rappel :

  • MySQL : libre et gratuit, c'est probablement le SGBD le plus connu. Nous l'utiliserons dans cette partie ;
  • PostgreSQL : libre et gratuit comme MySQL, avec plus de fonctionnalités mais un peu moins connu ;
  • SQLite: libre et gratuit, très léger mais très limité en fonctionnalités ;
  • Oracle : utilisé par les très grosses entreprises ; sans aucun doute un des SGBD les plus complets, mais il n'est pas libre et on le paie le plus souvent très cher ;
  • Microsoft SQL Server : le SGBD de Microsoft.

Il faut donc choisir le SGBD que vous allez utiliser pour stocker les données. Je vous recommande de travailler plutôt avec les SGBD libres et gratuits, tels que MySQL, PostgreSQL et SQLite. Après, tout est question de goût et des fonctionnalités que vous recherchez. MySQL est un bon compromis.

Nous allons utiliser MySQL, mais sachez que l'essentiel de ce que vous allez apprendre fonctionnera de la même manière avec un autre SGBD. Cette partie est construite afin que vous ayez le moins de choses possible à apprendre de nouveau si vous choisissez de changer de SGBD.




Vous donnez les ordres au SGBD en langage SQL



Vous allez devoir communiquer avec le SGBD pour lui donner l'ordre de récupérer ou d'enregistrer des données. Pour lui « parler », on utilise le langage SQL.

La bonne nouvelle, c'est que le langage SQL est un standard, c'est-à-dire que quel que soit le SGBD que vous utilisez, vous vous servirez du langage SQL. La mauvaise, c'est qu'il y a en fait quelques petites variantes d'un SGBD à l'autre, mais cela concerne généralement les commandes les plus avancées.

Comme vous vous en doutez, il va falloir apprendre le langage SQL pour travailler avec les bases de données. Ce langage n'a rien à voir avec le PHP, mais nous allons impérativement en avoir besoin.

Voici un exemple de commande en langage SQL, pour vous donner une idée :

Code : PHP

1

SELECT id, auteur, message, datemsg FROM livreor ORDER BY datemsg DESC



Le principal objectif de cette partie du livre sera d'apprendre à utiliser ce langage SQL pour que vous soyez capables de donner n'importe quel ordre à la base de données, comme par exemple : « Récupère-moi les 10 dernières news de mon site », « Supprime le dernier message posté dans ce forum », etc.


PHP fait la jonction entre vous et MySQL



Pour compliquer un petit peu l'affaire (sinon, ce n'est pas rigolo), on ne va pas pouvoir parler à MySQL directement. Eh non, seul PHP peut le faire !
C'est donc PHP qui va faire l'intermédiaire entre vous et MySQL. On devra demander à PHP : « Va dire à MySQL de faire ceci. »

Je crois qu'un petit schéma ne serait pas du luxe… Voyez la figure suivante.

Communication entre PHP et MySQL



Voici ce qui peut se passer lorsque le serveur a reçu une demande d'un client qui veut poster un message sur vos forums :

  1. le serveur utilise toujours PHP, il lui fait donc passer le message ;
  2. PHP effectue les actions demandées et se rend compte qu'il a besoin de MySQL. En effet, le code PHP contient à un endroit « Va demander à MySQL d'enregistrer ce message ». Il fait donc passer le travail à MySQL ;
  3. MySQL fait le travail que PHP lui avait soumis et lui répond « O.K., c'est bon ! » ;
  4. PHP renvoie au serveur que MySQL a bien fait ce qui lui était demandé.

Maintenant que nous avons fait les présentations, il va falloir découvrir comment est organisée une base de données. Bien en comprendre l'organisation est en effet absolument indispensable.

Créé avec HelpNDoc Personal Edition: Transformez votre flux de travail de documentation avec l'interface utilisateur intuitive de HelpNDoc