La clause « SELECT » sert à lister la ou les colonnes (ou champs) qui seront choisies. Si il y a plusieurs valeurs, on les sépare avec une virgule entre chaque ; et si on les choisies toutes, on peut mettre une astérisque pour aller plus vite.
La clause « FROM » sert à énoncer la ou les tables dans lesquelles on puise les colonnes (ou champs). Pour plusieurs tables, veillez à bien lire le chapitre >> jointures ;-)
exemple :
SELECTnom, prenomFROMpersonnes;
Le résultat retournera deux colonnes, le nom et le prénom de toutes les personnes de la table 'personnes'. C'est parce que tous les tuples de la table sont sélectionnés que l'on parle de projection...
Un attribut « DISTINCT » permet d'éliminer les doublons. Selon les versions de SQL, cette clause est soit générale (porte sur tout les champs du « SELECT ») soit spécialisée (sur une seule donnée, entre parenthèses). Les gains de performances et/ou les variations de nombre de résultats entre ces deux syntaxes sont durs à apprécier, mais les deux semblent fonctionner sans problèmes.
... mais dans ce cas là, on obtiendra un chiffre inférieur, car on élimine les homonymes. Attention, l'exemple n'est pas très approprié car les homonymes ne sont pas des doublons, mais c'est juste pour dire que l'on peut observer des différences dans le nombre de résultats...
I.2 Sélection de lignes ('sélection')
I.2.a les opérateurs
Les opérateurs de comparaison de prédicat sont les suivants :
À ce propos, les valeurs numériques s'écrivent directement dans les requêtes, mais les chaînes de caractères sont à mettre entre apostrophes (ou simples cotes).
Les caractères jokers « tiret » remplacent un seul caractère (alphanumérique), tandis que « pourcentage » remplace une chaîne de zéro à une infinité de caractères.
Le caractère « dièse » sert à mettre une ligne en commentaire, attention donc de ne pas en mettre dans des requêtes, certains SGBD les interprêtant au pied de la lettre, vos requêtes seraient coupées nettes !
I.2.b prédicats simples
On utilise la clause « WHERE », suivie d'un ou plusieurs prédicats ; seules les lignes répondant au test sur le(s) prédicat(s) seront retournées dans le résultat.
Un prédicat peut être composé, càd que l'on peut faire une requête sur deux champs (ou plus) dans la clause « WHERE », et mettre aussi bien « AND » que « OR » entre chacun (selon que l'on veut tous ou l'un/l'autre critères). De plus, l'utilisation de parenthèses permet de définir un ordre de priorité des prédicats.
SELECT { * | [liste de colonnes] } FROMtableWHEREpredicat = valeur [ { AND | OR } predicat2 = valeur [ ... ] ] ;
exemples :
# On recherche tout les analystes (programmeurs ou non), ayant au moins
# 25 mois d'ancienneté... SELECTnom, prenomFROMemployesWHEREfonctionLIKE'analyste%'ANDanciennete >= 25;
# On recherche tout les analystes (programmeurs ou non), ayant soit
# au moins 25 mois d'ancienneté soit un salaire strictement supérieur à 1'200 EUR... SELECTnom, prenomFROMemployesWHEREfonctionLIKE'analyste%'AND ( anciennete >= 25ORsalaire > 1200 );
I.2.d tri des résultats
Les résultats retournés par la requête le sont tel quel, il n'y a pas de tri ! C'est alors la clause « ORDER BY » qui permet d'ordonnancer les résultats par un champ, ou plusieurs... Certaines versions alternatives de SQL peuvent parfois utiliser la clause SORT BY, mais cette syntaxe n'est pas officielle et beaucoup moins répandue (il semblerait que ce ne soit qu'un synonyme).
Les tris sont implicitement croissants (« ASC ») mais peuvent être décroissants en rajoutant « DESC » à la fin. exemple :
SELECTnom, prenomFROMemployesWHEREfonctionLIKE'analyste%'AND ( anciennete >= 25ORsalaire > 1200 ) ORDER BYancienneteDESC, nomASC; # la même requête que plus haut, mais on tri d'abord sur l'ancienneté décroissante,
# puis sur le nom.
Les valeurs nulles sont toujours en tête du résultat, quel que soit l'ordre de tri.
Pour installer facilement et rapidement PHP, Apache et MySQL sous Windows. >> plus d'infos.
+ de liens
Vous voulez d'autres tutoriaux, d'autres scripts PHP ? Pas de problème, pour avoir tout ça, cliquez >> ici, et consultez aussi >> l'annuaire de liens.
Le PHP en chiffres
6 des dix plus importants sites français utilisent le PHP, contre 2 l'ASP et 2 une technologie non dévoilée.
1'200 fonctions, pour dessiner des images aux formats GIF ou PNG à la volée, tranformer ou créer des fichiers au format PDF, interroger des bases de données avec ou sans ODBC, sans parler de toutes les fonctions HTTP, la manipulation de tableaux, les fichiers, les fonctions mathématiques...
100'000 sites en PHP en janvier 1999, contre
6 millions à ce jour, le PHP ayant été lançé en version 1.0 en janvier 1994.
(source : SVM n°201 février 2002, citant Jupiter MMXI, Security-space et Netcraft)