SQL - vstavané funkcie: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
d
 
(51 medziľahlých úprav od 8 ďalších používateľov nie je zobrazených)
Riadok 1: Riadok 1:
 
{{Skripta_dbs}}
 
{{Skripta_dbs}}
{{Draft}}
+
Databázový systém MySQL obsahuje vstavané funkcie<ref>MySQL Useful Functions and Clauses - http://www.tutorialspoint.com/mysql/mysql-useful-functions.htm </ref>, ktoré môžeme rozdeliť do kategórií:
Databázový systém mySQL podporuje obsahuje vstavané funkcie, často nazývané aj agregačné funkcie. Tieto funkcie môžeme rozdeliť do skupín podľa ich zamerania:
+
 
*Agregačné
+
*agregačné,
*Matematické
+
*matematické,
*Textové
+
*textové,
*Štatistické
+
*štatistické,
*Dátumové
+
*dátumové,
 +
*šifrovacie a komprimačné.
 +
 
 +
== Agregačné funkcie  ==
  
==Agregačné funkcie==
 
 
Agregačné funkcie vykonávajú nad stĺpcami tabuľky matematické operácie.  
 
Agregačné funkcie vykonávajú nad stĺpcami tabuľky matematické operácie.  
===COUNT()===
 
Funkcia COUNT slúži na výpočet počtu záznamov v SQL dotaze.
 
  
'''Úloha:''' Zisti, koľko je v tabuľke city miest s kódom krajiny SVK (teda na Slovensku)
+
=== COUNT()  ===
 +
 
 +
Funkcia COUNT slúži na výpočet počtu záznamov v SQL dotaze.
 +
 
 +
'''Úloha:''' Zisti, koľko je v tabuľke ''city'' miest s kódom krajiny SVK (teda na Slovensku)  
  
 
<source lang="sql">
 
<source lang="sql">
 
   SELECT COUNT(*) FROM city WHERE CountryCode = "SVK"
 
   SELECT COUNT(*) FROM city WHERE CountryCode = "SVK"
 +
</source>
 +
 +
Výsledok:
 +
{| class=wikitable
 +
|-
 +
!COUNT(*)
 +
|-
 +
|3
 +
|}
 +
 +
=== MAX() a MIN()  ===
 +
 +
Funkcia MAX(), resp. MIN() slúži na zistenie maximálnej, resp. minimálnej hodnoty z určitej množiny hodnôt.
 +
 +
 +
'''Úloha:''' Zisti, ktoré mesto má najväčšiu populáciu.
 +
 +
Riešenie: Úlohu si rozdelíme na 2 časti:
 +
 +
#Zistenie maximálnej populácie z tabuľky miest
 +
#Výber mesta s touto populáciou. Pre riešenie tejto úlohy použijeme vnorený príkaz SELECT
 +
 +
Podúloha 1:
 +
<source lang="sql">
 +
SELECT MAX(Population) FROM city
 +
</source> Výsledok: 10500000
 +
 +
Podúloha 2:
 +
<source lang="sql">
 +
SELECT *  FROM city where Population=
 +
    (SELECT MAX(Population) FROM city)
 +
</source>
 +
 +
Výsledok:
 +
{| class=wikitable
 +
|-
 +
!ID
 +
!Name
 +
!CountryCode
 +
!District
 +
!Population
 +
|-
 +
|1024
 +
|Mumbai (Bombay)
 +
|IND
 +
|Maharashtra
 +
|10500000
 +
|}
 +
 +
=== AVG()  ===
 +
 +
Funkcia AVG() počíta aritmetický priemer množiny hodnôt.
 +
 +
 +
'''Úloha:''' Aká je priemerná populácia na Slovensku?
 +
 +
<source lang="sql">
 +
  SELECT AVG(population) FROM city WHERE CountryCode="SVK"
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! AVG(population)
 +
|-
 +
| 261381.0000
 +
|}
 +
 +
=== SUM()  ===
 +
 +
Funkcia SUM() počíta súčet hodnôt danej množiny hodnôt.
 +
 +
 +
'''Úloha:''' Aký je súčet obyvateľov miest na Slovensku?
 +
 +
<source lang="sql">
 +
  SELECT SUM(population) FROM city WHERE CountryCode="SVK"
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! SUM(population)
 +
|-
 +
| 784143
 +
|}
 +
 +
 +
=== STD()  ===
 +
 +
Funkcia STD() počíta štandardnú odchýlku množiny hodnôt.
 +
 +
 +
'''Úloha:''' Aká je štandardná odchýlka počtu obyvateľov v mestách Českej republiky?
 +
 +
<source lang="sql">
 +
  SELECT STD(population) FROM city WHERE CountryCode="CZE"
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! STD(population)
 +
|-
 +
| 321564.4992
 +
|}
 +
 +
 +
== Matematické funkcie  ==
 +
 +
'''ABS(X)'''
 +
 +
Funkcia ABS vypočíta absolútnu hodnotu z čísla X.
 +
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT ABS(-3)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! ABS(-3)
 +
|-
 +
| 3
 +
|}
 +
 +
 +
'''SIN(X)'''
 +
 +
Funcia SIN vypočíta sínus uhla X. Uhol X je v radiánoch.
 +
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT SIN(PI()/2)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!SIN(PI()/2)
 +
|-
 +
|1
 +
|}
 +
 +
 +
'''COS'''
 +
 +
Funcia COS vypočíta kosínus uhla X. Uhol X je v radiánoch.
 +
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT COS(0)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!COS(0)
 +
|-
 +
|1
 +
|}
 +
 +
'''CEIL(X)'''
 +
 +
Funkcia CEIL zaokrúhli číslo X smerom hore.
 +
 +
Príklad: <source lang="sql">
 +
  SELECT CEIL(7.55)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!CEIL(7.55)
 +
|-
 +
|8
 +
|}
 +
 +
'''EXP( X )'''
 +
 +
