15.Les fonctions SQL

15.3.Les fonctions SQL sur les chaînes de caractères

15.3.1.Les fonctions donnant la longueur d'une chaîne de caractères

CHAR_LENGTH(chaine) SQL92|MySQL|PostgreSQL
Retourne la longueur de la chaîne de caractères "chaine".
monchamp CHAR_LENGTH(monchamp)
ToutEstFacile 13
SQLFacile 9
MySQL 5
PHPFACILE 9
SELECT monchamp,CHAR_LENGTH(monchamp) FROM matable
CHARACTER_LENGTH(chaine) SQL92|MySQL|PostgreSQL
Retourne la longueur de la chaîne de caractères "chaine".
monchamp CHARACTER_LENGTH(monchamp)
ToutEstFacile 13
SQLFacile 9
MySQL 5
PHPFACILE 9
SELECT monchamp,CHARACTER_LENGTH(monchamp) FROM matable
LENGTH(chaine) MySQL
Retourne la longueur de la chaîne de caractères "chaine".
rem
  • Utilisez plutôt OCTET_LENGTH(), CHAR_LENGTH() ou CHARACTER_LENGTH() qui sont plus standard
monchamp LENGTH(monchamp)
ToutEstFacile 13
SQLFacile 9
MySQL 5
PHPFACILE 9
SELECT monchamp,LENGTH(monchamp) FROM matable
OCTET_LENGTH(chaine) SQL92|MySQL|PostgreSQL
Retourne la longueur de la chaîne de caractères "chaine".
monchamp OCTET_LENGTH(monchamp)
ToutEstFacile 13
SQLFacile 9
MySQL 5
PHPFACILE 9
SELECT monchamp,OCTET_LENGTH(monchamp) FROM matable

15.3.2.Les fonctions de substitution

LCASE(chaine) MySQL
Retourne la chaîne de caractères "chaine" en minuscules.
rem
  • Utilisez plutôt LOWER() qui est plus standard
monchamp LCASE(monchamp)
ToutEstFacile toutestfacile
SQLFacile sqlfacile
MySQL mysql
PHPFACILE phpfacile
SELECT monchamp,LCASE(monchamp) FROM matable
LOWER(chaine) SQL92|MySQL|PostgreSQL
Retourne la chaîne de caractères "chaine" en minuscules.
monchamp LOWER(monchamp)
ToutEstFacile toutestfacile
SQLFacile sqlfacile
MySQL mysql
PHPFACILE phpfacile
SELECT monchamp,LOWER(monchamp) FROM matable
REPLACE(chaine1,chaine2,chaine3) MySQL
Retourne une chaine de caractère dans laquelle toutes les occurences de "chaine2" dans "chaine1" ont été remplacées par "chaine3".
monchamp REPLACE(monchamp,'Facile',' c''est Facile!')
ToutEstFacile ToutEst c'est Facile!
SQLFacile SQL c'est Facile!
MySQL MySQL
PHPFACILE PHPFACILE
SELECT monchamp,REPLACE(monchamp,'Facile',' c''est Facile!') FROM matable
REVERSE(chaine) (MySQL) MySQL
Inverse l'ordre des caractères de la chaîne "chaine".
monchamp REVERSE(monchamp)
ToutEstFacile elicaFtsEtuoT
SQLFacile elicaFLQS
MySQL LQSyM
PHPFACILE ELICAFPHP
SELECT monchamp,REVERSE(monchamp) FROM matable
UCASE(chaine) MySQL
Retourne la chaîne de caractères "chaine" en majuscules.
rem
  • REM: Utilisez plutôt UPPER() qui est plus standard
