Les bases de données relationnelles

publicité
Comment stocke-t-on des données sur un site web ?
Sommaire
Introduction aux bases de données
II. Structure d’une base de données
III. Administrer la base avec PHPMyadmin
IV. Le langage SQL
I.
Pourquoi stocker ses données dans une base de
données ?
Rappel : organisation des
langages d’un site web
Rappel : organisation des
langages d’un site web

XHTML et CSS permettent de réaliser
une page web qui s’affiche dans le
navigateur

PHP génère du code XHTML pour le
personnaliser en fonction du visiteur

MySQL stocke les données du site web
(exemple : liste des membres)
2 façons de stocker des données
Dans des fichiers
• Accès très
rapide
• Structure et
lecture des
fichiers
complexe à
mettre en œuvre
Dans une base de
données
• Accès un peu
plus lent
• … mais pas
besoin de se
soucier de la
lecture des
fichiers
MySQL

MySQL est un SGBDR (Système de
Gestion de Base de Données
Relationnelle)

C’est un programme

Son rôle est de stocker des données de
manière organisée, hiérarchisée
MySQL

MySQL est le plus célèbre SGBDR
open-source et gratuit

C’est le plus utilisé, notamment sur le
web :





Wikipédia
Google
eBay
Youtube
Facebook
Le langage SQL

On « parle » à la base de données
(MySQL) dans un langage appelé SQL
(Structured Query Language)

SQL est un langage standardisé, il est
utilisé par différents logiciels de gestion de
base de données

MySQL n’est donc pas le seul logiciel
disponible pour gérer une base de
données !
Les concurrents de MySQL
Oracle
• Propriétaire
• Très complet et très puissant
• Le leader mondial des bases de données
Microsoft
SQL Server
• Propriétaire
• Généralement utilisé avec d’autres
technologies Microsoft
PostgreSQL
• Libre
• Plus de fonctionnalités que MySQL
• Moins populaire que MySQL
SQLite
• Libre
• Très très léger, facile à embarquer avec un
logiciel
Points communs avec les tableurs
Terrain connu : les tableurs
Terrain connu : les tableurs

La base de données (BDD) organise les
informations comme un tableur

Il y a un vocabulaire spécifique à
connaître pour la BDD
Vocabulaire de la BDD

Dans un tableur, on parle de :
 Lignes
 Colonnes
 Feuilles (pages)

Dans une base de données :
 Chaque ligne est appelée une entrée
 Chaque colonne est appelée un champ
 Chaque feuille est appelée une table
Vocabulaire de la BDD
Vocabulaire de la BDD

Une base de données peut contenir plusieurs
tables

Une table est un tableau qui stocke le même
type de données. Ex :
 La table des membres
 La table des statistiques de connexion
 La table des messages du forum

Il est possible de séparer ses tables dans
plusieurs bases, mais c’est généralement
inutile. Une base de données suffit.
Les ID

Très souvent, on crée un champ (= une
colonne) appelé « id » pour numéroter
les entrées
id
nom
prenom
ecole
promotion
specialisation
1
ABRAN
Benoît
EFREI
2011
SI
2
ADOS
Luc
EFREI
2011
SI
3
BERANGER
Aldéric
EFREI
2011
TR
4
BOURELLY
François
EFREI
2012
SI
5
BUSCAN
Romain
EFREI
2011
TR
Table « eleves »
Les clés primaires

Les ID permettent d’avoir un identifiant unique
pour chaque ligne. Ils forment alors la clé
primaire de la table.

Les ID ne sont pas obligatoires. Une clé
primaire peut aussi être un texte (comme le
nom de famille). Ce qui compte, c’est qu’il n’y
en ait pas 2 identiques dans une même table.

Une clé primaire peut être composée de 2
champs ou plus (ex : nom + prénom au cas où
il y ait 2 fois le même nom de famille).
Un accès facile à prendre en main de la base de données
Ligne de commande

Normalement, on accède à la base de
données MySQL à travers une interface
en ligne de commande :
PHPMyAdmin

PHPMyAdmin est un outil qui permet de
manipuler sa base de données via une
interface graphique
WAMP Server

Pour installer sur son ordinateur
simultanément PHP, MySQL et
PHPMyAdmin, on peut utiliser un
package tout prêt :
 WAMP sous Windows :
http://www.wampserver.com/dl.php
 MAMP sous Mac :
http://www.mamp.info/en/download.html
 XAMPP sous Windows / Mac / Linux :
http://www.apachefriends.org/fr/xampp.html
Utiliser PHPMyAdmin

PHPMyAdmin permet de créer
facilement des bases et des tables.

On peut aussi ajouter et lire des
données, mais le plus souvent on le fait
par l’intermédiaire de PHP pour afficher
le résultat sur son site web à sa façon.
Utiliser PHPMyAdmin

Apprenez à créer une table et à la
remplir de données :
http://www.siteduzero.com/tutoriel-314496-phpmyadmin.html

Créez une table pour stocker les élèves
pour commencer et insérez quelques
données factices. Vous en aurez besoin
pour vous entraîner dans la prochaine
partie.
Comment parler à la base de données ?
Parler avec MySQL

