Liste des fonctions de chaîne
Plus de fonctions que la date et l'heure - uniquement le type String. Qui en SQL est donné par les types CHAR(n) et VARCHAR(n). Rappelons les plus populaires d'entre eux :
Fonction | Description | |
---|---|---|
1 | LONGUEUR(chaîne) | Renvoie la longueur de la chaîne passée en octets |
2 | CHAR_LENGTH(chaîne) | Renvoie la longueur de la chaîne passée en caractères |
3 | LOCATE(substr,str), | Recherche une sous-chaîne dans une chaîne similaire à la méthode indexOf() |
4 | LOCATE(substr,str,pos) | Recherche une sous-chaîne dans une chaîne commençant à pos |
5 | CONCAT(str1,str2,...) | Concatène plusieurs lignes |
6 | SUBSTR(), SUBSTRING() | Renvoie une sous-chaîne donnée par une plage de caractères |
7 | INFÉRIEUR(str) | Convertit une chaîne en minuscule |
8 | MAJUSCULE(str) | Convertit une chaîne en majuscule |
9 | REMPLACER() | Remplace une sous-chaîne dans une chaîne |
dix | CORRESPONDRE() | Vérifie si une chaîne correspond à un modèle donné |
onze | TRIM(chaîne) | Coupe les caractères vides au début et à la fin d'une chaîne |
12 | LTRIM(str) | Supprime les caractères vides au début d'une chaîne |
13 | RTRIM(chaîne) | Coupe les caractères vides à la fin d'une chaîne |
14 | TO_BASE64(chaîne) | Convertit une chaîne en Base64 |
15 | FROM_BASE64(chaîne) | Convertit une chaîne à partir de Base64 |
J'ai délibérément regroupé les fonctions en petits groupes pour faciliter la compréhension de leur utilisation. Ci-dessous, nous considérerons une fonction de chaque groupe. Vous pouvez trouver une liste complète des fonctions pour travailler avec des chaînes dans la documentation officielle .
Convertissons la chaîne
Traitons d'abord les fonctions les plus simples qui convertissent simplement une chaîne en une forme légèrement différente. Par exemple, convertissez une chaîne en majuscules et minuscules. En général, leur comportement est similaire aux mêmes fonctions du langage Java.
Je vais donc vous donner un tableau avec quelques exemples.
# | Demande | Résultat |
---|---|---|
1 | SÉLECTIONNER LA LONGUEUR ('texte') | 4 |
2 | SÉLECTIONNER LA LONGUEUR ('Bonjour') | 12 |
3 | SÉLECTIONNER BAS ('Bonjour') | Bonjour |
4 | SÉLECTIONNER LE MAJUSCULE ('Bonjour') | BONJOUR |
5 | SELECT SUBSTR ('Bonjour', 2, 3) | rive |
6 | SELECT SUBSTR ('Salut, comment vas-tu ?', 8) | Comment allez-vous? |
Les fonctions fonctionnent comme prévu, tout comme leurs homologues du JDK.
Seul bémol : dans la première ligne, le résultat est 4 et non 8. Le fait est que 1 octet (encodage ASCII) est utilisé dans la requête pour encoder les caractères latins. Mais si vous travaillez avec des données de la base de données, la longueur de la chaîne dépendra des paramètres d'encodage de la base de données . Vous trouverez de nombreuses surprises en travaillant avec la base de données :)
Actions complexes avec des chaînes
Eh bien, regardons des choses plus complexes lorsque nous travaillons avec des chaînes. Que proposeriez-vous...
Affichez les tâches du tableau des tâches, et si la date limite de la tâche est déjà passée, ajoutez le mot EXPIRÉ à la description de la tâche !
Ça a l'air intéressant. Bien que nous n'ayons pas encore appris les conditions complexes, simplifions un peu la tâche. Écrivons simplement une requête qui affichera une liste des tâches passées, mais assurez-vous d'ajouter le mot « EXPIRÉ ! » au titre. .
Pour ce faire, nous devrons utiliser la fonction CONCAT :
SELECT CONCAT( 'EXPIRED! ', name) FROM task
WHERE deadline < CURDATE()
Le résultat de cette requête sera :
concat('EXPIRÉ! ', nom) |
---|
EXPIRÉ! Correction d'un bug sur le frontend |
Recommandation. Si vous avez juste besoin de convertir les données sous une forme légèrement différente, cela peut également être fait au niveau du code Java. Mais si vous souhaitez utiliser des fonctions de chaîne côté serveur SQL (à l'intérieur de WHERE), vous ne pouvez certainement pas vous en passer.