monchamp UCASE(monchamp)
ToutEstFacile TOUTESTFACILE
SQLFacile SQLFACILE
MySQL MYSQL
phpfacile PHPFACILE
SELECT monchamp,UCASE(monchamp) FROM matable
UPPER(chaine) SQL92|MySQL|PostgreSQL
Retourne la chaîne de caractères "chaine" en majuscules.
monchamp UPPER(monchamp)
ToutEstFacile TOUTESTFACILE
SQLFacile SQLFACILE
MySQL MYSQL
phpfacile PHPFACILE
SELECT monchamp,UPPER(monchamp) FROM matable

15.3.3.Les autres fonctions

ASCII(chaine) (MySQL, PostgreSQL)
retourne le code ascii du premier caractère de "chaine"
CHAR(entier1,entier2,...) (MySQL)
retourne la chaîne de caractères issue de la concaténation des caractères exprimés par leurs codes ascii "entier1","entier2",etc
CONCAT(chaine1,chaine2,...) (MySQL)
retourne la chaîne de caractères issue de la concaténation des chaines de caractères "chaine1","chaine2",etc.
ELT(entier,chaine1,chaine2,...) (MySQL)
retourne la "entier"-ième chaîne de caractères de la liste "chaine1","chaine2",...
EXPORT_SET (MySQL)
-
FIELD(chaine1,chaine2,chaine3,...) (MySQL)
retourne la position de "chaine1" dans la liste "chaine2","chaine3",...
FIND_IN_SET(chaine1,chaine2) (MySQL)
retourne la position de "chaine1" dans la liste composée par "chaine2". "chaine2" étant une chaîne de caractère représentant une liste de chaine de caractères séparés par des virgules
INITCAP(chaine) (PostgreSQL)
retourne la chaîne de caractères "chaine" avec la première lettre de chaque mot en majuscule
INSERT(chaine1,entier1,entier2,chaine2) (MySQL)
insert "chaine2" dans "chaine1" à la position "entier1" en remplaçant "entier2" caractères de "chaine2"
INSTR(chaine1,chaine2) MySQL
Retourne la position de "chaine2" dans "chaine1". Le premier caractère étant à la position 1
rem
  • Utilisez plutôt POSITION() qui est plus standard