Táto funkcia vracia hodnotu e (základ prirodzeného logaritmu), umocnenú na mocninu X.
 +
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT EXP(3)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!EXP(3)
 +
|-
 +
|20.0855369231877
 +
|}
 +
 +
 +
'''FLOOR(X)'''
 +
 +
Funkcia FLOOR zaokrúhli číslo X smerom dole.
 +
 +
Príklad: <source lang="sql">
 +
  SELECT FLOOR(7.55)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!FLOOR(7.55)
 +
|-
 +
|7
 +
|}
 +
 +
 +
 +
'''FORMAT(X,N)'''
 +
 +
Funkcia FORMAT() sa používa na formátovanie čísla X. N je počet desatinných miest čísla X.
 +
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT FORMAT(423423234.65434453,3)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!FORMAT(423423234.65434453,3)
 +
|-
 +
|423,423,234.654
 +
|}
 +
 +
 +
'''LOG(X)'''
 +
 +
Funkcia LOG vypočíta prirodzený logaritmus z čísla X (Poznámka: prirodzený logaritmus má základ ''e'').
 +
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT LOG(10)
 +
</source>
 +
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!LOG(10)
 +
|-
 +
|2.30258509299405
 +
|}
 +
 +
'''LOG10(X)'''
 +
 +
Vypočíta desiatkový logaritmus z čísla X.
 +
 +
Príklad: <source lang="sql">
 +
  SELECT LOG10(100)
 
</source>
 
</source>
  
Výsledok: COUNT(*): 3
+
Výsledok:  
 +
{| class="wikitable"
 +
|-
 +
!LOG10(100)
 +
|-
 +
|2
 +
|}
 +
 
 +
'''PI()'''
 +
 
 +
Táto funkcia vráti hodnotu Ludolfovho čísla pí.
  
Vylepšená verzia, pre prehľadnejšie čítanie výsledku:
+
Príklad:  
 
<source lang="sql">
 
<source lang="sql">
  SELECT COUNT(*) AS pocet FROM city WHERE CountryCode = "SVK"
+
  SELECT PI()
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!PI()
 +
|-
 +
|3.141593
 +
|}
 +
 
 +
 
 +
'''POW(''X, Y'')'''
 +
 
 +
Táto funkcia vracia hodnotu X umocnenú na Y. Je to alias k funkcii POWER.
 +
 
 +
Príklad: <source lang="sql">
 +
  SELECT POWER(3,3)
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!POWER(3,3)
 +
|-
 +
|27
 +
|}
 +
 
 +
 
 +
 
 +
'''ROUND (X,D)'''
 +
 
 +
Táto funkcia vracia X zaokrúhlené na celé číslo. Ak je použitý druhý argument(D) potom funkcia zaokrúhli X na D desatiných miest.
 +
 
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT ROUND(5.693893,2)
 
</source>
 
</source>
  
Výsledok: pocet: 3
 
===MAX() a MIN()===
 
Funkcia MAX(), resp. MIN() slúži na zistenie maximálnej, resp. minimálnej hodnoty z určitej množiny hodnôt.
 
  
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!  ROUND(5.693893,2)
 +
|-
 +
| 5.69
 +
|}
 +
 +
 +
'''SQRT(''X'')'''
 +
 +
Funkcia SQRT vypočíta druhú odmocninu čísla X. Ak je X záporné funkcia SQRT vráti ''NULL''.
 +
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT SQRT(16)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! SQRT(16)
 +
|-
 +
| 4.000000
 +
|}
 +
 +
 +
'''TAN(X)'''
 +
 +
Funkcia TAN - vypočíta tangens uhla X. Uhol X je v radiánoch.
 +
 +
Príklad: Aká je hodnota TAN(45)?
 +
<source lang="sql">
 +
  SELECT TAN(PI()/4)
 +
</source>
 +
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! SELECT TAN(PI()/4)
 +
|-
 +
| 1
 +
|}
 +
 +
 +
'''RAND()'''
  
'''Úloha:''' Zisti, ktoré mesto má najväčšiu populáciu.
+
Funkcia RAND generuje náhodné číslo v intervale (0,1).
  
Riešenie: Úlohu si rozdelíme na 2 časti:
 
#Zistenie maximálnej populácie z tabuľky miest
 
#Výber mesta s touto populáciou. Pre riešenie tejto úlohy použijeme vnorený príkaz SELECT
 
  
Podúloha 1:
+
Príklad: V príklade budeme generovať 2 náhodné čísla.
 +
<source lang="sql">
 +
  SELECT RAND(),RAND()
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! RAND()
 +
! RAND()
 +
|-
 +
| 0.516074677478592
 +
| 0.469642581855545
 +
|}
 +
 
 +
== Textové funkcie  ==
 +
 
 +
'''CHAR(X,...)'''
 +
 
 +
Funkcia CHAR() prevedie každý svoj argument X na znak podľa použitej znakovej tabuľky.
 +
 
 +
<source lang="sql">
 +
  SELECT CHAR(77,121,83,81,76)
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! CHAR(77,121,83,81,76)
 +
|-
 +
| MySQL
 +
|}
 +
 
 +
 
 +
'''CONCAT'''
 +
 
 +
Funkcia CONCAT() sa používa na spojenie dvoch reťazcov do jedného reťazca.
 +
 
 +
Úloha: V tabuľke ''city'' spoj atribúty: ''name'' a ''CountryCode'' do jedného stĺpca s názvom ''Mesto''
 +
 
 +
<source lang="sql">
 +
  SELECT concat(name, " - ", countrycode) AS Mesto FROM city
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!Mesto
 +
|-
 +
|Košice - SVK
 +
|-
 +
|Prešov - SVK
 +
|-
 +
|Kabul - AFG
 +
|-
 +
|Qandahar - AFG
 +
|-
 +
|Herat - AFG
 +
|-
 +
|Mazar-e-Sharif - AFG
 +
|-
 +
|Amsterdam - NLD
 +
