Vous êtes sur la page 1sur 19

MySQL / PHP

• Introduction SQL

• Commandes SQL

• MySQL

• Intégration de mySQL dans PHP


SQL : introduction
Structured Query Language
SQL est avant tout une norme de gestion des bases de données
relationnelles (SGBDR).

SQL est un "langage" de type "déclaratif" : on spécifie ce que l'on veut


faire et la machine décide comment elle doit l'exécuter.

Avec SQL on ne sait pas comment la machine exécute la demande, ni


même dans quel ordre elle décompose le traitement de la requête
en différentes tâches, ni d’ailleurs même comment elle les
synchronise. (contrairement aux langages procéduraux).

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : introduction
Pré-requis SGBDR :

• Les données sont systématiquement présentées sous forme de tables.

• Les bases de données repose sur l'algèbre relationnel et sur la


théorie des ensembles. Il faut donc penser en terme d'ensemble et de
logique.

• Il existe une grande indépendance entre la couche abstraite que


constitue le SGBDR et la couche physique que sont les fichiers
constituant la base de données => les fichiers ne sont donc pas
arrangés dans l'ordre des colonnes et dans l'ordre d'insertion des
données.

• Il n'existe pas d'ordre spécifique pour les tables dans une base ou
pour les colonnes dans une table => Les tables, colonnes doivent être
repérés uniquement par leur nom.

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : introduction
Le SQL comporte 5 grandes parties

DDL : " Data Definition Language " : permet de créer des bases de données,
des tables, des index, des contraintes.
Exemple : CREATE, ALTER, DROP…

DML : " Data Manipulation Language " : permet de manipuler les données.
Exemple : INSERT, UPDATE, DELETE…

DCL : " Data Control Language " : permet de gérer les droits d'accès aux
tables.
Exemple : GRANT, REVOKE

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : introduction
TCL : " Transaction Control Language " : permet de contrôler la bonne
exécution des transactions.
Exemple : COMMIT, ROLLBACK…

SQL intégré : " Embedded SQL " : éléments procéduraux que l'on intégré à
un langage hôte.
Exemple : SET, DECLARE CURSOR, OPEN, FETCH...

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : types de données
CHAR : valeurs alpha de longueur fixe
VARCHAR : valeur alpha de longueur maximale fixée
TEXT : suite longue de caractères de longueur indéterminé
INT, SMALLINT : entier long
FLOAT, REAL : réel à virgule flottante
BIT : chaîne de bit de longueur fixe
BIT VARYING : chaîne de bit de longueur maximale
DATE : date du calendrier grégorien
TIME : temps sur 24 heures

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : commandes
(une commande SQL doit se terminer par un ;)
Connexion à une base :

CONNECT
[ TO nom_serveur ]
[ DATABASE nom_basededonnées ]
[ AS nom_connexion ]
[ USER ] id_utilisateur IDENTIFIED BY mot_passe

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : commandes
Création d'une table :

CREATE TABLE
nom_table
(nom_champ1 TYPE (XX) [not null/null],
nom_champ2 TYPE (XX) [not null/null],
PRIMARY KEY (nom_champ))

PRIMARY KEY : précise si la colonne est la clef de la table. ATTENTION :


