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.