SQL-Clause WHERE et conditions
Clause WHERE et conditions.
Dans les exemples qui suivent, nous utiliserons la table ci-dessous comme référence.
| Table COMMENTAIRES | |||
| id | pseudo | commentaire | age |
| 1 | toto | Commentaire de toto | 12 |
| 2 | tata | Commentaire de tata | 41 |
| 3 | titi | Commentaire de titi | 24 |
| 4 | toto | Commentaire 2 de toto | 12 |
| 5 | zaza | Commentaire de zaza | 36 |
| 6 | tutu | Commentaire de tutu | 10 |
Syntaxe pour sélectionner une ou des données bien précises dans une table. Commande WHERE.
SELECT commentaire FROM COMMENTAIRES WHERE pseudo = 'toto'
Cette requête permet de sélectionner le ou les commentaires dont le pseudo utilisé est égal à "toto" et situé dans le champ "pseudo" de la table "COMMENTAIRES".
Cette requête affichera donc:
"Commentaire de toto" et "Commentaire 2 de toto".
Comme vous le remarquez, la syntaxe est un peut spécial. On peut définir la commande WHERE par le mot "DONT". Elle est suivit du nom du champ qui est visé, en l'occurence le champ "pseudo" et qui est égal ((=) est l'instruction) au pseudo que l'on souhaite, soit ('toto') qui est placé entre ce que l'on nome des quôtes simple ('), touche 4 de votre clavier .
Si on récapitule la chose, WHERE pseudo = 'toto' correspond donc à : "Dont le champ pseudo est égal à 'toto'".
Il existe, tout comme en PHP, une multitude de conditions associées à la clause WHERE.
| condition | Valeur | |
| = | signifie | Egal |
| != | signifie | Différent |
| < | signifie | Plus petit |
| > | signifie | Plus grand |
| <= | signifie | Plus petit ou égal |
| >= | signifie | Plus grand ou égal |
| AND ou && | signifie | Et |
| OR ou || | signifie | Ou |
| Note: Il existe d'autres conditions. | ||
Quelques exemples de requêtes SQL comportant des conditions différentes:
SELECT commentaire FROM COMMENTAIRES WHERE pseudo != 'toto'
Affichera tout les commentaires dont le pseudo du champ "pseudo" est différent de "toto".
SELECT age FROM COMMENTAIRES WHERE age < '30' AND age > '10'
Affichera tout les âges du champ "age" comprit entre 10 et 30.
SELECT id, pseudo FROM COMMENTAIRES WHERE id != '4' AND pseudo != 'toto' ORDER BY id ASC
Affichera les numéros du champ "id" et les pseudos du champ "pseudo" dont les numéros du champ "id" sont différents du numéro "4" et dont les pseudos du champ "pseudo" sont différents de "toto" par ordre Croissant en fonction du champ "id" (2, 3, 5 et 6).
DISTINCT
La commande DISTINCT permet d'éviter les doublons dans une requête.
Supposons que vous souhaitez afficher tout les pseudos de la table "COMMENTAIRES" sans aucun doublon.
La requête sera donc:
SELECT DISTINCT pseudo FROM COMMENTAIRES
Le pseudo "toto" étant utilisé 2 fois dans le champ "pseudo", l'instruction DISTINCT en selectionnera donc qu'un seul.
GROUP BY
La clause GROUP BY permet de regrouper des résultats.
SELECT age FROM COMMENTAIRES GROUP BY pseudo
Dans cette requête, GROUP BY va permettre de sélectionner tout les âges de la table COMMENTAIRES en les regroupants par pseudo. GROUP BY est toujours suivie du nom de la colonne sur laquelle on veut effectuer des regroupements.
Clause LIMIT
La clause LIMIT permet de récupérer qu'une partie des données.
Supposons que vous souhaitez afficher que les 5 premières entrées.
La requête sera donc:
SELECT * FROM COMMENTAIRES LIMIT 0, 5
Si vous souhaitez afficher les entrées à partir de l'entrée numéro 2 jusqu'à la sixième:
SELECT * FROM COMMENTAIRES LIMIT 1, 5Une explication s'impose
:
Le premier chiffre indique à partir de quelle entrée on commence à lire les données.
Le deuxième chiffre indique le nombre d'entrées à sélectionner.
Prenons le 2ième code comme exemple:
1 est la première entrée à partir de la quelle on commence à lire les données. Donc, c'est comme si en commençait à lire les données à partir de l'entrée numéro 2 puisque la 1ère entrée n'est pas comptabilisée.
5 est le nombre d'entrées à selectionner. 1 2 3 4 5 6

Un truc mémotechnique 1,5 :
Vous ajoutez +1 au premier chiffre pour savoir qu'elle est la première entrée affichée (1+1=2, donc 2 est la première entrée).
Vous additionnez les 2 chiffres pour savoir qu'elle sera la dernière entrée affichée (1+5=6, donc 6 est la dernière entrée affichée).


Signaler une erreur
SQL-Commande SELECT
Commandes SQL
SQL-Tri et regroupement de résultats



