A legfontosabb SQL kódok: Hogyan urald az adatbázisokat 7 alapvető paranccsal?
Akár fejlesztőként, adatelemzőként vagy termékmenedzserként dolgozol, van egy közös nevező: az adatok. Új keretrendszerek jönnek és mennek, de az SQL (Structured Query Language) több mint négy évtizede a relációs adatbázisok vitathatatlan világnyelve. A jó hír: az SQL szintaxisa nem elvont matematikai képletekből áll, hanem meglepően közel áll a beszélt angol nyelvhez. Nem kell vastag szakkönyveket átnyálaznod ahhoz, hogy értékes információkat nyerj ki egy rendszerből. A mindennapi feladatok 90%-át mindössze néhány kulcsfontosságú paranccsal meg tudod oldani. Lássuk ezeket!
1.Az alapok alapja: Adatlekérdezés és szűrés (SELECT, WHERE, ORDER BY)
Az adatlekérdezés a kiválasztás (SELECT) paranccsal indul. Meghatározod, mely mezőket kéred le, honnan (FROM), milyen feltétel alapján (WHERE), és milyen sorrendben (ORDER BY).
példa:
SQL
SELECT nev, email, regisztracio_datuma
FROM felhasznalok
WHERE aktiv = 1
ORDER BY regisztracio_datuma DESC;
Mit csinál:
Listázza a felhasználók táblából azoknak a felhasználóknak a nevét, e-mail címét és regisztrációs dátumát, akik aktív státusszal rendelkeznek, majd a regisztráció dátuma alapján csökkenő sorrendbe jeleníti meg.
- Tipp: Kerüld a SELECT * használatát éles környezetben! Mindig csak azokat az oszlopokat kérd le, amelyekre tényleg szükséged van, ezzel kíméled a hálózatot és gyorsítod a lekérdezést.
2.Új sor beszúrása (INSERT INTO):
példa:
SQL
INSERT INTO felhasznalok (nev, email, aktiv)
VALUES ('Kovács Anna', 'anna@pelda.com', 1);
Mit csinál:
A zárójelben megadott adatokkal létrehoz egy új sort a táblában.
3.Adat módosítása (UPDATE):
példa:
SQL
UPDATE felhasznalok
SET aktiv = 0
WHERE id = 42;
Mit csinál:
Csak a 42-es sorszámú adatsornál állítja át az aktivitást jelző mezőt nullára.
4.Rekord törlése (DELETE):
példa:
SQL
DELETE FROM felhasznalok
WHERE utolso_belepes < '2024-01-01';
Mit csinál:
törli azokat a rekordokat, ahol az utolsó belépés dátuma régebben történt mint 2024-01-01
· Tipp: A junior fejlesztők réme. Soha ne futtass UPDATE vagy DELETE parancsot WHERE feltétel nélkül, hacsak nem akarod a tábla összes sorát egyszerre felülírni vagy kitörölni!
5. Láss a számok mögé: Riportok és statisztikák (GROUP BY, HAVING)
Egy több tízezer soros táblázatban könnyű elveszni: a rengeteg különálló tranzakció önmagában még nem mondja meg, hogyan teljesít a vállalkozás. A vezetőséget vagy a marketingcsapatot ritkán érdekli a huszonötödik egyedi vásárló számlája, ők a trendekre, a havi bevételekre és az átlagos költésekre kíváncsiak.
Itt jön a képbe az SQL igazi elemző ereje. Az Excelből is ismert aggregáló függvényekkel (COUNT a darabszámhoz, SUM az összegzéshez, AVG az átlaghoz) pillanatok alatt összesítheted az adatokat. A GROUP BY segítségével logikai csoportokba rendezheted a rekordokat például országonként vagy termékkategóriánként, a HAVING záradékkal pedig kiszűrheted, hogy a kész összegzések közül melyek kerüljenek a riportodba. Így a nyers adathalmazból percek alatt vezetőségi döntéstámogató kimutatás válik.
példa:
SQL
SELECT orszag, COUNT(*) AS felhasznalok_szama
FROM felhasznalok
GROUP BY orszag
HAVING COUNT(*) >= 50
ORDER BY felhasznalok_szama DESC;
Mit csinál:
Országonként csoportosítva megszámolja a felhasználókat, majd a felhasználók száma szerint csökkenő sorrendben kilistázza azokat az országokat (a létszámmal együtt), ahol legalább 50 felhasználó található.
- Tipp: A WHERE az egyes sorokat szűri még a csoportosítás előtt, míg a HAVING már az elkészült csoportok és aggregált eredmények szűrésére szolgál.
6. Új tábla létrehozása oszloptípusokkal, kulcsokkal (CREATE TABLE)
példa:
SQL
CREATE TABLE termekek (
id INT PRIMARY KEY,
nev VARCHAR(100) NOT NULL,
ar DECIMAL(10, 2),
letrehozva TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Mit csinál:
Létrehozza a termekek nevű táblát, ahol a sorokat azonosító ID az egész számú elsődleges kulcs (ez egy egyedi érték, nem lehet két ugyanolyan id-val rendelkező rekord). Létrehoz egy nev oszlopot, aminek a hosszát 100 karakterben maximalizálja, és nem lehet üres. Egy Ár (ar) oszlopot, ami legfeljebb 10 karakter hosszú lehet, amiből 2 tizedesjegy, és létrehoz egy letrehozva oszlopot, amely új rekord beszúrásakor automatikusan rögzíti az aktuális rendszeridőt.
7.Amikor összeérnek a szálak: Táblák összekapcsolása (JOIN)
A relációs adatbázisok igazi ereje abban rejlik, hogy az adatokat különálló, de összekapcsolható táblákban tároljuk. Például ügyfelek adatai és megrendelések részletei. A táblák közötti hidat a JOIN műveletek képezik. A két adattáblábla közötti közös halmazok nevét ez az ábra szemlélteti:
INNER JOIN: Csak azokat a sorokat adja vissza, amelyek mindkét táblában megtalálhatók.
példa:
SQL
SELECT rendelesek.id, felhasznalok.nev, rendelesek.osszeg
FROM rendelesek
INNER JOIN felhasznalok ON rendelesek.felhasznalo_id = felhasznalok.id;
Mit csinál:
Összekapcsolja a rendelések és a felhasználók adatait, majd kilistázza a rendelés azonosítóját, a vásárló nevét és a rendelés összegét.
LEFT JOIN: A bal oldali tábla összes rekordját megtartja, és csak akkor hozza hozzá a jobb oldali adatokat, ha van egyezés (ha nincs, ott NULL érték szerepel).
Az SQL megtanulása az egyik legmagasabb megtérülésű technikai befektetés. Ha magabiztosan kezeled a fenti parancsokat, tudsz szűrni, rendezni, relációkat összekötni és összegzéseket készíteni, máris képes vagy bármilyen adatbázisból választ adni a legfontosabb üzleti kérdésekre. Éppen ezért az SQL már rég nem csupán a programozók eszköze. Legyen szó marketingről, pénzügyről vagy operatív vezetésről, a nyers adatok közvetlen elérése olyan önállóságot és versenyelőnyt ad, amely rengeteg munkahelyen hasznosítható.