Introduction

SQL est bien plus qu'un language de communication avec une base de données. C'est un véritable language de programmation.
Parmis ces fonctionnalité, il permet la manipulation de chaines. Voici quelques fonctions. La liste est volontairement limitée aux fonctions gérées par MySQL.
Vous trouverez une liste complete pour un grand nombre de systeme de base ici : (ToutEstFacile)

longueur d'une chaîne

CHAR_LENGTH(chaine)
Retourne la longueur de la chaîne de caractères.

monchamp	CHAR_LENGTH(monchamp)
Wikistuce	9
MySQL		5
SELECT monchamp, CHAR_LENGTH(monchamp) FROM matable

modification de casse

LOWER(chaine)
Retourne la chaîne de caractères en minuscules.

monchamp	LOWER(monchamp)
WikiStuce       wikistuce
MySQL	        mysql
SELECT monchamp, LOWER(monchamp) FROM matable

UPPER(chaine)
Retourne la chaîne de caractères en majuscules.

monchamp	UPPER(monchamp)
WikiStuce	WIKISTUCE
MySQL		MYSQL
SELECT monchamp, UPPER(monchamp) FROM matable

substitution de caractères

REPLACE(chaine, sschaine, remplace)
Retourne une chaîne de caractères dans laquelle toutes les occurences de “sschaine” dans “chaine” ont été remplacées par “remplace” (comparaison sensible à la casse).

monchamp	REPLACE(monchamp, 'world', 'monde')
Hello world	Hello monde
Hello World	Hello World
Helloworld	Hellomonde
SELECT monchamp, REPLACE(monchamp, 'world', 'monde') FROM matable

complétion

LPAD(chaine, longueur, motif)
Retourne la chaîne de caractères complétée à gauche par le motif précisé jusqu'à atteindre une chaîne de N caractères.

	monchamp	Retour
LPAD(monchamp,15,'!')	Facile	!!!!!!Wikistuce
LPAD(monchamp,15,'Wi')	Facile	WiWiWiWikistuce

RPAD(chaine, longueur, motif)
Retourne la chaîne de caractères complétée à droite par le motif précisé jusqu'à atteindre une chaîne de N caractères.

	monchamp	Retour
RPAD(monchamp,15,'!')	Facile	Wikistuce!!!!!!
RPAD(monchamp,15,'Wi')	Facile	WikistuceWiWiWi

suppression

LTRIM(chaine)
Retourne la chaîne de caractères en ayant supprimé les espaces se trouvant à gauche.

monchamp	LTRIM(monchamp)
(Espaces affichés sous forme de points)
....WikiStuce	Wikistuce
SELECT monchamp, LTRIM(monchamp) FROM matable

RTRIM(chaine)
Retourne la chaîne de caractères en ayant supprimé les espaces se trouvant à droite.

monchamp	RTRIM(monchamp)
(Espaces affichés sous forme de points)
WikiStuce....	WikiStuce
SELECT monchamp, RTRIM(monchamp)

TRIM(chaine)
Retourne la chaîne de caractères passée en paramètre après avoir supprimé les espaces en début et fin de chaîne.

monchamp	TRIM(monchamp)
(Espaces affichés sous forme de points)
.....WikiStuce....	WikiStuce
SELECT monchamp, TRIM(monchamp)

extraction

LEFT(chaine, longueur)
Retourne les N premiers caractères d'une chaîne de caractères.

monchamp	LEFT(monchamp, 4)
WikiStuce	Wiki
SELECT monchamp, LEFT(monchamp, 4) FROM matable

RIGHT(chaine, longueur)
Retourne les N derniers caractères d'une chaîne de caractères.

monchamp	RIGHT(monchamp, 5)
WikiStuce	Stuce
SELECT monchamp, RIGHT(monchamp, 5) FROM matable

SUBSTRING(chaine, index[, longueur])
Extrait de “chaine” la portion de caractères commençant au “index” caractère et d'une longueur de “longueur” caractères (ou toute la chaîne si ce paramètre n'est pas précisé).

monchamp	SUBSTRING('WikiStuce', monchamp)
5		Stuce
SELECT monchamp, SUBSTRING('WikiStuce', monchamp) FROM matable

monchamp	SUBSTRING('WikiStuce', 5, monchamp)
3		Stu
SELECT monchamp, SUBSTRING('WikiStuce', 5, monchamp) FROM matable

UBSTRING_INDEX(chaine, sschaine[, index])
Retourne le début de la chaîne de caractères jusqu'à atteindre la “index”-ième occurence de “sschaine” (non inclus). Si l'index est négatif, cela retourne la fin de la chaîne de caractères commençant à la “index”-ième occurence de “sschaine” (non compris) compté depuis la fin.

