Tartalomjegyzék
Adatmanipuláció
- Szerző: Sallai András
- Copyright © 2019, Sallai András
- Szerkesztve: 2019, 2021
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Beszúrás
INSERT INTO táblanév VALUES (érték1,érték2,érték3,...);
INSERT INTO táblanév (mező1,mező2,mező3,...) VALUES (érték1,érték2,érték3,...);
INSERT INTO táblanév SET mező1=érték1, mező2=érték2, ...
Az utoljára beszúrt rekord azonosítója:
SELECT LAST_INSERT_ID();
Frissítés
UPDATE táblanév SET mező1=érték1,mező2=érték2,... WHERE mező=érték;
Lekérdezés
M betűvel kezdődő nevek megjelenítése:
SELECT * FROM dolgozok WHERE name LIKE "M%";
Á betűvel kezdődő nevek megjelenítése:
SELECT * FROM dolgozok WHERE name RLIKE "^Á.*";
A betűvel kezdődő nevek megjelenítése:
SELECT * FROM dolgozok WHERE name RLIKE "^A.*";
Függvények
Szövegkezelés
lpad()
format()
A format() függvény szintaxisa:
format(szám, törtrész_pozíció[, locale])
Példák:
Kettő tizedesjegy, ezredes elválasztóval:
select format(3843, 2)
Eredmény: 3,843.00
Kettő tizedesjegy, ezredes elválasztóval:
select format(3843, 2, 'hu_HU')
Eredmény: 3.843,00
Valós szám, 2 tizedesjeggyel:
select format(3.12345, 2, 'hu_HU');
Eredmény: 3,12
position()
mid()
Szeretnénk az 5-dik karaktertől, 2 darab karaktert:
select mid('almafa az égen', 5, 2);
Eredmény: fa
length()
char_length()
hex()
ucase és lcase
replace()
trim()
A trim() függvény levágja a szóközöket egy mondat elejéről és végéről.
Szóközök levágása:
trim(" valami ");
Az eredmény: „valami”
Dátum
now()
curdate()
curtime()
Felbontás
Dátum:
select date(now());
Eredmény: 2021-03-16
Idő:
select time(now());
Eredmény: 19:11:59
Év:
select year(now());
Eredmény: 2021
Hónap:
select month(now());
Eredmény: 3
Nap:
select day(now());
Eredmény: 16
Óra:
select hour(now());
Eredmény: 19
Perc:
select minute(now());
Eredmény: 18
Másodperc:
select second(now());
Eredmény: 52
A hónap neve:
select monthname(now());
Eredmény: March
A nap neve:
select dayname(now());
Eredmény: Tuesday
datediff()
timediff()
Operátorok
Aritmetikai
+ | összeadás |
- | kivonás |
* | szorzás |
/ | osztás |
% | maradék képzés |
Összehasonlító operátorok
= |
> |
< |
>= |
<= |
<> |
Értékadó operátorok
+= | plusz egyenlő | |
-= | mínusz egyenlő | |
*= | szorozva egyenlő | |
/= | osztva egyenlő | |
%= | maradékosan osztva egyenlő | |
&= | bitenkénti és egyenlő | |
-= | bitenkénti kizáró vagy egyenlő | |
---|---|---|
*= | bitenkénti vagy egyenlő |
Logikai operátorok
ALL |
AND |
ANY |
BETWEEN |
EXISTS |
IN |
LIKE |
NOT |
OR |
SOME |
Csoportosítás
A csoportosítás végezhetünk egyes mezők alapján. Ha megjelenítendő mező megegyezik a csoportosított mezővel, akkor az ismétlődő adatok csak egyszer jelennek meg.
select telepules from dolgozok group by telepules;
A példában, így lekérdezhetők milyen települések vannak tárolva, és minden település csak egyszer jelenik meg.
A csoportosított mezők mellett azonban használhatunk függvényeket.
A következő példában, a fizetéseket szeretnénk látni településenként összegezve:
select telepules, sum(fizetes) from dolgozok group by telepules;
Vagy településenként átlagolva:
select telepules, avg(fizetes) from dolgozok group by telepules;
Szűrés csoportosítás után
A csoportosítás által kapott adatokat szűrhetjük a having direktívával.
Például, csak azokat a településeket szeretnénk látni, ahol a fizetések átlaga nagyobb mint fél millió:
select telepules, avg(fizetes) from dolgozok group by telepules having avg(fizetes)> 500000 ;
A where direktívával a csoportosítás előtt szűrünk, a having direktívával a csoportosítás után.