PHP - MySQL [Retour au menu]
SQL : Sélection, modification, suppression des données

Select, From, *, Where, Like et %, Tris avec Order By Asc|Desc, Suppression de données avec Delete, insertion, Modification avec Update

Petite astuce : Si vous disposez d'Access et que vous le maîtrisez quelque peu, vous pouvez apprendre la syntaxe SQL à moindre effort : Il vous suffit de créer une requête, et d'aller visualiser comment elle s'écrit en SQL en allant dans le menu "Affichage/Mode SQL"

Préparation de la table

Soit la table :

CREATE TABLE T_Celebrite
  (
  Titre        varchar (12),
  NomCelebrite varchar (30),
  Prenom       varchar (20),
  Domaine      varchar (20),
  Pays         varchar (20),
  EtatCivil    varchar (20),
  Salaire      int     (20)
  );

que j'ai rempli avec une centaine de célébrités trouvées dans ce fichier texte que j'ai exécuté comme une requête SQL de création d'enregistrements.

Exemple basique : SELECT et FROM

Cet exemple se contente d'afficher tous les noms dans l'ordre ou ils sont stockés dans la table T_Celebrite

SELECT `NomCelebrite` FROM `T_Celebrite`;

Affichage de tous les champs : L'étoile *

SELECT * FROM T_Celebrite

La clause WHERE

WHERE permet de sélectionner une partie des enregistrements.

L'exemple suivant affiche le prénom, le nom et le salaire des célébrités dont le salaire est supérieur à 10000 francs :

SELECT Prenom, NomCelebrite, Salaire
FROM T_Celebrite
WHERE
Salaire > 10000

La clause LIKE, %

Like permet d'extraire seulement une partie d'un champ.

L'exemple suivant extrait les gens dont le prénom commence par M

SELECT Prenom, NomCelebrite
FROM T_Celebrite
WHERE Prenom LIKE "M%"

Les tris : La clause ORDER BY ASC|DESC

L'exemple suivant affiche tous les gens qui possèdent la lettre E dans leur nom, triés par ordre alphabétique de leur domaine d'activité, et, pour chaque domaine, du plus riche au plus pauvre :

SELECT Prenom, NomCelebrite, Domaine, Salaire
FROM T_Celebrite
WHERE NomCelebrite LIKE "%e%"
ORDER BY Domaine ASC, Salaire DESC

Suppression de données : La clause DELETE

Pour vider entièrement une table

DELETE FROM T_Celebrite

Supprimer les hommes :

DELETE FROM T_Celebrite
WHERE Titre LIKE "Monsieur"

Modification de données : La clause UPDATE

La ligne suivante précise que le salaire de Weissmuller doit passer à 9999 :

UPDATE T_Celebrite SET Salaire=9999 WHERE NomCelebrite='Weissmuller'

On peut également modifier une donnée par rapport à elle même. La ligne suivante augmente le salaire de Weissmuller de 10 francs :

UPDATE T_Celebrite SET Salaire=Salaire+10 WHERE NomCelebrite='Weissmuller'

Cette méthode est pratique pour compter le nombre de fois ou un utilisateur se logue par exemple, ou pour le laisser modifier lui-même son mot de passe.

Ajout de données : INSERT INTO

$LaRequete = "INSERT INTO T_LaTable (Champ1, Champ18, Champ4) VALUES ('Truc','Machin', 'Bidule')";
mysql_query($query);

---