sql >> Databasteknik >  >> RDS >> MariaDB

Hur HEX() fungerar i MariaDB

I MariaDB, HEX() är en inbyggd strängfunktion som returnerar en hexadecimal strängrepresentation av dess argument.

Det fungerar så här:

  • Om dess argument är ett tal, HEX() returnerar en strängrepresentation av talets hexadecimala värde.
  • Om argumentet är en sträng, HEX() returnerar en hexadecimal strängrepresentation av strängen, där varje byte av varje tecken i strängen konverteras till två hexadecimala siffror.
  • Börjar i MariaDB 10.5.0, HEX() med en INET6 argument returnerar en hexadecimal representation av den underliggande 16-byte binära strängen.

Syntax

Syntaxen ser ut så här:

HEX(N_or_S)

Där N_or_S är ett tal eller en sträng.

Exempel

Här är ett grundläggande exempel:

SELECT HEX(15);

Resultat:

+---------+
| HEX(15) |
+---------+
| F       |
+---------+

Här fick vi det hexadecimala värdet 15 , vilket är F .

I decimal skulle räkningen se ut så här:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

Men i hexadecimal är det så här:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Så om vårt tal hade varit mellan 0 och 9, skulle vi ha fått samma värde som dess decimalmotsvarighet.

Här är ett annat exempel som visar hur det hexadecimala systemet ökar sina värden:

SELECT 
    HEX(0),
    HEX(1),
    HEX(2),
    HEX(3),
    HEX(4),
    HEX(5),
    HEX(6),
    HEX(7),
    HEX(8),
    HEX(9),
    HEX(10),
    HEX(11),
    HEX(12),
    HEX(13),
    HEX(14),
    HEX(15),
    HEX(16),
    HEX(17),
    HEX(18),
    HEX(19),
    HEX(20),
    HEX(21),
    HEX(22),
    HEX(23),
    HEX(24),
    HEX(25),
    HEX(26),
    HEX(27),
    HEX(28),
    HEX(29),
    HEX(30),
    HEX(31),
    HEX(32),
    HEX(789456768);

Resultat (med vertikal utdata):

        HEX(0): 0
        HEX(1): 1
        HEX(2): 2
        HEX(3): 3
        HEX(4): 4
        HEX(5): 5
        HEX(6): 6
        HEX(7): 7
        HEX(8): 8
        HEX(9): 9
       HEX(10): A
       HEX(11): B
       HEX(12): C
       HEX(13): D
       HEX(14): E
       HEX(15): F
       HEX(16): 10
       HEX(17): 11
       HEX(18): 12
       HEX(19): 13
       HEX(20): 14
       HEX(21): 15
       HEX(22): 16
       HEX(23): 17
       HEX(24): 18
       HEX(25): 19
       HEX(26): 1A
       HEX(27): 1B
       HEX(28): 1C
       HEX(29): 1D
       HEX(30): 1E
       HEX(31): 1F
       HEX(32): 20
HEX(789456768): 2F0E2780

Strängar

Som nämnts, om argumentet är en sträng, HEX() returnerar en hexadecimal strängrepresentation av strängen, där varje byte av varje tecken i strängen konverteras till två hexadecimala siffror.

Exempel:

SELECT 
    HEX('a'),
    HEX('aa'),
    HEX('A'),
    HEX('AA'),
    HEX('b'),
    HEX('bb'),
    HEX('B'),
    HEX('BB'),
    HEX('Cat'),
    HEX('Dog'),
    HEX('Paws & Claws'),
    HEX('Zebra');

Resultat (med vertikal utdata):

           HEX('a'): 61
          HEX('aa'): 6161
           HEX('A'): 41
          HEX('AA'): 4141
           HEX('b'): 62
          HEX('bb'): 6262
           HEX('B'): 42
          HEX('BB'): 4242
         HEX('Cat'): 436174
         HEX('Dog'): 446F67
HEX('Paws & Claws'): 50617773202620436C617773
       HEX('Zebra'): 5A65627261

INET6

Börjar i MariaDB 10.5.0, HEX() med en INET6 argument returnerar en hexadecimal representation av den underliggande 16-byte binära strängen.

Exempel:

SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6));

Resultat:

+---------------------------------------------------------------+
| HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) |
+---------------------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B                              |
+---------------------------------------------------------------+

Här är den igen, men med den förkortade formen av samma IPv6-adress:

SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6));

Resultat:

+---------------------------------------------------+
| HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)) |
+---------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B                  |
+---------------------------------------------------+

Nollargument

Skickar null till HEX() resulterar i null :

SELECT HEX(null);

Resultat:

+-----------+
| HEX(null) |
+-----------+
| NULL      |
+-----------+

Inga argument godkänns

Anropar HEX() utan att skicka några argument resulterar i ett fel:

SELECT HEX();

Resultat:

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

  1. Ändra lösenord med Oracle SQL Developer

  2. Dela en partition i två i SQL Server (T-SQL)

  3. SQLiteOpenHelper:metoden onCreate() anropas inte på fysisk enhet

  4. Hur man byter namn på en tabellkolumn i Oracle 10g