La fonction UPPER() dans le langage SQL permet de transformer tous les caractères en minuscules d’une chaîne de caractère en majuscules. Cette fonction peut donc avoir sont utilité pour présenter des résultats d’une certaine façon.
Attention : il faut surement faire attention à l’encodage utilisé. Avec MySQL, la fonction utilise par défaut le jeu ISO 8859-1 Latin1.
A noter : la fonction gère les caractères multi-octets (exemple : œ).
Compatibilité : la fonction SQL UPPER() fonctionne notamment sous MySQL, PostgreSQL, SQLite, SQL server et Oracle. A noter que sous MySQL et Oracle la fonction peut aussi être appelé grâce à l’alias UCASE().
Syntaxe
La syntaxe d’une requête utilisant cette fonction SQL est la suivante :
SELECT UPPER('Exemple');
Cette requête va retourner la chaîne suivante :
EXEMPLE
Cet exemple démontre bien que tous les caractères en minuscules vont passer en majuscule. La première lettre étant déjà en majuscule, elle reste la même.
Exemple
Imaginons une application ayant des utilisateurs. Cette application utilise une table qui stock le prénom, le nom et la ville de chaque utilisateur.
Table utilisateur :
id | prenom | nom | ville |
---|---|---|---|
1 | Constant | Laborde | Toulouse |
2 | Benjamin | Rolland | Lyon |
3 | Cosette | Tellier | Bordeaux |
4 | Paul | Duchemin | Grenoble |
Afficher les résultats avec des majuscules
Il est possible d’afficher les prénoms et les noms en majuscules en utilisant la requête SQL suivante :
SELECT id, UPPER(prenom) AS prenom_upper, UPPER(nom) AS nom_upper, ville FROM utilisateur
Résultat :
id | prenom_upper | nom_upper | ville |
---|---|---|---|
1 | CONSTANT | LABORDE | Toulouse |
2 | BENJAMIN | ROLLAND | Lyon |
3 | COSETTE | TELLIER | Bordeaux |
4 | PAUL | DUCHEMIN | Grenoble |
Chercher un prénom en majuscule
Imaginons que l’utilisateur recherche un prénom en utilisant des majuscules et que l’ont sais que la table stock les prénoms en minuscule. Pour pouvoir retrouver un utilisateur à partir de son prénom en majuscule, il suffirait alors d’utiliser la fonction UPPER() dans la clause WHERE, comme ceci:
SELECT id, prenom, nom, ville FROM utilisateur WHERE UPPER(prenom) = 'PAUL'
Résultat :
id | prenom | nom | ville |
---|---|---|---|
4 | Paul | Duchemin | Grenoble |
En savoir plus
Il existe une fonction similaire qui permet quant a elle de transformer un texte en minuscule : la fonction LOWER().
Bon à savoir : la fonction SQL UPPER() s’apparente en quelque sorte à la fonction strtoupper() de PHP ou toUpperCase() de Java ou javascript.