sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer UNCOMPRESS() i MariaDB

I MariaDB, UNCOMPRESS() er en indbygget funktion, der udkomprimerer en streng, der er blevet komprimeret af COMPRESS() funktion.

Syntaks

Syntaksen ser sådan ud:

UNCOMPRESS(string_to_uncompress) 

Hvor string_to_uncompress er den streng, du vil komprimere.

Eksempel

Her er et grundlæggende eksempel:

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

Resultat:

+--------------------------------------------+| UNCOMPRESS(COMPRESS('Marcherer videre')) |+--------------------------------------------+ | Marcherer videre |+---------------------------------------------+

Kontrol af størrelsen

Her er et grundlæggende eksempel:

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

Resultat:

+--------------+------------+--------------+| Ukomprimeret | Komprimeret | Ukomprimeret |+--------------+------------+-------------+| 50 | 16 | 50 |+--------------+-------------+-------------+

Her brugte jeg LENGTH() funktion til at få længden i bytes af henholdsvis de ukomprimerede og komprimerede strenge. Jeg brugte REPEAT() funktion for at gentage det samme bogstav 50 gange, før det komprimeres.

Her er et andet eksempel, der bruger copyright-symbolet (© ), som er et to-byte tegn:

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

Resultat:

+--------------+------------+--------------+| Ukomprimeret | Komprimeret | Ukomprimeret |+--------------+------------+-------------+| 100 | 17 | 100 |+--------------+------------+-------------+

Her er en, der bruger et tre-byte tegn:

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

Resultat:

+--------------+------------+--------------+| Ukomprimeret | Komprimeret | Ukomprimeret |+--------------+------------+-------------+| 150 | 18 | 150 |+--------------+------------+-------------+

Nul-argumenter

Sender null returnerer null :

SELECT UNCOMPRESS(null); 

Resultat:

+------------------------+| UKOMPRESS(null) |+------------------------+| NULL |+------------------+

Manglende argument

Kalder UNCOMPRESS() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

SELECT UNCOMPRESS(); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'UNCOMPRESS'

Tjek efter komprimering

UNCOMPRESS() funktion kræver, at MariaDB er blevet kompileret med et komprimeringsbibliotek såsom zlib. Hvis MariaDB ikke er blevet kompileret med et sådant komprimeringsbibliotek, UNCOMPRESS() returnerer null .

Du kan tjekke have_compress systemvariabel for at se, om zlib-komprimeringsbiblioteket er tilgængeligt for serveren:

SELECT @@have_compress; 

Resultat:

+----------------+| @@have_compress |+-----------------+| JA |+-----------------+

I dette tilfælde er zlib-komprimeringsbiblioteket tilgængeligt for serveren, og resultatet er YES .

Hvis zlib-komprimeringsbiblioteket ikke er tilgængeligt for serveren, ville resultatet være NO .


  1. Om RM-formatelementet i Oracle

  2. MAX() Funktion i PostgreSQL

  3. 10 effektive måder at være mere produktiv på på arbejdspladsen

  4. Sådan returneres antallet af rækker i et forespørgselsresultat i SQL Server