sql >> Databasteknik >  >> RDS >> MariaDB

Hur UNCOMPRESS() fungerar i MariaDB

I MariaDB, UNCOMPRESS() är en inbyggd funktion som komprimerar en sträng som har komprimerats av COMPRESS() funktion.

Syntax

Syntaxen ser ut så här:

UNCOMPRESS(string_to_uncompress)

Där string_to_uncompress är strängen du vill dekomprimera.

Exempel

Här är ett grundläggande exempel:

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

Resultat:

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

Kontrollera storleken

Här är ett grundläggande exempel:

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

Resultat:

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

Här använde jag LENGTH() funktion för att få längden i byte av de okomprimerade respektive komprimerade strängarna. Jag använde REPEAT() funktion för att upprepa samma bokstav 50 gånger innan du komprimerar den.

Här är ett annat exempel som använder copyright-symbolen (© ), som är ett tvåbytestecken:

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

Resultat:

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

Här är en som använder ett tre-byte-tecken:

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

Resultat:

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

Nollargument

Skickar null returnerar null :

SELECT UNCOMPRESS(null);

Resultat:

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

Argument saknas

Anropar UNCOMPRESS() med fel antal argument, eller utan att skicka några argument resulterar i ett fel:

SELECT UNCOMPRESS();

Resultat:

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

Kontrollera efter komprimering

UNCOMPRESS() funktionen kräver att MariaDB har kompilerats med ett komprimeringsbibliotek som zlib. Om MariaDB inte har kompilerats med ett sådant komprimeringsbibliotek, UNCOMPRESS() returnerar null .

Du kan kontrollera have_compress systemvariabel för att se om zlib-komprimeringsbiblioteket är tillgängligt för servern:

SELECT @@have_compress;

Resultat:

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

I det här fallet är zlib-komprimeringsbiblioteket tillgängligt för servern, och resultatet är YES .

Om zlib-komprimeringsbiblioteket inte är tillgängligt för servern skulle resultatet bli NO .


  1. Hur Tand() fungerar i PostgreSQL

  2. Analysera röravgränsad sträng i kolumner?

  3. Oracles återgång till användning i Java (JDBC, Prepared Statement)

  4. Hur man får den sista dagen i månaden i Oracle