Fonctions de chaîne PostgreSQL

PostgreSQL est un système de gestion de base de données relationnelle objet très puissant. Il fournit un grand nombre de fonctions et d'opérateurs pour les types de données intégrés, soulageant ainsi les développeurs de tâches plus simples et se concentrant sur la solution au problème plus important. Une telle catégorie de fonctions intégrées est les fonctions de chaîne PostgreSQL. Le formatage de chaînes tel que la concaténation, l'affichage dans un certain format, l'insertion / suppression de sous-chaînes, etc. peut parfois être une tâche fastidieuse. Les fonctions de chaîne de PostgreSQL s'en occupent pour vous.

PostgreSQL possède de nombreuses fonctions qui ne sont pas définies dans les fonctions SQL standard. Cela offre aux développeurs un vaste horizon de fonctions qui peuvent exploiter pour résoudre le plus gros problème.

Pour illustrer diverses fonctions de chaîne PostgreSQL, nous devons d'abord créer une base de données. La base de données suivante sera référencée dans tous les exemples:

Exemples de fonctions de chaîne dans PostgreSQL

La fonction chaîne est facile à utiliser. Nous allons voir ici comment utiliser la fonction chaîne dans PostgreSQL

programmation à l'aide d'exemples

1. ASCII (str)

Renvoie la valeur ASCII du caractère le plus à gauche de la chaîne str.

SELECT FirstName, ASCII(FirstName) from Person

2. BIT_LENGTH (str)

Renvoie la longueur de la chaîne str en bits.

SELECT FirstName, BIT_LENGTH(FirstName) from Person

3. CHAR_LENGTH (str) / CHARACTER_LENGTH (str)

Renvoie la longueur de la chaîne str en caractères.

SELECT FirstName, CHAR_LENGTH(FirstName) from Person

4. CONCAT (str1, str2, …., Strn)

Renvoie une chaîne formée en joignant str1 à strn. Les arguments NULL sont ignorés.

SELECT FirstName, LastName, CONCAT(FirstName, LastName) as DisplayName from Person

5. str1 || str2 ||… || non str ||… || strn

Concatène str1, str2 à strn et même des arguments non-chaîne.

SELECT Id || FirstName || LastName || phone || address as Concat_All from Person

6. INITCAP (str)

Met la chaîne en majuscule, c'est-à-dire que la première lettre de chaque mot est en majuscule et le reste en minuscule. Les mots sont déterminés par des séparateurs non alphanumériques.

Select INITCAP('This is a PostgreSQL example.')

7. INFÉRIEUR () et SUPÉRIEUR ()

Convertit une chaîne en minuscules et en majuscules.

SELECT FirstName, LOWER(FirstName) as Lower, UPPER(FirstName) as Upper from Person

8. GAUCHE (str, len) / DROITE (str, len)

Renvoie les len caractères les plus à gauche et à droite de la chaîne str. Lorsque len est négatif, il renvoie la chaîne str, à l'exception des caractères len les plus à gauche ou à droite.

SELECT FirstName, LastName, CONCAT(LEFT(LastName, 3), RIGHT(FirstName, 2)) as LoginID from Person

9. LENGTH (str) / LENGTH (str, encoding)

Renvoie la longueur de la chaîne str en caractères. Ceci est cependant différent du fonctionnement de la fonction Longueur dans le SQL. Lorsqu'il est spécifié, l'encodage fournit la longueur de l'encodage particulier.

SELECT FirstName, LENGTH(FirstName), CHAR_LENGTH(FirstName) from Person

10. OCTET_LENGTH (str)

Calcule la longueur de la chaîne str en octets.

SELECT FirstName, LENGTH(FirstName), CHAR_LENGTH(FirstName), OCTET_LENGTH(FirstName) from Person

Ceci est très similaire aux fonctions LENGTH et CHAR_LENGTH. La différence vient quand il y a des caractères multi-octets impliqués.

SELECT '€' as multibyte_char, LENGTH('€'), CHAR_LENGTH('€'), OCTET_LENGTH('€')

Cela se produit car le signe Euro (€) occupe 3 octets en mémoire.

11. LPAD (str, len, padstr) / RPAD (str, len, padstr)

Insère une sous-chaîne à partir de la position 0 du padstr de chaîne au début et à la fin de la chaîne de chaîne jusqu'à ce que la chaîne résultante soit de len caractères.

SELECT FirstName, LastName, LPAD(CONCAT_WS(' ', FirstName, LastName), CHAR_LENGTH(CONCAT_WS(' ', FirstName, LastName))+CHAR_LENGTH('Mr. '), 'Mr. ') as DisplayName from Person

