Lekérdezések
select – választó lekérdezés
SELECT [mezők vagy *] DISTINCT – Duplikált értékek kiszűrése:
FROM [tábla]
WHERE [feltétel]
GROUP BY [oszlop(ok)]
HAVING [feltétel csoportosított adatokra]
ORDER BY [oszlop(ok)] [ASC|DESC]
LIMIT [sorok száma];
Szűrés és logikai operátorok
- =, >, <, >=, <=, <> (nem egyenlő)
- AND, OR, NOT
- BETWEEN alsóérték AND felsőérték (tartalmazza a határértékeket is) Számokra, dátumokra és szövegekre is használható. Szövegeknél az összehasonlítás ABC sorrend szerint történik
- IN
- LIKE
A LIKE operátor a MySQL-ben mintázatkeresésre szolgál, és a wildcard karakterek segítségével rugalmas szűrést tesz lehetővé.
% – Tetszőleges számú karakter
_ – Pontosan egy karakter
LIKE ‘A%’ → A-val kezdődő
NOT LIKE ‘A%’ → Nem A-val kezdődő
a LIKE alapértelmezetten nem érzékeny kis- és nagybetűre MySQL-ben (kivéve ha a collation case-sensitive).
Az IS NULL és IS NOT NULL MySQL-ben arra szolgál, hogy ellenőrizzük, egy oszlop értéke NULL-e vagy sem. Ez fontos, mert a NULL nem egyenlő 0-val, üres stringgel vagy FALSE-szal, hanem azt jelenti: „nincs érték”
DISTINCT – Egyedi értékek lekérdezése, a SELECT után kell megadni. A megadott oszlop(ok) alapján csak egyszer jelenik meg minden egyedi érték
CASE – feltételes logika, hasonlóan működik, mint az if-else szerkezet. Akár SELECT-ben, akár WHERE-ben, akár ORDER BY-ban is használható.
|
1 2 3 4 5 |
CASE WHEN feltétel THEN eredmény WHEN másik_feltétel THEN más_eredmény ELSE alapértelmezett END |
Adatmódosító parancsok
INSERT – Új sor beszúrása
|
1 2 |
INSERT INTO tábla (oszlop1, oszlop2, ...) VALUES (érték1, érték2, ...); |
UPDATE – Sor módosítása
|
1 2 3 |
UPDATE tábla SET oszlop1 = új_érték1, oszlop2 = új_érték2, ... WHERE feltétel; |
DELETE – Sor törlése. WHERE nélkül minden sor törlődik a táblából!
|
1 2 |
DELETE FROM tábla WHERE feltétel; |
Függvények a MySQL-ben
Aggregáló függvények
Az aggregáló függvények MySQL-ben olyan beépített függvények, amelyek több sorból egyetlen összesített értéket számolnak ki. Ezeket leggyakrabban GROUP BY-val együtt használjuk, de sima lekérdezésben is előfordulhatnak.
COUNT() – Sorok száma.
- COUNT(*) → minden sort számol
- COUNT(oszlop) → csak nem NULL értékeket számol, ezért szokuk általában az elsődleges kulcsot megadni
SUM() – Összeg
AVG() – Átlag
MIN(), MAX() – Minimum, maximum
GROUP BY – Csoportosítás
HAVING – Feltétel csoportosított adatokra. A WHERE pedig sorokra vonatkozó feltétel!
Aggregáló függvények nem használhatók közvetlenül WHERE-ben, csak HAVING-ben!
Ha nincs GROUP BY, az egész tábla egyetlen csoportnak számít.
|
1 2 |
SELECT mező AS alias_név FROM tábla; |
Gyakran használunk aliasokat (AS) a jobb átláthatóság miatt.
Karakterlánc kezelő függvények
A programozás órán már megismert függvényekhez hasonlóan, ezek a függvények is szöveges adatokon hajtanak végre műveleteket (átalakítás, manipuláció, keresés).
| LOWER(szoveg) | Az összes nagybetűt kisbetűvé alakítja. Alapvető a kis- és nagybetű érzéketlen összehasonlításhoz. |
| UPPER(szoveg) | Az összes kisbetűt nagybetűvé alakítja. |
| CONCAT(szoveg1, szoveg2, …) | Összefűz két vagy több karakterláncot. |
| SUBSTRING(szoveg, kezdet, hossz) | Kivág egy részt a karakterláncból a megadott kezdőpozíciótól a megadott hosszúságban. |
| LENGTH(szoveg) | Visszaadja a karakterlánc hosszát (karakterek számát). |
| TRIM(szoveg) | Eltávolítja a kezdő és záró szóközöket (vagy más megadott karaktereket) a karakterlánc két végéről. |
Matematikai függvények
Ezek a függvények számokkal végeznek matematikai műveleteket.
| ROUND(szam, tizedes) | Kerekíti a számot a megadott tizedesjegyre. |
| CEIL(szam) vagy CEILING(szam) | A számot felfelé kerekíti a legközelebbi egész számra. |
| FLOOR(szam) | A számot lefelé kerekíti a legközelebbi egész számra |
| ABS(szam) | Visszaadja a szám abszolút értékét (előjel nélkül). |
| POWER(alap, kitevo) | Hatványozást végez. |
Dátum és idő függvények
Ezek a függvények dátum- és időértékekkel dolgoznak.
Aktuális dátum és idő
| NOW() | Visszaadja az aktuális rendszerdátumot és időt, dátum/idő formátumban. |
| CURDATE() | Visszaadja az aktuális dátumot, dátum formátumban. |
| CURTIME() | Visszaadja az aktuális időt, idő formátumban. |
| SYSDATE() | Ugyanaz, mint a NOW(), de frissül, ha egy lekérdezés sokáig fut. |
Dátum kinyerése
| YEAR(datum) | Visszaadja az évet. |
| MONTH(datum) | Visszaadja a hónap számát (1-12) |
| DAY(datum) / DAYOFMONTH(datum) | Visszaadja a nap számát a hónapban (1-31). |
| WEEK(datum) | Visszaadja a hét számát az évben. |
| DAYOFWEEK(datum) | Visszaadja a nap számát a hétben (1=Vasárnap, 7=Szombat) |
| HOUR(idop), MINUTE(idop), SECOND(idop) | Visszaadja az óra, perc, vagy másodperc részét. |
| MONTHNAME(datum) | Visszaadja a hónap nevét (angolul). |
Dátum és Idő Számítások
| DATE_ADD(datum, INTERVAL ertek egyseg) | Hozzáad egy meghatározott intervallumot egy dátumhoz. |
| DATE_SUB(datum, INTERVAL ertek egyseg) | Kivon egy meghatározott intervallumot egy dátumból. |
| DATEDIFF(datum1, datum2) | Két dátum közötti különbséget adja vissza napokban. |
| TIMEDIFF(ido1, ido2) | Két időpont közötti különbséget adja vissza TIME formátumban. |
| TIMESTAMPDIFF(egyseg, ido1, ido2) | Két időpont közötti különbséget adja vissza egy megadott egységben (pl. MINUTE, HOUR, YEAR). |
Formázó karakterek:
%Y Év négy számjeggyel 2025
%m Hónap szám (01-12) 11
%d Nap szám (01-31) 26
%H Óra 24 órás formátumban (00-23) 20
%i Perc (00-59) 12
%s Másodperc (00-59) 39
%W Hét napjának neve (angol) Wednesday
