V dnešnej poslednej lekcii vám ukážem, čo sa všetko dá spraviť v MySQL. Ako napríklad vypísanie aktuálnej verzie, používateľa, dátumu a času, rôznych matematických funkcií a veľa iných vecí.
K aktuálnemu výpisu dátumu času, používateľa a verzie môžeme použiť príkaz:
mysql> SELECT NOW(),USER(), VERSION()\G
Odpoveď servera:
*************************** 1. row ***************************
NOW(): 2006-04-12 12:35:52
USER(): ODBC@localhost
VERSION(): 3.23.51-nt
1 row in set (0.00 sec)
Ako sme si mohli všimnúť, namiesto stredníka ; sme použili \G. Ten nám ukončí riadok a výsledky potom zobrazí v zvislom formátu. Použitím malého písmenka g sa nám len SQL dotaz ukončí a klasicky vypíše.
MySQL môžeme používať aj ako kalkulačku nakoľko sa v nej dajú vypočítať rôzne výpočty. Spomeniem aspoň pár základných.
Základné matematické operácie
Základné operacié „+ - * /“ sa v prípade dlhšieho zápisu dávajú do zátvoriek.
mysql> SELECT 10+10;
Odpoveď servera:
+-------+
| 10+10 |
+-------+
| 20 |
+-------+
1 row in set (0.02 sec)
mysql> SELECT 15*15;
Odpoveď servera:
+-------+
| 15*15 |
+-------+
| 225 |
+-------+
1 row in set (0.01 sec)
mysql> SELECT (23*5)+6-(20/10);
Odpoveď servera:
+------------------+
| (23*5)+6-(20/10) |
+------------------+
| 119.00 |
+------------------+
1 row in set (0.01 sec)
Hodnotu PI vracia zápis:
mysql> SELECT pi();
Odpoveď servera:
+----------+
| PI() |
+----------+
| 3.141593 |
+----------+
1 row in set (0.00 sec)
Druhú odmocninu x čísla získame zápisom:
mysql> SELECT SQRT(625);
Odpoveď servera:
+-----------+
| SQRT(625) |
+-----------+
| 25.000000 |
+-----------+
1 row in set (0.00 sec)
Funkcie pre prácu s reťazcami
Vracia ASCII kód prvého znaku reťazca str zľava. Vracia hodnotu 0, ak je str reťazec prázdny, a NULL, ak je str NULL.
mysql> SELECT ASCII('abc');
Odpoveď servera:
+--------------+
| ASCII('abc') |
+--------------+
| 97 |
+--------------+
1 row in set (0.00 sec)
Vracia hodnotu n v binárnom tvare ako reťazec.
mysql> SELECT BIN(2);
Odpoveď servera:
+--------+
| BIN(2) |
+--------+
| 10 |
+--------+
1 row in set (0.00 sec)
Interpretuje argumenty ako kódy ASCII a vracia reťazec obsahujúci zreťazenie týchto kódov. Argumenty NULL sa ignorujú.
mysql> SELECT CHAR(89,56,80);
Odpoveď servera:
+----------------+
| CHAR(89,56,80) |
+----------------+
| Y8P |
+----------------+
1 row in set (0.00 sec)
Vracia hexadecimálný reťazec.
mysql> SELECT HEX(255);
Odpoveď servera:
+----------+
| HEX(255) |
+----------+
| FF |
+----------+
1 row in set (0.01 sec)
Vracia dĺžku reťazca str.
mysql> SELECT LENGTH('abcde');
Odpoveď servera:
+-----------------+
| LENGTH('abcde') |
+-----------------+
| 5 |
+-----------------+
1 row in set (0.00 sec)
Vracia reťazec str, v ktorom sú znaky v opačnom poradí. Vracia NULL, pokiaľ je NULL.
mysql> SELECT REVERSE('abcdefghchijklmnoprstuvxyz');
Odpoveď servera:
+---------------------------------------+
| REVERSE('abcdefghchijklmnoprstuvxyz') |
+---------------------------------------+
| zyxvutsrponmlkjihchgfedcba |
+---------------------------------------+
Práca s časom
Vracia poradové číslo dňa v roku z hodnoty date v rozsahu 1 až 366.
mysql> SELECT DAYOFYEAR('2006-04-13');
Odpoveď servera:
+-------------------------+
| DAYOFYEAR('2006-04-13') |
+-------------------------+
| 103 |
+-------------------------+
1 row in set (0.00 sec)
Vracia názov mesiaca z hodnoty date.
mysql> SELECT MONTHNAME('2006-04-13');
Odpoveď servera:
+-------------------------+
| MONTHNAME('2006-04-13') |
+-------------------------+
| April |
+-------------------------+
1 row in set (0.00 sec)
Vracia aktuálny dátum a čas ako reťazec vo formáte CCYY-MM-DD hh:mm:ss, alebo ako číslo vo formáte CCYYMMDDhhmmss v závislosti na tom, v akom kontexte sa zavolajú.
mysql> SELECT NOW();
Odpoveď servera:
+---------------------+
| NOW() |
+---------------------+
| 2006-04-12 13:41:29 |
+---------------------+
1 row in set (0.00 sec)
Záver
Čo dodať na záver, snáď len ĎAKUJEM za vašu pozornosť a čas strávený pri čítaní týchto lekcií a dúfam, že vás naučily tie správne základy ohľadom databázového programovania v prostredí MySQL