sql >> Databáze >  >> RDS >> MariaDB

Jak UNCOMPRESS() funguje v MariaDB

V MariaDB UNCOMPRESS() je vestavěná funkce, která dekomprimuje řetězec, který byl zkomprimován pomocí COMPRESS() funkce.

Syntaxe

Syntaxe vypadá takto:

UNCOMPRESS(string_to_uncompress)

Kde string_to_uncompress je řetězec, který chcete dekomprimovat.

Příklad

Zde je základní příklad:

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

Výsledek:

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

Kontrola velikosti

Zde je základní příklad:

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

Výsledek:

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

Zde jsem použil LENGTH() funkce k získání délky v bajtech nekomprimovaného a komprimovaného řetězce. Použil jsem REPEAT() funkci opakovat stejné písmeno 50krát před jeho komprimací.

Zde je další příklad, který používá symbol autorských práv (© ), což je dvoubajtový znak:

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

Výsledek:

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

Zde je jeden, který používá tříbajtový znak:

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

Výsledek:

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

Nulové argumenty

Předávání null vrátí null :

SELECT UNCOMPRESS(null);

Výsledek:

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

Chybí argument

Volání UNCOMPRESS() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT UNCOMPRESS();

Výsledek:

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

Zkontrolujte kompresi

UNCOMPRESS() funkce vyžaduje, aby MariaDB byla zkompilována s kompresní knihovnou, jako je zlib. Pokud MariaDB nebyla zkompilována s takovou knihovnou komprese, UNCOMPRESS() vrátí null .

Můžete zkontrolovat have_compress systémové proměnné, abyste viděli, zda je kompresní knihovna zlib pro server přístupná:

SELECT @@have_compress;

Výsledek:

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

V tomto případě je kompresní knihovna zlib přístupná serveru a výsledek je YES .

Pokud kompresní knihovna zlib není pro server přístupná, výsledek bude NO .


  1. Parametrizovaný dotaz očekává parametr, který nebyl zadán

  2. Snadný způsob, jak nasadit MySQL Galera Cluster na AWS

  3. Jak vytvořit soubor login.sql pro SQLcl

  4. DROP TABLE, POKUD EXISTUJE v MariaDB