Cours complet de MySQL
Par Hugo ETIEVANT
Présentation
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 la puissance 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).
Ce cours (de 105 diapositives) vous permettra de maîtriser la syntaxe MySQL et d’en comprendre toute les fonctionnalités. Vous aurez aussi la connaissance des fonctions PHP permettant d’utiliser au mieux votre base de données au sein de vos pages.
Sommaire
- Théorie des bases de données relationnelles
- Syntaxe de MySQL
- Fonctions de MySQL
- Interface avec PHP
- Administration avec l’outil phpMyAdmin
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 la puissance 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).
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 à deux dimensions 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.
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.
Algèbre relationnelle
L’algèbre relationnelle 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 ou plusieurs 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 table Personnes 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…).
Types des attributs (I)
Les propriétés de vos objets peuvent être de types très différents :
• Nombre entier signé ou non (température, quantité commandée, âge)
• Nombre à virgule (prix, taille)
• Chaîne de caractères (nom, adresse, article de presse)
• Date et heure (date de naissance, heure de parution)
• Énumération (une couleur parmi une liste prédéfinie)
• Ensemble (une ou des monnaies parmi une liste prédéfinie)
Il s’agit de choisir le plus adapté à vos besoins.
Ces types requièrent une plus ou moins grande quantité de données à stocker.
Par exemple, ne pas choisir un LONGTEXT pour stocker un prénom mais
plutôt un VACHAR(40) !
Types des attributs (V) – chaînes
Les types TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT peuvent être
judicieusement remplacés respectivement par TINYBLOB, BLOB,
MEDIUMBLOB et LONGBLOB.
Ils ne diffèrent que par la sensibilité à la casse qui caractérise la famille des
BLOB. Alors que la famille des TEXT sont insensibles à la casse lors des tris et
recherches.
Les BLOB peuvent être utilisés pour stocker des données binaires.
Les VARCHAR, TEXT et BLOB sont de taille variable. Alors que les CHAR et
DECIMAL sont de taille fixe.
Types des attributs (VIII) – énumérations
Un attribut de type ENUM peut prendre une valeur parmi celles définies lors de
la création de la table plus la chaîne vide ainsi que NULL si la définition le
permet. Ces valeurs sont exclusivement des chaînes de caractères. Une
énumération peut contenir 65535 éléments au maximum.
Définition d’un tel attribut :
nom_attribut ENUM(‘’valeur 1’’,’’valeur 2’’…)
nom_attribut ENUM(‘’valeur 1’’,’’valeur 2’’…) NULL
A chaque valeur est associée un index allant de 0 à N si N valeurs ont été
définies. L’index 0 est associé à la chaîne nulle, l’index 1 à la première
valeur… L’index NULL est associé à la valeur NULL.
Si une sélection (SELECT ou WHERE) est faite dans un contexte numérique,
l‘index est renvoyé. Sinon, c’est la valeur qui est retournée.
Il peut être défini jusqu’à 65535 valeurs distinctes insensibles à la casse.
Types des attributs (IX) – ensembles
Un attribut de type SET peut prendre pour valeur la chaîne vide, NULL ou une
chaîne contenant une liste de valeurs qui doivent être déclarées lors de la
définition de l’attribut lors de la création de la relation.
Par exemple, un attribut déclaré comme ci :
SET(‘‘voiture’’, ‘’moto’’, ’’vélo’’) NOT NULL
peut prendre les valeurs suivantes :
‘’’’ (chaîne vide)
‘’voiture,moto’’
‘’vélo,voiture,moto’’
et autres combinaisons de listes des trois valeurs définie plus haut.
Un attribut déclaré comme suit :
SET(‘‘voiture’’, ‘’moto’’, ’’vélo’’) NULL
peut prendre, en plus ce celles précédentes, la valeur NULL.
Il ne peut être défini que 64 éléments maximum.
Identificateurs
Les noms des bases, relations, attributs, index et alias sont constitués de
caractères alphanumériques et des caractères _ et $.
Un nom comporte au maximum 64 caractères.
Comme les bases de données et les relations sont codées directement dans le
système de fichiers, la sensibilité à la casse de MySQL dépend de celle du
système d’exploitation sur lequel il repose. Sous Windows, la casse n’a pas
d’importance ; alors que sous Unix, elle en a !
Le point . est un caractère réservé utilisé comme séparateur entre le nom
d’une base et celui d’une relation, entre le nom d’une relation et celui d’un
attribut.
Exemple :
SELECT base1.table25.attribut5
FROM base1.table25
Popularity: 11% [?]
Tags: Cours, Mysql| Print article | This entry was posted by AideWeb on April 22, 2010 at 11:39 pm, and is filed under Mysql. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |


about 11 months ago
et pour free ?