© Éditions Eyrolles
95
chapitre n° 4
Interrogation des données
Alias
Il n’est pas permis d’utiliser un alias de colonne dans la clause WHERE. Cette recommandation
de la norme s’explique par le fait que certaines expressions pourraient ne pas être déterminées
pendant que la condition WHERE est évaluée.
Ainsi, la requête suivante renvoie une erreur alors qu’elle ne contient pourtant pas d’expression litigieuse. Il faudra ici remplacer « c1 » par « aliasDesPilotes.compa ».
mysql> SELECT aliasDesPilotes.compa AS c1, aliasDesPilotes.nom
FROM Pilote aliasDesPilotes WHERE c1 = 'AF';
ERROR 1054 (42S22): Unknown column 'c1' in 'where clause'
Fonctions
MySQL propose un grand nombre de fonctions qui s’appliquent dans les clauses SELECT ou
WHERE d’une requête. La syntaxe générale d’une fonction est la suivante :
nomFonction(colonne1 | expression1 [,colonne2 | expression2 …])
• Une fonction monoligne agit sur une ligne à la fois et ramène un résultat par ligne. On distingue quatre familles de fonctions monolignes : caractères, numériques, dates et conversions
de types de données. Ces fonctions peuvent se combiner entre elles (exemple :
MAX(COS(ABS(n))) désigne le maximum des cosinus de la valeur absolue de la colonne n).
• Une fonction multiligne (fonction d’agrégat) agit sur un ensemble de lignes pour ramener un
résultat (voir la section Regroupements).
Caractères
Interrogeons la table suivante en utilisant des fonctions pour les caractères :
Figure 4-4 Table Pilote
Pilote
brevet
prenom
nom
surnom
compa
PL-1
Gratien
viel
dba
AF
PL-2
Didier
donsez
smith
AF
PL-3
richard
Grin
Faucon
SING
PL-4
placide
Fresnais
cool
CAST
PL-5
Daniel
vielle
jones
SING
PL-6
Francoise
tort
NormaleSup
CAST
95
chapitre n° 4
Interrogation des données
Alias
Il n’est pas permis d’utiliser un alias de colonne dans la clause WHERE. Cette recommandation
de la norme s’explique par le fait que certaines expressions pourraient ne pas être déterminées
pendant que la condition WHERE est évaluée.
Ainsi, la requête suivante renvoie une erreur alors qu’elle ne contient pourtant pas d’expression litigieuse. Il faudra ici remplacer « c1 » par « aliasDesPilotes.compa ».
mysql> SELECT aliasDesPilotes.compa AS c1, aliasDesPilotes.nom
FROM Pilote aliasDesPilotes WHERE c1 = 'AF';
ERROR 1054 (42S22): Unknown column 'c1' in 'where clause'
Fonctions
MySQL propose un grand nombre de fonctions qui s’appliquent dans les clauses SELECT ou
WHERE d’une requête. La syntaxe générale d’une fonction est la suivante :
nomFonction(colonne1 | expression1 [,colonne2 | expression2 …])
• Une fonction monoligne agit sur une ligne à la fois et ramène un résultat par ligne. On distingue quatre familles de fonctions monolignes : caractères, numériques, dates et conversions
de types de données. Ces fonctions peuvent se combiner entre elles (exemple :
MAX(COS(ABS(n))) désigne le maximum des cosinus de la valeur absolue de la colonne n).
• Une fonction multiligne (fonction d’agrégat) agit sur un ensemble de lignes pour ramener un
résultat (voir la section Regroupements).
Caractères
Interrogeons la table suivante en utilisant des fonctions pour les caractères :
Figure 4-4 Table Pilote
Pilote
brevet
prenom
nom
surnom
compa
PL-1
Gratien
viel
dba
AF
PL-2
Didier
donsez
smith
AF
PL-3
richard
Grin
Faucon
SING
PL-4
placide
Fresnais
cool
CAST
PL-5
Daniel
vielle
jones
SING
PL-6
Francoise
tort
NormaleSup
CAST