|-
 +
|Rotterdam - NLD
 +
|}
 +
 
 +
 
 +
'''FIELD(str, str1, str2, str3, ...)'''
 +
 
 +
Funkcie FIELD vracia index (pozícia začínajúca na hodonte 1) reťazca ''str'' v reťazcoch  ''str1, str2, str3'', ... . Ak nie je reťazec ''str'' nájdený, funkcia vráti 0.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo')
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo')
 +
|-
 +
| 2
 +
|}
 +
 
 +
'''LOWER(str)'''
 +
 
 +
Funkcia LOWER() konvertuje reťazec ''str'' na malé písmená.
 +
 
 +
Úloha: Konvertuj kód krahiny (''code'') na malé písmená v tabuľke ''country''.
 +
 
 +
<source lang="sql">
 +
  SELECT Name,LOWER(code) from country
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!Name
 +
!LOWER(code)
 +
|-
 +
|Afghanistan ||afg
 +
|-
 +
|Netherlands ||nld
 +
|-
 +
|Netherlands Antilles ||ant
 +
|-
 +
|Albania ||alb
 +
|-
 +
|Algeria ||dza
 +
|-
 +
|American Samoa || asm
 +
|-
 +
|Andorra ||and
 +
|-
 +
|Angola ||ago
 +
|}
 +
 
 +
 
 +
'''UPPER'''
 +
 
 +
Funkcia UPPER() konvertuje reťazec na veľké písmená.
 +
 
 +
 
 +
'''Úloha:''' konvertuj názov mesta (''name'') na veľké písmená v tabuľke ''city''.
 +
 
 +
<source lang="sql">
 +
  SELECT UPPER(name) FROM city
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!upper(name)
 +
|-
 +
|MAZAR-E-SHARIF
 +
|-
 +
|AMSTERDAM
 +
|-
 +
|HAAG
 +
|-
 +
|UTRECHT
 +
|-
 +
|EINDHOVEN
 +
|-
 +
|TILBURG
 +
|}
 +
 
 +
'''LTRIM(''str'')'''
 +
 
 +
Zo začiatku reťazca ''str'' odstráni nečitateľné znaky (medzery).
 +
 
 +
Príklad: <source lang="sql">
 +
  SELECT LTRIM('  ahoj DBS')
 +
</source>
 +
 
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!LTRIM('  ahoj DBS')
 +
|-
 +
|ahoj DBS
 +
|}
 +
 
 +
 
 +
'''RTRIM(''str'')'''
 +
 
 +
Z konca reťazca ''str'' odstráni nečitateľné znaky (medzery).
 +
 
 +
Príklad: <source lang="sql">
 +
  SELECT RTRIM('ahoj DBS  ')
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!RTRIM('ahoj DBS  ')
 +
|-
 +
|ahoj DBS
 +
|}
 +
 
 +
 
 +
'''TRIM'''
 +
 
 +
Zo začiatku a konca reťazca ''str'' odstráni nečitateľné znaky (medzery).
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT TRIM('  ahoj DBS    ')
 +
</source>
 +
 
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!TRIM('  ahoj DBS  ')
 +
|-
 +
|ahoj DBS
 +
|}
 +
 
 +
== Dátumové funkcie  ==
 +
 
 +
'''ADDDATE(date,INTERVAL days)'''
 +
 
 +
Funkcia ADDDATE pripočíta k zadanému dátumu ''date'' zadaný počet dní (hodnota ''days''). Parameter ''days'' môžeme zadávať pomocou funkcie INTERVAL, alebo ako celé číslo.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
SELECT ADDDATE('2010-12-20',10),
 +
      ADDDATE('2010-12-20', INTERVAL 11 DAY)
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!ADDDATE('2010-12-20',10)
 +
!ADDDATE('2010-12-20', INTERVAL 11 DAY)
 +
|-
 +
|2010-12-30
 +
|2010-12-31
 +
|}
 +
 
 +
 
 +
'''ADDTIME(T1,T2)'''
 +
 
 +
Funica ADDTIME pripočíta k času T1 čas T2. Výsledok je súčet týchto časov.
 +
 
 +
 
 +
<source lang="sql">
 +
  SELECT ADDTIME('2010-12-20 10:00:0.0','1 1:1:1.000002')
 +
</source>
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!ADDTIME('2010-12-20 10:00:0.0','1 1:1:1.000002')
 +
|-
 +
|2010-12-21 11:01:01.000002
 +
|}                       
 +
 
 +
 
 +
 
 +
'''CURRDATE'''
 +
 
 +
Vracia aktuálny dátum ako hodnotu vo formáte 'YYYY-MM-DD' alebo RRRRMMDD, v závislosti na tom, či funkcia je použitá v reťazeci alebo číselnom kontexte.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT CURDATE()
 +
</source>
 +
 
 +
Výsledok:
 +
 
 +
{| class="wikitable"
 +
|-
 +
!CURDATE()
 +
|-
 +
|2010-12-15 
 +
|}
 +
 
 +
 
 +
'''CURTIME'''
 +
 
 +
Vracia aktuálny čas ako hodnotu v 'HH:MM:SS' alebo HHMMSS formáte, v závislosti na tom, či funkcia je použitá v reťazci alebo číselnom kontexte. Táto hodnota je vyjadrená v aktuálnom časovom pásme.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT CURTIME()
 +
</source>
 +
Výsledok:
 +
 
 +
{| class="wikitable"
 +
|-
 +
!CURTIME()
 +
|-
 +
|18:31:48
 +
|}
 +
 
 +
 
 +
 
 +
'''DATEDIFF(D1,D2)'''
 +
 
 +
Funkcia DATEDIFF vráti rozdiel v dňoch medzi dátumami D1 a D2.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT DATEDIFF('2010-12-31 23:59:59','2010-12-20') 
 +
</source>
 +