12. LTRIM (str, chars) / RTRIM (str, chars) / TRIM (str, chars)

Renvoie la chaîne str après avoir coupé toutes les occurrences de caractères de gauche, de droite ou des deux extrémités. Si les caractères ne sont pas spécifiés dans les arguments, les espaces sont coupés.

SELECT LTRIM(' abc ') as L1, RTRIM(' abc ') as R1, TRIM(' abc ') as T1, LTRIM('xxxyyabcxyz', 'xyz') as L2, RTRIM('xxxyyabcxyz', 'xyz') as R2, TRIM('xxxyyabcxyz', 'xyz') as T2

13. POSITION (substr in str) / STRPOS (str, substr)

Recherche la position de la sous-chaîne substr dans la chaîne str. N'oubliez pas que l'index commence à 1 dans PostgreSQL. Renvoie 0 si aucune correspondance n'a été trouvée.

SELECT Address, POSITION('Avenue' in Address) from Person

14. QUOTE_IDENT (str) / QUOTE_LITERAL (str)

Cette requête cite et annule la chaîne str. La plupart des caractères spéciaux sont doublés.

SELECT Address, QUOTE_IDENT(Address), QUOTE_LITERAL(Address) from Person

15. REMPLACER (str, from_str, to_str)

Remplace toutes les occurrences de la sous-chaîne from_str par la sous-chaîne to_str dans la chaîne str. Il est sensible à la casse.

SELECT Address, REPLACE(Address, 's', 'SS') from Person

16. INVERSE (str)

Inverse la chaîne str.

SELECT FirstName, REVERSE(FirstName) from Person

17. REGEXP_MATCHES (str, modèle)

Renvoie toutes les sous-chaînes qui correspondent au modèle POSIX Regex.

SELECT Address, REGEXP_MATCHES(Address, '.(sN)i.') from Perso

18. REGEXP_REPLACE (str, pattern, newstr)

Remplace toutes les sous-chaînes qui correspondent au modèle POSIX Regex par le newstr.

SELECT Address, REGEXP_MATCHES(Address, '..(e)(n)..'), REGEXP_REPLACE(Address, '..(e)(n)..', 'Street') from Person

19. REGEXP_SPLIT_TO_ARRAY (str, modèle)

Divise la chaîne str en un tableau de sous-chaînes séparées par le modèle POSIX Regex. Le motif E '\\ s +' signifie un ou plusieurs espaces vides.

SELECT Address, REGEXP_SPLIT_TO_ARRAY(Address, E'\\s+') from Person

20. REGEXP_SPLIT_TO_TABLE (str, modèle)

Divise la chaîne str en un tableau de sous-chaînes séparées par le modèle POSIX Regex.

SELECT Address, REGEXP_SPLIT_TO_TABLE(Address, E'\\s+') from Person

21. SUBSTRING (str de pos pour len)

Renvoie une sous-chaîne de la chaîne str commençant à la position pos de la longueur len.

SELECT FirstName, SUBSTRING(FirstName from 2 for 4) as a sub from Person

22. SUBSTRING (str from posix_pattern) / SUBSTRING (str from sql_pattern for escape)

Renvoie une sous-chaîne à partir de la chaîne str qui correspond à la POSIX Regex ou SQL Regex. Regex est un sujet important, merveilleux et extrêmement utile dans les ordinateurs. Il est recommandé de se procurer les modèles Regex avant de les implémenter au hasard.

SELECT FirstName, SUBSTRING(FirstName from '…$') as sub1, substring(FirstName from '%#"o_a#"_%' for '#') as sub2 from Person

Conclusion - Fonctions de chaîne PostgreSQL

Donc, pour conclure, ces fonctions, ainsi que d'autres fonctions intégrées, rendent PostgreSQL si puissant. L'inclusion de motifs regex lui donne plus de puissance. Une fois que l'art d'écrire des motifs Regex est appris et maîtrisé, jouer avec la base de données serait beaucoup plus amusant.

Articles recommandés

Cela a été un guide pour les fonctions de chaîne PostgreSQL. Ici, nous avons discuté de l'utilisation des fonctions de chaîne dans la programmation PostgreSQL à l'aide d'exemples. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–

  1. Fonctions de chaîne en Java avec des exemples
  2. Comment installer PostgreSQL?
  3. Questions d'entretiens chez PostgreSQL
  4. Fonctions Regex en Python (exemple)