Retourner � la page d'accueil de TJSRetourner � la page d'accueil de TJS
 
Accès aux données par SQL

Insérer une ligne dans une table
Pour insérer une ligne dans une table, on utilise la syntaxe :
INSERT INTO nom_table (colonne1, colonne2, colonne3)
VALUES ("val1", "val2", "val3");


Par exemple pour insérer un produit :
INSERT INTO Produit (Nom, Prix, Vignette, Categorie)
VALUES ("AMD Athlon XP 2000 +", 98, "vignette/athlon.gif", 1);

Là encore, il n'est pas nécessaire de renseigner la colonne Identifiant car MySQL génère automatiquement l'incrément.

Copiez cette requête dans la zone de saisie de PHPMyAdmin et validez par le bouton "Exécuter".

Pour insérer les produits dans la table, copiez cet ensemble d'instructions.
INSERT INTO Produit (Nom, Prix, Vignette, Categorie)
VALUES ("Intel Pentium 4 2GHz", 245, "vignette/p4.gif", 2);
INSERT INTO Produit (Nom, Prix, Vignette, Categorie)
VALUES ("Intel Céléron 4 2GHz", 145, "vignette/celeron.gif", 2);
INSERT INTO Produit (Nom, Prix, Vignette, Categorie)
VALUES ("Barette DDR 512 Mo PC2100", 56, "vignette/ddr.gif", 3);

Voir des lignes dans une table
Pour afficher les lignes d'une table, on utilise la syntaxe :
SELECT colonne1, colonne2, colonne3
FROM nom_table
WHERE colonne1 = "val1"
AND colonne2 = "val2"
ORDER BY colonne1;

Par exemple, pour afficher les noms de tous les produits par ordre alphabétique :


SELECT Nom
FROM Produit
ORDER BY Nom;

Pour afficher, par ordre de prix, tous les produits ayant un prix supérieur à 100 € :


SELECT Prix, Nom
FROM Produit
WHERE Prix > 100
ORDER BY Nom;

Pour afficher, toutes les colonnes d'une table on peut aussi utiliser le caractère * :


SELECT *
FROM Produit
WHERE Prix > 100
ORDER BY Nom;

Supprimer une ligne dans une table
Pour supprimer une ou plusieurs lignes d'une table il faut utiliser la syntaxe :
DELETE FROM nom_table
WHERE colonne1 = "val1";


ATTENTION : Il faut bien vérifier la condition du WHERE car le risque est grand d'effacer toutes les lignes par mégarde
Pour supprimer le produit dont l'identifiant vaut 1 :
DELETE FROM Produit
WHERE Identifiant = 1;


Modifier une ligne dans une table
Pour modifier une ou plusieurs lignes d'une table, il faut utiliser la syntaxe :
UPDATE nom_table
SET colonne1 = "nouvelle_val1",
    colonne2 = "nouvelle_val2"

WHERE colonne1 = "val1";

ATTENTION : comme pour l'instruction DELETE, il faut faire très attention à la condition WHERE pour ne pas mettre à jour toutes les lignes de la table par mégarde.

Pour modifier le nom de la catégorie "Processeur Intel" en "Processeur INTEL" :
UPDATE Categorie
SET Nom = "Processeur INTEL"
WHERE Nom = "Processeur Intel";


Pour augmenter de 10% tous les prix des produits :
UPDATE Produit
SET Prix = Prix + 10 / 100 * Prix;

Faire des calculs sur des données
Les bases de données ne servent pas seulement à enregistrer les données. Elles permettent également de les manipuler facilement. Voici quelques exemples de requêtes.

Pour compter le nombre de produits dans une catégorie :
SELECT count(Identifiant)
FROM Produit
WHERE Categorie = 2

Pour calculer la moyenne des prix de tous les produits :
SELECT avg(Prix)
FROM Produit

Le SQL possède également une fonction de regroupement très pratique :
SELECT Categorie, count(Identifiant), avg(Prix)
FROM Produit
GROUP BY Categorie

Dans cette requête, MySQL regroupe tous les produits par catégorie et calcule le nombre de produits et la moyenne des prix par catégorie.
Il existe des dizaines d'autres fonctions de calcul dans le SQL disponible dans la documentation officielle.

Les jointures entre tables
On a vu pour le moment des requêtes sur une seule table. SQL permet de manipuler en même temps plusieurs tables par l'intermédiaire des jointures.
Par exemple, si on veut en une seule requête le nom d'un produit et le libellé de sa catégorie, on écrit :
SELECT Produit.Nom, Produit.Prix, Categorie.Nom
FROM Produit, Categorie
WHERE Produit.Categorie=Categorie.Identifiant
ORDER BY Produit.Nom


Pour faire une jointure, il faut préciser les noms des 2 tables dans le FROM, séparés par une virgule.
La condition WHERE contient le lien entre la clé externe (Produit.Categorie) et la clé primaire de l'autre table (Categorie.Identifiant).

On peut aussi faire une jointure avec des regroupements :
SELECT Categorie.Nom, count(Produit.Identifiant)
FROM Produit, Categorie
WHERE Produit.Categorie=Categorie.Identifiant
GROUP BY Categorie.Nom


Avec les jointures, on commence à rentrer dans le vif du sujet et dans toute la puissance (et parfois aussi la complexité) des bases de données.
Ne vous inquiétez pas si vous n'avez pas encore bien compris le SQL. Ca ne s'apprend pas en 15 minutes.


Nous avons vu les principales fonctionnalités du SQL sous MySQL. C'est une vraiment une infime partie du SQL. La documentation officielle de MySQL contient près de 900 pages. L'objectif n'est pas de tout détailler, mais bien de donner les premiers éléments permettant de comprendre l'utilisation du SQL.
Voyons maintenant comment accéder aux données par le PHP.


Page Précédente Page Suivante

Troisième édition Tout JavaScript chez Dunod

Tout JavaScript le livre chez DunodEn savoir plus
Sortie le 4 janvier 2023

Version papier 29€90
Format électronique 22€99.

Commandez en ligne

Chercher une fonction, un objet, ...

Le 23/04/2024 20:59:59 sur php 7 en 42.49 ms