Výsledok:
 +
 
 +
{| class="wikitable"
 +
|-
 +
!DATEDIFF('2010-12-31 23:59:59','2010-12-20') 
 +
|-
 +
|11
 +
|}
 +
 
 +
 
 +
'''DATE(D)'''
 +
 
 +
Z dátumu a času D vyberie len dátum.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT DATE('2010-12-31 01:02:03')
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
!DATE('2010-12-31 01:02:03')
 +
|-
 +
|2010-12-31
 +
|}
 +
 
 +
 
 +
'''DAY'''
 +
 
 +
DAY je synonymom pre DAYOFMONTH.
 +
 
 +
 
 +
 
 +
 
 +
'''DAYNAME(D)'''
 +
 
 +
Z dátumu D určí názov dňa.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT DAYNAME('2010-12-16')
 +
</source>
 +
 
 +
Výsledok:
 +
 
 +
{| class="wikitable"
 +
|-
 +
! DAYNAME('2010-12-16')
 +
|-
 +
| Thursday
 +
|}
 +
 
 +
 
 +
'''DAYOFWEEK(D)'''
 +
 
 +
Vráti číslo dňa v týždni (1 = nedeľa, 2 = pondelok, ... , 7 = sobota). Tieto hodnoty indexu zodpovedajú štandardu ODBC<ref>ODBC Scalar Functions - http://msdn.microsoft.com/en-us/library/bb630290.aspx</ref>.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT DAYOFWEEK('2010-12-31 01:02:03')
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! DAYOFWEEK('2010-12-31 01:02:03')
 +
|-
 +
| 6
 +
|}
 +
 
 +
 
 +
'''DAYOFMONTH(D)'''
 +
 
 +
Z dátumu D vyberie číslo dňa, v rozmedzí 0 - 31.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT DAYOFMONTH('2010-12-31 01:02:03')
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! DAYOFMONTH('2010-12-31 01:02:03')
 +
|-
 +
|31
 +
|}
 +
 
 +
 
 +
'''DAYOFYEAR'''
 +
 
 +
Vracia poradové číslo dňa v roku v rozsahu 1 až 366.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT DAYOFYEAR('2010-12-20')
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! DAYOFYEAR('2010-12-20')
 +
|-
 +
| 354
 +
|}
 +
 
 +
 
 +
'''HOUR(T)'''
 +
 
 +
Funkcia HOUR vyberie z dátumu/času T len hodinu.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT HOUR('2010-12-20 10:12:58.55')
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! HOUR('2010-12-20 10:12:58.55')
 +
|-
 +
| 10
 +
|}
 +
 
 +
 
 +
'''NOW'''
 +
 
 +
Zistí aktuálny dátum a čas.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT NOW()
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! NOW()
 +
|-
 +
| 2010-11-03 10:45:55
 +
|}
 +
 
 +
 
 +
'''SYSDATE'''
 +
 
 +
Vráti aktuálnu hodnotu dátumu a času, podľa systémového času.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT SYSDATE()
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! SYSDATE()
 +
|-
 +
| 2010-12-20 12:21:33
 +
|}
 +
 
 +
 
 +
'''WEEK'''
 +
 
 +
Z dátumu  určí číslo týždňa v intervale 1 až 52.
 +
 
 +
Príklad:
 +
 
 +
<source lang="sql">
 +
  SELECT WEEK('2010-12-18')
 +
</source>
 +
 
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! WEEK('2010-12-18')
 +
|-
 +
| 50
 +
|}
 +
 
 +
'''YEAR(D)'''
 +
 
 +
Z dátumu D určí rok.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
  SELECT YEAR('2010-12-20')
 +
</source>
 +
 
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! YEAR('2010-12-20')
 +
|-
 +
| 2010
 +
|}
 +
 
 +
== Šifrovacie a komprimačné  ==
 +
Nasledujúce funkcie ponúkajú šifrovanie, dešifrovanie a hašovanie textových dát<ref>Encryption and Compression Functions - http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html</ref>.
 +
 
 +
 
 +
'''AES_ENCRYPT( ''nezasifrovany_text , kluc'' )'''
 +
 
 +
