MySQL
pour booster votre site web PHP
Hugo Etiévant
Dernière mise à jour : 20 juillet 2003
Le CyberZoïde Qui Frétille
http://cyberzoide.developpez.com
1
Introduction
MySQL dérive directement de SQL (Structured Query Language) qui est un langage de requête vers les bases de données exploitant le modèle relationnel. Il en reprend la syntaxe mais n’en conserve pas toute lapuissance puisque de nombreuses fonctionnalités de SQL n’apparaissent pas dans MySQL (sélections imbriquées, clés étrangères…) Le serveur de base de données MySQL est très souvent utilisé avec le langage de création de pages web dynamiques : PHP. Il sera discuté ici des commandes MySQL utilisables via PHP dans les conditions typiques d’utilisation dans le cadre de la gestion d’un site personnel hébergégratuitement (par exemple sur Free.fr).
Base de MySQL données Serveur
Le CyberZoïde Qui Frétille
Script PHP
HTTP
Page HTML Client
http://cyberzoide.developpez.com
2
Sommaire
• • • • • Théorie des bases de données relationnelles Syntaxe de MySQL Fonctions de MySQL Interface avec PHP Administration avec l’outil phpMyAdmin
Le CyberZoïde Qui Frétillehttp://cyberzoide.developpez.com
3
1
Le CyberZoïde Qui Frétille
Théorie des bases de données
http://cyberzoide.developpez.com 4
Concepts du modèle relationnel
Avant d’attaquer le vif du sujet, un petit glossaire du jargon des bases de données : Domaine : ensemble des valeurs d’un attribut. Relation : sous ensemble du produit cartésien d’une liste de domaines. C’est en fait un tableau à deuxdimensions dont les colonnes correspondent aux domaines et dont les lignes contiennent des tuples. On associe un nom à chaque colonne. Attribut : une colonne d’une relation, caractérisé par un nom. Tuple : liste des valeurs d’une ligne d’une relation. Une relation est un peu une classe (programmation orientée objet) qui ne possèderait que des attributs et donc chaque instance représenterait un tuple.
LeCyberZoïde Qui Frétille
http://cyberzoide.developpez.com
5
Les relations
Une relation est une table comportant des colonnes (appelées aussi attributs) dont le nom et le type caractérisent le contenu qui sera inséré dans la table. Imaginons que l’on veuille stocker dans notre base de données notre carnet d’adresses. On va donc créer la relation Personne qui aura pour attributs : nom,prénom, adresse, téléphone. Autrement dit, c’est une table nommée Personne possédant les colonnes : nom, prénom, adresse, téléphone. Les lignes que contiendra cette table seront appelées enregistrements ou tuples.
Personnes nom Dupond prénom Marc adresse 8 rue de l’octet téléphone 0123456789
Le CyberZoïde Qui Frétille
http://cyberzoide.developpez.com
6
Algèbre relationnelle
L’algèbrerelationnelle regroupe toutes les opérations possibles sur les relations. Voici la liste des opérations possibles : Projection : on ne sélectionne qu’un ou plusieurs attributs d’une relation (on ignore les autres). Par exemple n’afficher que les colonnes nom et prénom de la table Personnes. Jointure : on fabrique une nouvelle relation à partir de 2 ou plusieurs autres en prenant comme pivot 1 ouplusieurs attributs. Par exemple, on concatène la table du carnet d’adresse et celle des inscrits à la bibliothèque en fonction du nom de famille (c’es typiquement du recoupement de fichiers). Sélection : on sélectionne tous les tuples ou bien seulement une partie en fonction de critères de sélection qui portent sur les valeurs des attributs. Par exemple n’afficher que les lignes de la tablePersonnes qui vérifient la condition suivante : le nom ne commence pas par la lettre ‘C’. Cette algèbre est facilement possible avec les commandes de MySQL (SELECT… FROM… WHERE…).
Le CyberZoïde Qui Frétille
http://cyberzoide.developpez.com
7
Projection
Personnes nom Martin Dupond Dupond prénom Pierre Jean Marc adresse 32 allé Poivrot 8 rue de l’octet téléphone 0526389152 0123456789 7…