nécessite que la colonne soit NOT NULL.

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : commandes
SHOW DATABASES : informations sur les bases de données (selon les droits de
l'utilisateur)

SHOW TABLE STATUS (mysqlshow --status db_name) : fournit des


informations sur la table.

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : commandes

Suppression d'une table :


DROP TABLE [IF EXISTS] nom_table [, nom_table ] ...

Modification d'une table :


ALTER TABLE nom_table ADD/MODIFY/CHANGE/DROP nom_champ

Exemple :

ALTER TABLE client ADD email VARCHAR(30)


ALTER TABLE client MODIFY email VARCHAR(50)
ALTER TABLE client CHANGE email courriel VARCHAR(50)
ALTER TABLE client DROP courriel

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : commandes
INSERT est l'instruction qui permet d'insérer des données dans une table.

INSERT [INTO] nom_table


[(liste_des_colonnes_visées,…)]
{VALUES (liste_des_valeurs,…)}

Exemple :
INSERT INTO personne (nom, prenom) VALUES ('dupont' , 'toto')

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : commandes
UPDATE est l'instruction qui permet de modifier des données dans une table.

UPDATE nom_table
SET colonne = valeur [,colonne = valeur]
[WHERE clause]

Exemple :
UPDATE personne SET nom, prenom VALUES ('toto' , 'dupont')

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : commandes
DELETE est l'instruction qui permet de supprimer des données dans une table.

DELETE [FROM] nom_table


[WHERE clause]

Introduction SQL – Commandes – MySQL – PHP / MySQL


SQL : commandes
SELECT est l'instruction qui permet d'extraire des données d'une table.
SELECT [DISTINCT/ALL] * / liste_colonnes [AS nom]
FROM nom_table
[WHERE prédicats]
[GROUP BY ordre_groupes]
[HAVING condition]
[ORDER BY ] liste_colonnes [ASC / DESC ]

Exemple :
SELECT nom, prenom FROM personne WHERE age = ‘18'

Introduction SQL – Commandes – MySQL – PHP / MySQL


MySQL
MySQL est un système de gestion de Bases de Données (SGBD) fonctionnant sous
Linux et Windows. Il est basé sur la norme SQL.

Il existe en version licence GPL gratuite et en version licence commerciale.

MySQL est livré avec :


• Un serveur
• Un client en mode texte
• Des outils d'administration, d'import, d'export en ligne de commande
• Les pilotes ODBC, JDBC.
• Des API pour les langages C et C++.
• Une interface d'administration graphique: MySQL Control Center

A connaître :
PHPMyAdmin : un des outils d'administration les plus complets et les plus célèbres pour
MySQL. Se présente sous la forme d'une interface web écrite en PHP.

Introduction SQL – Commandes – MySQL – PHP / MySQL


PHP et MySQL
L'utilisation de MySQL avec PHP s'effectue en 4 temps :

 Connexion au serveur de données


 Sélection de la base de données
 Requête
 Exploitation des requêtes

On peut ajouter à ça, un 5ème temps facultatif : fermeture de la connexion.

Introduction SQL – Commandes – MySQL – PHP / MySQL


PHP et MySQL
Connexion :
$connection = mysql_connect('hote', 'login','pass');

Sélection de la base :
mysql_select_db('base',[connexion]);

Requête :
$requete = "{commande SQL}";
$resultat = mysql_query($requete, [connexion]);
$enregistrement = mysql_fetch_row($resultat);
$enregistrement = mysql_fetch_assoc($resultat);
$enregistrement = mysql_fetch_robject($resultat);

Introduction SQL – Commandes – MySQL – PHP / MySQL


PHP et MySQL
Exploitation :
$enregistrement = mysql_fetch_row($resultat); retourne un tableau simple
$enregistrement = mysql_fetch_assoc($resultat); retourne un tableau associatif
$enregistrement = mysql_fetch_object($resultat); retourne un objet

Mysql_fetch retourne FALSE quand il n'y a pas d'enregistrement ou quand il y en a plus.


On peut donc utiliser :
while($enregistrement = mysql_fetch_assoc($resultat)){
$nom[] = $enregistrement["nom"];
$prenom[ ] = $enregistrement["prenom"];
}

$nombre = mysql_num_rows($resultat);

Introduction SQL – Commandes – MySQL – PHP / MySQL


PHP et MySQL
Fermeture de la connexion :
mysql_close( );

Affichage des erreurs :


Mysql_error( );

Exemple :
$resultat = mysql_query($requete) or die ('Erreur :'.mysql_error( ));

Introduction SQL – Commandes – MySQL – PHP / MySQL