monchamp INSTR(monchamp,'Facile')
ToutEstFacile 8
SQLFacile 4
MySQL 0
PHPFACILE 0
SELECT monchamp,INSTR(monchamp,'Facile') FROM matable
LEFT(chaine,entier) (MySQL)
Retourne les "entier" premiers caractères de "chaine"
LOAD_FILE(chaine) (MySQL)
retourne la chaîne de caractère correspondant au contenu du fichier "chaine"
LOCATE(chaine1,chaine2) (MySQL) MySQL
Retourne la position de "chaine1" dans "chaine2". Le premier caractère étant à la position 1
monchamp LOCATE('Facile',monchamp)
ToutEstFacile 8
SQLFacile 4
MySQL 0
PHPFACILE 0
SELECT monchamp,LOCATE('Facile',monchamp) FROM matable
LOCATE(chaine1,chaine2, entier 1) MySQL
Retourne la position de "chaine1" dans "chaine2" en commencant la recherche au "entier1"-ième caractère. Le premier caractère étant à la position 1.
monchamp LOCATE('Facile',monchamp,5)
ToutEstFacile 8
SQLFacile 0
MySQL 0
PHPFACILE 0
SELECT monchamp,LOCATE('Facile',monchamp,5) FROM matable
LPAD(chaine1,entier,chaine2) (MySQL, PosgreSQL)
Ajoute les caractères de "chaine2" devant "chaine1" jusqu'à obtenir une chaîne de "entier" caractères
LTRIM(chaine) (MySQL)
Supprime les espaces en début de "chaine"
LTRIM(chaine1,chaine2) (PostgreSQL)
Supprime les "chaine2" en début de "chaine1"
MAKE_SET (MySQL)
-
MID(chaine,entier1,entier2) (MySQL)
Extrait de "chaine" la portion de caractères commençant au "entier1" caractère et d'une longueur de "entier2" caractères
ORD(chaine) (MySQL)
-
POSITION(chaine1 IN chaine2) SQL92|MySQL|PostgreSQL
Retourne la position de "chaine1" dans "chaine2". Le premier caractère étant à la position 1
monchamp POSITION('Facile' IN monchamp)
ToutEstFacile 8
SQLFacile 4
MySQL 0
PHPFACILE 0
SELECT monchamp,POSITION('Facile' IN monchamp) FROM matable
REPEAT(chaine,entier) (MySQL)
retourne une chaîne de caractères composée de "entier" fois "chaine"
RIGHT(chaine,entier) (MySQL)
Retourne les "entier" derniers caractères de "chaine"
RPAD(chaine1,entier,chaine2) (MySQL, PostgreSQL)
Ajoute les caractères de "chaine2" à la suite de "chaine1" jusqu'à obtenir une chaîne de "entier" caractères
RTRIM(chaine) (MySQL)
supprime les derniers espaces de "chaine"
RTRIM(chaine1,chaine2) (PostgreSQL)
supprime les derniers "chaine2" de "chaine1"
SOUNDEX(chaine) (MySQL)
retourne le soundex de "chaine"
SPACE(entier) (MySQL)
retourne une chaîne de caractère composée de "entier" espaces
SUBSTR(chaine,entier1) (PostgreSQL)
Extrait de "chaine" la portion de caractères commençant au "entier1" caractère
SUBSTR(chaine,entier1,entier2) (PostgreSQL)
Extrait de "chaine" la portion de caractères commençant au "entier1" caractère et d'une longueur de "entier2" caractères
SUBSTRING(chaine,entier1) (MySQL)
Extrait de "chaine" la portion de caractères commençant au "entier1" caractère
SUBSTRING(chaine,entier1,entier2) (MySQL)
Extrait de "chaine" la portion de caractères commençant au "entier1" caractère et d'une longueur de "entier2" caractères
SUBSTRING(chaine FROM entier1) (SQL92, MySQL, PostgreSQL)
Extrait de "chaine" la portion de caractères commençant au "entier1" caractère
SUBSTRING(chaine FROM entier1 FOR entier2) (SQL92, MySQL, PostgreSQL)
Extrait de "chaine" la portion de caractères commençant au "entier1" caractère et d'une longueur de "entier2" caractères
SUBSTRING_INDEX(chaine1,chaine2,entier) (MySQL)
Retourne le début de la chaîne de caractère "chaine1" jusqu'à atteindre la "entier"-ième occurence de "chaine2" (non inclus). Si entier est négatif, cela retourne la fin de la chaîne de caractère "chaine1" commençant à la "entier"-ième occurence de "chaine2" (non compris) compté depuis la fin.
TEXTPOS(chaine1,chaine2) (PostgreSQL)
retourne la position de "chaine2" dans "chaine1"
TRIM(chaine) (MySQL)
supprime les espaces de début et de fin de "chaine"
TRIM(BOTH 'chaine1' FROM chaine2) (SQL92, MySQL, PostgreSQL)
supprime les "chaine1" de début et de fin de "chaine2"
TRIM(LEADING 'chaine1' FROM chaine2) (SQL92, MySQL, PostgreSQL)
supprime les "chaine1" de début de "chaine2"
TRIM(TRAILING 'chaine1' FROM chaine2) (SQL92, MySQL, PostgreSQL)
supprime les "chaine1" de fin de "chaine2"

15.3.4.Les fonctions sur les chaînes représentant des nombres

BIN(entier) retourne la chaine de caractère représentant "entier" en binaire MySQL
CONV(chaine1,entier1,entier2) Converti la chaîne de caractère "chaine" représentant un nombre exprimé dans la base "entier1" en un nombre exprimé dans la base "entier2" MySQL
HEX(entier) retourne la chaine de caractère représentant "entier" en hexadecimal MySQL
OCT(entier) retourne la chaine de caractère représentant "entier" en octal MySQL