MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment fonctionne UNCOMPRESS() dans MariaDB

Dans MariaDB, UNCOMPRESS() est une fonction intégrée qui décompresse une chaîne qui a été compressée par le COMPRESS() fonction.

Syntaxe

La syntaxe ressemble à ceci :

UNCOMPRESS(string_to_uncompress)

string_to_uncompress est la chaîne que vous voulez décompresser.

Exemple

Voici un exemple de base :

SELECT UNCOMPRESS(COMPRESS('Marching on'));

Résultat :

+-------------------------------------+
| UNCOMPRESS(COMPRESS('Marching on')) |
+-------------------------------------+
| Marching on                         |
+-------------------------------------+

Vérification de la taille

Voici un exemple de base :

SELECT
    LENGTH(REPEAT('z', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";

Résultat :

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|           50 |         16 |           50 |
+--------------+------------+--------------+

Ici, j'ai utilisé le LENGTH() fonction pour obtenir la longueur en octets des chaînes non compressées et compressées respectivement. J'ai utilisé le REPEAT() fonction pour répéter la même lettre 50 fois avant de la compresser.

Voici un autre exemple qui utilise le symbole de copyright (© ), qui est un caractère à deux octets :

SELECT
    LENGTH(REPEAT('©', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";

Résultat :

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|          100 |         17 |          100 |
+--------------+------------+--------------+

En voici une qui utilise un caractère à trois octets :

SELECT
    LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
    LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
    LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";

Résultat :

+--------------+------------+--------------+
| Uncompressed | Compressed | Uncompressed |
+--------------+------------+--------------+
|          150 |         18 |          150 |
+--------------+------------+--------------+

Arguments nuls

Passer null renvoie null :

SELECT UNCOMPRESS(null);

Résultat :

+------------------+
| UNCOMPRESS(null) |
+------------------+
| NULL             |
+------------------+

Argument manquant

Appel de UNCOMPRESS() avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :

SELECT UNCOMPRESS();

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'

Vérifier la compression

Le UNCOMPRESS() nécessite que MariaDB ait été compilée avec une bibliothèque de compression telle que zlib. Si MariaDB n'a pas été compilé avec une telle bibliothèque de compression, UNCOMPRESS() renvoie null .

Vous pouvez vérifier le have_compress variable système pour voir si la bibliothèque de compression zlib est accessible ou non au serveur :

SELECT @@have_compress;

Résultat :

+-----------------+
| @@have_compress |
+-----------------+
| YES             |
+-----------------+

Dans ce cas, la bibliothèque de compression zlib est accessible au serveur, et le résultat est YES .

Si la bibliothèque de compression zlib n'est pas accessible au serveur, le résultat serait NO .