monchamp	SUBSTRING_INDEX('WikiStuce', 'i', monchamp)
1		W
2		Wik
3		WikiStuce
-1		Stuce
-2		kiStuce
SELECT monchamp, SUBSTRING_INDEX('WikiStuce', 'i', monchamp) FROM matable

MID(chaine, index[, longueur])
Extrait de “chaine” la portion de caractères commençant au “index” caractère et d'une longueur de “longueur” caractères (ou toute la chaîne si ce paramètre n'est pas précisé).

monchamp	MID('WikiStuce', monchamp)
5		Stuce
SELECT monchamp, MID('WikiStuce', monchamp) FROM matable

monchamp	MID('WikiStuce', 5, monchamp)
3		Stu
SELECT monchamp, MID('WikiStuce', 5, monchamp) FROM matable

Fusion

CONCAT(chaine1, chaine2[, …])
Retourne la chaîne issue de la concaténation de N chaînes de caractères.

monchamp	CONCAT(monchamp, 'Stu','ce')
Wiki		WikiStuce
SELECT monchamp, CONCAT(monchamp, 'Stu','ce') FROM matable

Insertion

INSERT(chaine, index, longueur, chaine)
Retourne une chaîne de caractères à partir d'une chaîne dans laquelle “sschaine” à été insérée à la position “index” en remplaçant “longueur” caractères.

monchamp	INSERT('WiStuce',3,monchamp,'ki')
0	WikiStuce
3	Wikice
SELECT monchamp, INSERT('WiStuce',5,monchamp,'ki') FROM matable

Inversion

REVERSE(chaine)
Inverse les lettres d'une chaîne de caractères.

monchamp	REVERSE(monchamp)
WikiStuce	ecutSikiW
SELECT monchamp, REVERSE(monchamp) FROM matable

recherche dans une chaîne

INSTR(chaine, sschaine)
Retourne la position d'une sous-chaîne dans une chaîne de caractères. Le premier caractère étant à la position 1.

monchamp	INSTR(monchamp,'tu')
WikiStuce	6
MySQL		0
ETUDE		0
SELECT monchamp, INSTR(monchamp,'tu')

LOCATE(sschaine, chaine[, index])
Retourne la position de “sschaine” dans “chaine”, éventuellement en commençant la recherche au “index”-ième caractère.

monchamp	LOCATE('tu',monchamp)
Wikistuce	6
MySQL		0
ETUDE		0
SELECT monchamp, LOCATE('tu', monchamp) FROM matable

monchamp	index	LOCATE('i',monchamp,index)
WikiStuce	1	2
WikiStuce	3	4
SELECT monchamp,index, LOCATE('i',monchamp,index) FROM matable

création de chaîne

SPACE(longueur)
Retourne une chaîne de caractères composée de “longueur” espaces.

REPEAT(nb, chaine)
Retourne une chaîne de caractères composée de “nb” fois la chaîne passée en paramètre.

monchamp	REPEAT('Wi', monchamp)
3		WiWiWi
SELECT monchamp, REPEAT('Wi', monchamp) FROM matable

Recherche d'une chaîne dans une liste

FIELD(cherche, chaine1[, chaine2][, …])
Retourne la position d'une chaîne dans une liste de chaîne de caractères.

monchamp	FIELD(monchamp,'Wi','Ki','Stuce')
Stuce		3
SELECT monchamp, FIELD(monchamp,'Wi','Ki','Stuce') FROM matable

FIND_IN_SET(chaine, liste)
Retourne la position d'une chaîne de caractères dans une liste représentée par une chaîne où les éléments sont séparés par des virgules.

monchamp	FIND_IN_SET(monchamp, 'Wi,ki,Stuce')
ki	2
Stu	0
SELECT monchamp, FIND_IN_SET(monchamp,'Wi,ki,Stuce') FROM matable

Recherche d'une position dans une liste

ELT(index, chaine1[, chaine2][, …])
Retourne la N-ième chaîne passée en paramètre.

monchamp	ELT(monchamp, 'Wi', 'ki', 'Stuce')
1		Wi
2		ki
3		Stuce
SELECT monchamp, ELT(monchamp, 'Wi', 'ki', 'Stuce') FROM matable

codes ASCII

ASCII(chaine)
Retourne le code ASCII du caractère passé en paramètre.

monchamp	ASCII(monchamp)
W		87
Wi		87
SELECT monchamp, ASCII(monchamp) FROM matable

CHAR(code1, code2[, …])
Retourne la chaîne de caractères issue de la concaténation des caractères identifiés par leurs codes ASCII.

SoundEx

SOUNDEX(chaine)
Retourne le “soundex” (ressemble à) de la chaîne de caractères passée en paramètre

Complément

Cette liste peut être complétée par les fonctions sur chaine numérique

Source