MySQL se charge d’enregistrer dans des
fichiers sur le disque dur pour vous. Vous
n’avez pas à vous en soucier.

MySQL organise les données de manière
optimisée pour accélérer les accès aux
données.

Vous devez « parler » à MySQL pour
récupérer les données qui vous intéressent.
On utilise pour cela le langage SQL.
Les requêtes SQL

On effectue des « requêtes » à MySQL en langage SQL.

4 grandes familles de requêtes :





SELECT : récupérer des données (lire la table)
INSERT : insérer des données (remplir la table)
UPDATE : modifier des données (mettre à jour la table)
DELETE : supprimer des données
Il y en a d’autres, moins fréquemment utilisées :
 CREATE TABLE : crée une table
 ALTER TABLE : modifie une table (ajoute / supprime
des champs…)
 Etc.
Parler avec MySQL

PHPMyAdmin offre une interface pour
écrire ses propres requêtes SQL.

On peut aussi écrire des requêtes SQL
depuis un script PHP (on le verra lors de
la prochaine séance)
La requête SELECT

De tous les types de requêtes, SELECT est le
plus complexe à appréhender.

On peut en faire une utilisation très simple comme
très complexe (en fusionnant par exemple des
données issues de 2 tables différentes).

Testez les prochains exemples de code SQL dans
PHPMyAdmin et n’hésitez pas à faire vos propres
tests.
La requête SELECT


SELECT * FROM eleves;
Sélectionne toutes les entrées et tous les champs de la table eleves.
id
1
2
nom
ABRAN
ADOS
3
BERANGER Aldéric
EFREI
2011
TR
4
5
BOURELLY François
BUSCAN
Romain
EFREI
EFREI
2012
2011
SI
TR
prenom
Benoît
Luc
ecole
EFREI
EFREI
promotion specialisation
2011
SI
2011
SI
SELECT nom, prenom FROM eleves;
Sélectionne toutes les entrées mais uniquement les champs nom et
prenom de la table eleves.
nom
ABRAN
ADOS
prenom
Benoît
Luc
BERANGER Aldéric
BOURELLY François
BUSCAN
Romain
La requête SELECT


SELECT * FROM eleves WHERE specialisation='SI';
Uniquement les élèves en spé SI
id
1
2
nom
ABRAN
ADOS
4
BOURELLY François
prenom
Benoît
Luc
ecole
EFREI
EFREI
EFREI
promotion specialisation
2011
SI
2011
SI
2012
SI
SELECT * FROM eleves WHERE specialisation='SI‘ AND
promotion < 2012;
Uniquement les élèves en spé SI des promos antérieures à 2012
id
1
2
nom
ABRAN
ADOS
prenom
Benoît
Luc
ecole
EFREI
EFREI
promotion specialisation
2011
SI
2011
SI
La requête SELECT

SELECT nom FROM eleves WHERE nom LIKE 'A%';
Les élèves dont le nom commence par A (% est un joker)
nom
ABRAN
ADOS

SELECT * FROM eleves ORDER BY prenom;
Triés par prénom
id
3
1
nom
prenom
BERANGER Aldéric
ABRAN
Benoît
ecole
EFREI
EFREI
4
BOURELLY François
EFREI
2012
SI
2
5
ADOS
BUSCAN
EFREI
EFREI
2011
2011
SI
TR
Luc
Romain
promotion specialisation
2011
TR
2011
SI
La requête SELECT


SELECT * FROM eleves ORDER BY promotion, prenom;
Triés par promotion puis par prénom
id
3
1
nom
prenom
BERANGER Aldéric
ABRAN
Benoît
ecole
EFREI
EFREI
2
ADOS
EFREI
2011
SI
5
4
BUSCAN
Romain
BOURELLY François
EFREI
EFREI
2011
2012
TR
SI
Luc
promotion specialisation
2011
TR
2011
SI
SELECT * FROM eleves ORDER BY promotion, prenom LIMIT
0,3;
Prend uniquement 3 entrées, en commençant par la première entrée de la
liste (n°0). Permet de tronquer un résultat.
id
3
1
nom
prenom
BERANGER Aldéric
ABRAN
Benoît
ecole
EFREI
EFREI
2
ADOS
EFREI
Luc
promotion specialisation
2011
TR
2011
SI
2011
SI
Les autres requêtes

Ce n’est qu’une introduction à SELECT, pour
aller plus loin :
 http://www.siteduzero.com/tutoriel-3-9866-pour-aller-
plus-loin.html

Pour lier 2 tables entre elles et créer des
relations :
 http://www.siteduzero.com/tutoriel-3-32310-creer-
des-relations-dans-votre-base-de-donnees.html
 http://www.siteduzero.com/tutoriel-3-38831-lesjointures-moyen-d-economiser-des-ressources.html
 http://www.siteduzero.com/tutoriel-3-32078-sqlselection-multi-tables.html
Pour ajouter, supprimer,
modifier…

Les requêtes INSERT, UPDATE et
DELETE sont en général plus faciles à
utiliser qu’INSERT

Pour une introduction à ces requêtes,
voir : http://www.siteduzero.com/tutoriel3-14514-ecrire-des-donnees.html
Téléchargement