Funkcie AES_ENCRYPT() a AES_DECRYPT() šifrujú a dešifrujú dáta pomocou oficiálneho algoritmu [http://en.wikipedia.org/wiki/Advanced_Encryption_Standard AES](Advanced Encryption Standard). Dĺžka šifrovacieho kľúča je 128 bitov. Dĺžku kľúča sa môže predĺžiť až na 256 bitov.
 +
 
 +
<source lang="sql">
 +
  INSERT INTO test (text,zasifrovane,heslo) VALUES ("kiwiki",AES_ENCRYPT("kiwiki","123456789"),"1234567789")
 +
</source>
 +
 
 +
Výsledok:
 +
[[Image:Sql AES ENCRYPT.png|frame|center|Šifrovanie pomocou AES_ENCRYPT]]
 +
 
 +
 
 +
'''AES_DECRYPT( ''zasifrovany_text , kluc'')'''
 +
 
 +
Táto funkcia dešifruje dáta pomocou šifrovacieho algoritmus [http://en.wikipedia.org/wiki/Advanced_Encryption_Standard AES] (Advanced Encryption Standard) <source lang="sql">
 +
  SELECT text, AES_DECRYPT(zasifrovane,"123456789") AS rozsifrovane ,heslo FROM test
 +
</source>
 +
 
 +
Výsledok:
 +
[[Image:Sql AES DECRYPT.png|frame|center|Dešifrovanie pomocou AES_DECRYPT]]
 +
 
 +
 
 +
'''COMPRESS( ''str'' ), UNCOMPRESS( ''str'' )'''
 +
 
 +
Komprimuje/dekomprimuje reťazec a vráti výsledok ako binárny reťazec. Táto funkcia vyžaduje konfiguráciu MySQL servara tak, aby boli zostavený s kompresnou knižnicu ''zlib''. V opačnom prípade je návratová hodnota vždy NULL. Komprimovaný reťazec môže byť dekomprimovaný funkciou UNCOMPRESS().
 +
 
 
<source lang="sql">
 
<source lang="sql">
SELECT MAX(Population) FROM city
+
  INSERT INTO test (text,zasifrovane) VALUES ("kiwiki",COMPRESS("kiwiki"))
 
</source>
 
</source>
Výsledok:  10500000
 
  
Podúloha 2:
+
Výsledok: [[Image:Sql compress.png|frame|center|Výsledok komprimácie pomocou funkcie COMPRESS]]
 +
 
 +
 
 
<source lang="sql">
 
<source lang="sql">
SELECT FROM city where Population=
+
  SELECT id, text, UNCOMPRESS(zasifrovane) AS dekomprimovane FROM test
    (SELECT MAX(Population) FROM city)
+
</source>
 +
 
 +
Výsledok: [[Image:Sql uncompress.png|frame|center|Výsledok dekomprimácie pomocou funkcie UNCOMPRESS]]
 +
 
 +
 
 +
'''ENCODE(''str,heslo'')'''
 +
 
 +
Šifruje dáta ''str'' pomocou nami zadaného šifrovacieho hesla ''heslo''. Výsledok šifrovania je binárny reťazec rovnakej dĺžky ako pôvodný. Na dešifrovanie sa používa funcia DECODE.
 +
 
 +
Príklad:
 +
<source lang="sql">
 +
SELECT ENCODE("kiwiki", "heslo")
 
</source>
 
</source>
Výsledok: 
 
  
[[Súbor:select max.png|center]]
+
Výsledok:
 +
[[Súbor:sql - encode.png|center|frame|Zašifrovanie pomocou funkcie ENCODE]]
  
===AVG()===
 
Funkcia AVG() počíta aritmetický priemet množiny hodnôt.
 
  
 +
'''DECODE(''crypt_str,heslo'')'''
 +
 +
Funkcia DECODE je opak funkcie ENCODE. Dešifruje zašifrované dáta funkciou ENCODE pomocou vloženého hesla pri šifrovaní<ref>Decode Demo 1 - http://www.bhatipoglu.com/entry/41/decode-demo-1</ref>.
  
'''Úloha:''' Aká je priemerná populácia na Slovensku?
 
  
 +
Príklad:
 
<source lang="sql">
 
<source lang="sql">
  SELECT AVG(population) FROM city where CountryCode="SVK"
+
SELECT DECODE( ENCODE("kiwiki","heslo"), "heslo")
 
</source>
 
</source>
  
Výsledok: AVG(population): 261381.0000
 
===SUM()===
 
Funkcia SUM() počíta súčet hodnôt danej množiny hodnôt.
 
  
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! DECODE( ENCODE("kiwiki","heslo"), "heslo")
 +
|-
 +
| kiwiki
 +
|}
  
'''Úloha:''' Aký je súčet obyvateľov miest na Slovensku?
 
  
 +
'''DES_DECRYPT( ''text, [kluc]''), DES_ENCRYPT(''text , kluc'')'''
 +
 +
Funkcie DES_ENCRYPT() a DES_DECRYPT() šifrujú a dešifrujú dáta pomocou oficiálneho algoritmu [http://en.wikipedia.org/wiki/Data_Encryption_Standard DES]. Použitie je podobné ako pri funkciách ''AES_DECRYPT'' a ''AES_ENCRYPT''.
 +
 +
 +
 +
'''MD5()''' [http://sk.wikipedia.org/wiki/Message-Digest_algorithm (Message-Digest algorithm) ]
 +
 +
Hašovacia funkcia, mení vstupné dáta na výstupné dáta fixnej dĺžky.
 +
 +
Príklad:
 
<source lang="sql">
 
<source lang="sql">
  SELECT SUM(population) FROM city where CountryCode="SVK"
+
SELECT MD5(password) FROM tabulka
 
</source>
 
</source>
  
Výsledok: SUM(population):  784143
 
===STD()===
 
Funkcia SUM() počíta štandardnú odchýlku množiny hodnôt.
 
  
 +
Výsledok:
 +
{| class="wikitable"
 +
|-
 +
! MD5(password)
 +
|-
 +
| 21232f297a57a5a743894a0e4a801fc3
 +
|}
  
'''Úloha:''' Aká je štandardná odchýlka počtu obyvateľov v mestách Českej republiky?
 
  
 +
 +
'''SHA1(), SHA()''' [http://sk.wikipedia.org/wiki/Secure_Hash_Algorithm (Secure Hash Algorithm) ]
 +
 +
Hašovacia funkcia, mení vstupné dáta na výstupné dáta fixnej dĺžky.
 +
 +
Príklad:
 
<source lang="sql">
 
<source lang="sql">
  SELECT STD(population) FROM city where CountryCode="CZE"
+
SELECT SHA(password) FROM tabulka
 +
SELECT SHA1(password) FROM tabulka
 
</source>
 
</source>
  
Výsledok: STD(population):  321564.4992
 
  
==Matematické funkcie==
+
Výsledok:
*ABS
+
{| class="wikitable"
*SIN
+
|-
*COS
+
! SHA(password)/SHA1(password)
*CEIL
+
|-
*EXP
+
| d033e22ae348aeb5660fc2140aec35850c4da997
*FLOOR
+
|}
*FORMAT
+
 
*LOG
 
*LOG10
 
*PI
 
*POW
 
*ROUND
 
*SQRT
 
*TAN
 
*RAND
 
  
==Textové funkcie==
+
'''PASSWORD()'''
*CHAR
 
*CONCAT
 
*FIELD
 
*LOWER
 
*UPPER
 
*LTRIM
 
*RTRIM
 
*TRIM
 
  
==Dátumové funkcie==
+
Na základe vtupného textu vypočíta heslo. Táto funkcia je použitá na generovanie hesiel v databáze ''mysql'' (tabuľka ''users'').
*ADDDATE
+
<source lang="sql">
*ADDTIME
+
  SELECT PASSWORD('kiwiki')
*CURRDATE
+
</source>
*CURTIME
 
*DATE
 
*DAY
 
*DAYNAME
 
*DAYOFWEEK
 
*DAYOFMONTH
 
*DAYOFYEAR
 
*HOUR
 
*NOW
 
*SYSDATE
 
*WEEK
 
*YEAR
 
  
==Zdroje a odkazy==
+
Výsledok:
* http://www.tutorialspoint.com/mysql/mysql-useful-functions.htm
+
{| class="wikitable"
 +
|-
 +
! PASSWORD('kiwiki')
 +
|-
 +
| *D94D4484B4D4060225F91D28D7BB131F917F760C
 +
|}
 +
== Zdroje a odkazy ==
 +
<references/>

Aktuálna revízia z 23:21, 17. január 2011

Databázový systém MySQL obsahuje vstavané funkcie[1], ktoré môžeme rozdeliť do kategórií:

  • agregačné,
  • matematické,
  • textové,
  • štatistické,
  • dátumové,
  • šifrovacie a komprimačné.

Agregačné funkcie

Agregačné funkcie vykonávajú nad stĺpcami tabuľky matematické operácie.

COUNT()

Funkcia COUNT slúži na výpočet počtu záznamov v SQL dotaze.

Úloha: Zisti, koľko je v tabuľke city miest s kódom krajiny SVK (teda na Slovensku)

  SELECT COUNT(*) FROM city WHERE CountryCode = "SVK"

Výsledok:

COUNT(*)
3

MAX() a MIN()

Funkcia MAX(), resp. MIN() slúži na zistenie maximálnej, resp. minimálnej hodnoty z určitej množiny hodnôt.


Úloha: Zisti, ktoré mesto má najväčšiu populáciu.

Riešenie: Úlohu si rozdelíme na 2 časti:

  1. Zistenie maximálnej populácie z tabuľky miest
  2. Výber mesta s touto populáciou. Pre riešenie tejto úlohy použijeme vnorený príkaz SELECT

Podúloha 1:

 SELECT MAX(Population) FROM city

Výsledok: 10500000

Podúloha 2:

 SELECT *  FROM city where Population=
     (SELECT MAX(Population) FROM city)

Výsledok:

ID Name CountryCode District Population
1024 Mumbai (Bombay) IND Maharashtra 10500000

AVG()

Funkcia AVG() počíta aritmetický priemer množiny hodnôt.


Úloha: Aká je priemerná populácia na Slovensku?

   SELECT AVG(population) FROM city WHERE CountryCode="SVK"

Výsledok:

AVG(population)
261381.0000

SUM()

Funkcia SUM() počíta súčet hodnôt danej množiny hodnôt.


Úloha: Aký je súčet obyvateľov miest na Slovensku?

   SELECT SUM(population) FROM city WHERE CountryCode="SVK"

Výsledok:

SUM(population)
784143


STD()

Funkcia STD() počíta štandardnú odchýlku množiny hodnôt.


Úloha: Aká je štandardná odchýlka počtu obyvateľov v mestách Českej republiky?

   SELECT STD(population) FROM city WHERE CountryCode="CZE"

Výsledok:

STD(population)
321564.4992


Matematické funkcie

ABS(X)

Funkcia ABS vypočíta absolútnu hodnotu z čísla X.

Príklad:

   SELECT ABS(-3)

Výsledok:

ABS(-3)
3


SIN(X)

Funcia SIN vypočíta sínus uhla X. Uhol X je v radiánoch.

Príklad:

   SELECT SIN(PI()/2)

Výsledok:

SIN(PI()/2)
1


COS

Funcia COS vypočíta kosínus uhla X. Uhol X je v radiánoch.

Príklad:

   SELECT COS(0)

Výsledok:

COS(0)
1

CEIL(X)

Funkcia CEIL zaokrúhli číslo X smerom hore.

Príklad:

  SELECT CEIL(7.55)

Výsledok:

CEIL(7.55)
8

EXP( X )

Táto funkcia vracia hodnotu e (základ prirodzeného logaritmu), umocnenú na mocninu X.

Príklad:

   SELECT EXP(3)

Výsledok:

EXP(3)
20.0855369231877


FLOOR(X)

Funkcia FLOOR zaokrúhli číslo X smerom dole.

Príklad:

  SELECT FLOOR(7.55)

Výsledok:

FLOOR(7.55)
7


FORMAT(X,N)

Funkcia FORMAT() sa používa na formátovanie čísla X. N je počet desatinných miest čísla X.

Príklad:

   SELECT FORMAT(423423234.65434453,3)

Výsledok:

FORMAT(423423234.65434453,3)
423,423,234.654


LOG(X)

Funkcia LOG vypočíta prirodzený logaritmus z čísla X (Poznámka: prirodzený logaritmus má základ e).

Príklad:

   SELECT LOG(10)


Výsledok:

LOG(10)
2.30258509299405

LOG10(X)

Vypočíta desiatkový logaritmus z čísla X.

Príklad:

   SELECT LOG10(100)

Výsledok:

LOG10(100)
2

PI()

Táto funkcia vráti hodnotu Ludolfovho čísla pí.

Príklad:

   SELECT PI()

Výsledok:

PI()
3.141593


POW(X, Y)

Táto funkcia vracia hodnotu X umocnenú na Y. Je to alias k funkcii POWER.

Príklad:

   SELECT POWER(3,3)

Výsledok:

POWER(3,3)
27


ROUND (X,D)

Táto funkcia vracia X zaokrúhlené na celé číslo. Ak je použitý druhý argument(D) potom funkcia zaokrúhli X na D desatiných miest.


Príklad:

 
   SELECT ROUND(5.693893,2)


Výsledok:

ROUND(5.693893,2)
5.69


SQRT(X)

Funkcia SQRT vypočíta druhú odmocninu čísla X. Ak je X záporné funkcia SQRT vráti NULL.

Príklad:

   SELECT SQRT(16)

Výsledok:

SQRT(16)
4.000000


TAN(X)

Funkcia TAN - vypočíta tangens uhla X. Uhol X je v radiánoch.

Príklad: Aká je hodnota TAN(45)?

   SELECT TAN(PI()/4)

Výsledok:

SELECT TAN(PI()/4)
1


RAND()

Funkcia RAND generuje náhodné číslo v intervale (0,1).


Príklad: V príklade budeme generovať 2 náhodné čísla.

   SELECT RAND(),RAND()

Výsledok:

RAND() RAND()
0.516074677478592 0.469642581855545

Textové funkcie

CHAR(X,...)

Funkcia CHAR() prevedie každý svoj argument X na znak podľa použitej znakovej tabuľky.

   SELECT CHAR(77,121,83,81,76)

Výsledok:

CHAR(77,121,83,81,76)
MySQL


CONCAT

Funkcia CONCAT() sa používa na spojenie dvoch reťazcov do jedného reťazca.

Úloha: V tabuľke city spoj atribúty: name a CountryCode do jedného stĺpca s názvom Mesto

   SELECT concat(name, " - ", countrycode) AS Mesto FROM city

Výsledok:

Mesto
Košice - SVK
Prešov - SVK
Kabul - AFG
Qandahar - AFG
Herat - AFG
Mazar-e-Sharif - AFG
Amsterdam - NLD
Rotterdam - NLD


FIELD(str, str1, str2, str3, ...)

Funkcie FIELD vracia index (pozícia začínajúca na hodonte 1) reťazca str v reťazcoch str1, str2, str3, ... . Ak nie je reťazec str nájdený, funkcia vráti 0.

Príklad:

   SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo')

Výsledok:

FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo')
2

LOWER(str)

Funkcia LOWER() konvertuje reťazec str na malé písmená.

Úloha: Konvertuj kód krahiny (code) na malé písmená v tabuľke country.

   SELECT Name,LOWER(code) from country

Výsledok:

Name LOWER(code)
Afghanistan afg
Netherlands nld
Netherlands Antilles ant
Albania alb
Algeria dza
American Samoa asm
Andorra and
Angola ago


UPPER

Funkcia UPPER() konvertuje reťazec na veľké písmená.


Úloha: konvertuj názov mesta (name) na veľké písmená v tabuľke city.

   SELECT UPPER(name) FROM city

Výsledok:

upper(name)
MAZAR-E-SHARIF
AMSTERDAM
HAAG
UTRECHT
EINDHOVEN
TILBURG

LTRIM(str)

Zo začiatku reťazca str odstráni nečitateľné znaky (medzery).

Príklad:

   SELECT LTRIM('   ahoj DBS')


Výsledok:

LTRIM(' ahoj DBS')
ahoj DBS


RTRIM(str)

Z konca reťazca str odstráni nečitateľné znaky (medzery).

Príklad:

   SELECT RTRIM('ahoj DBS   ')

Výsledok:

RTRIM('ahoj DBS ')
ahoj DBS


TRIM

Zo začiatku a konca reťazca str odstráni nečitateľné znaky (medzery).

Príklad:

   SELECT TRIM('   ahoj DBS    ')


Výsledok:

TRIM(' ahoj DBS ')
ahoj DBS

Dátumové funkcie

ADDDATE(date,INTERVAL days)

Funkcia ADDDATE pripočíta k zadanému dátumu date zadaný počet dní (hodnota days). Parameter days môžeme zadávať pomocou funkcie INTERVAL, alebo ako celé číslo.

Príklad:

SELECT ADDDATE('2010-12-20',10),
       ADDDATE('2010-12-20', INTERVAL 11 DAY)

Výsledok:

ADDDATE('2010-12-20',10) ADDDATE('2010-12-20', INTERVAL 11 DAY)
2010-12-30 2010-12-31


ADDTIME(T1,T2)

Funica ADDTIME pripočíta k času T1 čas T2. Výsledok je súčet týchto časov.


   SELECT ADDTIME('2010-12-20 10:00:0.0','1 1:1:1.000002')

Výsledok:

ADDTIME('2010-12-20 10:00:0.0','1 1:1:1.000002')
2010-12-21 11:01:01.000002


CURRDATE

Vracia aktuálny dátum ako hodnotu vo formáte 'YYYY-MM-DD' alebo RRRRMMDD, v závislosti na tom, či funkcia je použitá v reťazeci alebo číselnom kontexte.

Príklad:

   SELECT CURDATE()

Výsledok:

CURDATE()
2010-12-15


CURTIME

Vracia aktuálny čas ako hodnotu v 'HH:MM:SS' alebo HHMMSS formáte, v závislosti na tom, či funkcia je použitá v reťazci alebo číselnom kontexte. Táto hodnota je vyjadrená v aktuálnom časovom pásme.

Príklad:

   SELECT CURTIME()

Výsledok:

CURTIME()
18:31:48


DATEDIFF(D1,D2)

Funkcia DATEDIFF vráti rozdiel v dňoch medzi dátumami D1 a D2.

Príklad:

   SELECT DATEDIFF('2010-12-31 23:59:59','2010-12-20')

Výsledok:

DATEDIFF('2010-12-31 23:59:59','2010-12-20')
11


DATE(D)

Z dátumu a času D vyberie len dátum.

Príklad:

   SELECT DATE('2010-12-31 01:02:03')

Výsledok:

DATE('2010-12-31 01:02:03')
2010-12-31


DAY

DAY je synonymom pre DAYOFMONTH.



DAYNAME(D)

Z dátumu D určí názov dňa.

Príklad:

   SELECT DAYNAME('2010-12-16')

Výsledok:

DAYNAME('2010-12-16')
Thursday


DAYOFWEEK(D)

Vráti číslo dňa v týždni (1 = nedeľa, 2 = pondelok, ... , 7 = sobota). Tieto hodnoty indexu zodpovedajú štandardu ODBC[2].

Príklad:

   SELECT DAYOFWEEK('2010-12-31 01:02:03')

Výsledok:

DAYOFWEEK('2010-12-31 01:02:03')
6


DAYOFMONTH(D)

Z dátumu D vyberie číslo dňa, v rozmedzí 0 - 31.

Príklad:

   SELECT DAYOFMONTH('2010-12-31 01:02:03')

Výsledok:

DAYOFMONTH('2010-12-31 01:02:03')
31


DAYOFYEAR

Vracia poradové číslo dňa v roku v rozsahu 1 až 366.

Príklad:

   SELECT DAYOFYEAR('2010-12-20')

Výsledok:

DAYOFYEAR('2010-12-20')
354


HOUR(T)

Funkcia HOUR vyberie z dátumu/času T len hodinu.

Príklad:

   SELECT HOUR('2010-12-20 10:12:58.55')

Výsledok:

HOUR('2010-12-20 10:12:58.55')
10


NOW

Zistí aktuálny dátum a čas.

Príklad:

   SELECT NOW()

Výsledok:

NOW()
2010-11-03 10:45:55


SYSDATE

Vráti aktuálnu hodnotu dátumu a času, podľa systémového času.

Príklad:

   SELECT SYSDATE()

Výsledok:

SYSDATE()
2010-12-20 12:21:33


WEEK

Z dátumu určí číslo týždňa v intervale 1 až 52.

Príklad:

   SELECT WEEK('2010-12-18')


Výsledok:

WEEK('2010-12-18')
50

YEAR(D)

Z dátumu D určí rok.

Príklad:

   SELECT YEAR('2010-12-20')

Výsledok:

YEAR('2010-12-20')
2010

Šifrovacie a komprimačné

Nasledujúce funkcie ponúkajú šifrovanie, dešifrovanie a hašovanie textových dát[3].


AES_ENCRYPT( nezasifrovany_text , kluc )

Funkcie AES_ENCRYPT() a AES_DECRYPT() šifrujú a dešifrujú dáta pomocou oficiálneho algoritmu AES(Advanced Encryption Standard). Dĺžka šifrovacieho kľúča je 128 bitov. Dĺžku kľúča sa môže predĺžiť až na 256 bitov.

   INSERT INTO test (text,zasifrovane,heslo) VALUES ("kiwiki",AES_ENCRYPT("kiwiki","123456789"),"1234567789")

Výsledok:

Šifrovanie pomocou AES_ENCRYPT


AES_DECRYPT( zasifrovany_text , kluc)

Táto funkcia dešifruje dáta pomocou šifrovacieho algoritmus AES (Advanced Encryption Standard)

   SELECT text, AES_DECRYPT(zasifrovane,"123456789") AS rozsifrovane ,heslo FROM test

Výsledok:

Dešifrovanie pomocou AES_DECRYPT


COMPRESS( str ), UNCOMPRESS( str )

Komprimuje/dekomprimuje reťazec a vráti výsledok ako binárny reťazec. Táto funkcia vyžaduje konfiguráciu MySQL servara tak, aby boli zostavený s kompresnou knižnicu zlib. V opačnom prípade je návratová hodnota vždy NULL. Komprimovaný reťazec môže byť dekomprimovaný funkciou UNCOMPRESS().

   INSERT INTO test (text,zasifrovane) VALUES ("kiwiki",COMPRESS("kiwiki"))

Výsledok:

Výsledok komprimácie pomocou funkcie COMPRESS


   SELECT id, text, UNCOMPRESS(zasifrovane) AS dekomprimovane FROM test

Výsledok:

Výsledok dekomprimácie pomocou funkcie UNCOMPRESS


ENCODE(str,heslo)

Šifruje dáta str pomocou nami zadaného šifrovacieho hesla heslo. Výsledok šifrovania je binárny reťazec rovnakej dĺžky ako pôvodný. Na dešifrovanie sa používa funcia DECODE.

Príklad:

 SELECT ENCODE("kiwiki", "heslo")

Výsledok:

Zašifrovanie pomocou funkcie ENCODE


DECODE(crypt_str,heslo)

Funkcia DECODE je opak funkcie ENCODE. Dešifruje zašifrované dáta funkciou ENCODE pomocou vloženého hesla pri šifrovaní[4].


Príklad:

 SELECT DECODE( ENCODE("kiwiki","heslo"), "heslo")


Výsledok:

DECODE( ENCODE("kiwiki","heslo"), "heslo")
kiwiki


DES_DECRYPT( text, [kluc]), DES_ENCRYPT(text , kluc)

Funkcie DES_ENCRYPT() a DES_DECRYPT() šifrujú a dešifrujú dáta pomocou oficiálneho algoritmu DES. Použitie je podobné ako pri funkciách AES_DECRYPT a AES_ENCRYPT.


MD5() (Message-Digest algorithm)

Hašovacia funkcia, mení vstupné dáta na výstupné dáta fixnej dĺžky.

Príklad:

 SELECT MD5(password) FROM tabulka


Výsledok:

MD5(password)
21232f297a57a5a743894a0e4a801fc3


SHA1(), SHA() (Secure Hash Algorithm)

Hašovacia funkcia, mení vstupné dáta na výstupné dáta fixnej dĺžky.

Príklad:

 SELECT SHA(password) FROM tabulka
 SELECT SHA1(password) FROM tabulka


Výsledok:

SHA(password)/SHA1(password)
d033e22ae348aeb5660fc2140aec35850c4da997


PASSWORD()

Na základe vtupného textu vypočíta heslo. Táto funkcia je použitá na generovanie hesiel v databáze mysql (tabuľka users).

  SELECT PASSWORD('kiwiki')

Výsledok:

PASSWORD('kiwiki')
*D94D4484B4D4060225F91D28D7BB131F917F760C

Zdroje a odkazy