Mi az a SQL? Az adatbázis-nyelv egyszerűen elmagyarázva
A SQL (Structured Query Language, kiejtve „esz-kú-el” vagy „szekvel”) a relációs adatbázisokkal való munka szabványos nyelve – azoké, amelyek sorokból és oszlopokból álló táblákban tárolják az adatokat, például a Postgres, a MySQL, a SQLite és a SQL Server. A SQL-lel kérdezel rá az adataidra („mely ügyfelek foglaltak ebben a hónapban?”), és adhatsz hozzá, módosíthatsz vagy törölhetsz rekordokat. Az 1970-es évek óta létezik, nemzetközi szabvány, és a világ alkalmazásainak nagy részét hajtja.
Miért fontos a SQL, ha AI-val építkezel
Ha azt kéred egy AI-alkalmazás-építőtől, hogy „mentse el a rendeléseket” vagy „mutass egy listát a közelgő foglalásokról”, valaminek beszélnie kell az adatbázissal – és a legtöbb alkalmazásban ez SQL, akár közvetlenül írva, akár egy ORM által generálva.
Nem kell magadnak SQL-t írnod, de egy kis megértés megtérül:
- Ellenőrizheted a saját adataidat. Egy rövid lekérdezés gyorsabban válaszol arra, hogy „hány regisztráció érkezett ezen a héten?”, mint egy új képernyő megépítése.
- Jobb riportokat kérhetsz. A „bevétel havonként és szolgáltatásonként csoportosítva” SQL-gondolkodás. Ha ezt ismered, pontosabban kérhetsz.
- Felismerheted a veszélyes változtatásokat. A
WHEREfeltétel nélküliDELETEvagyUPDATEminden sort érint. Ezt érdemes elkapni, mielőtt lefut. - Az adataid nincsenek bezárva. A SQL közös szabvány, így a SQL-adatbázisban lévő adatokat sok eszköz át tudja vinni és olvasni.
Hétköznapi hasonlat
Gondolj egy nagyon jól rendezett könyvtárra, ahol a könyvtáros csak egy pontos, egyszerű nyelven beszél.
Nem a polcok között keresgélsz magad. Odaadod a könyvtárosnak a cédulát: „Keress minden könyvet ettől a szerzőtől, 2010 után megjelentet, a legújabbal kezdve.” A könyvtáros kívülről ismeri az épületet, és pontosan azokat a könyveket hozza, abban a sorrendben.
A SQL az a nyelv a cédulán. Azt mondod meg, mit akarsz, nem azt, hogyan találd meg – az adatbázis maga találja ki a leggyorsabb utat.
Hogyan működik a SQL: táblák, sorok és oszlopok
A relációs adatbázis adatait táblákban tárolja. Minden tábla egyfajta dolgot tartalmaz, minden sor egy rekord, minden oszlop egy információ:
customers
| id | name | city | |
|---|---|---|---|
| 1 | Lena Ortiz | lena@example.com | Lisbon |
| 2 | Sam Patel | sam@example.com | Leeds |
orders
| id | customer_id | total | placed_at |
|---|---|---|---|
| 101 | 1 | 42.00 | 2026-09-20 |
| 102 | 2 | 18.50 | 2026-09-22 |
| 103 | 1 | 25.00 | 2026-09-27 |
A customer_id oszlop köti össze az egyes rendeléseket egy ügyféllel. Ez a kapcsolat teszi az adatbázist „relációssá”.
Munkapélda: valós kérdések megválaszolása
1. Adatok olvasása – „mutasd az összes lisszaboni ügyfelet”:
SELECT name, email
FROM customers
WHERE city = 'Lisbon';
2. Rendezés és korlátozás – „az öt legutóbbi rendelés”:
SELECT id, total, placed_at
FROM orders
ORDER BY placed_at DESC
LIMIT 5;
3. Táblák összekapcsolása – „minden rendelés az ügyfél nevével”:
SELECT o.id, c.name, o.total
FROM orders o
JOIN customers c ON c.id = o.customer_id;
4. Összegzés – „ügyfelenként összesen elköltött összeg”:
SELECT c.name, SUM(o.total) AS total_spent
FROM customers c
JOIN orders o ON o.customer_id = c.id
GROUP BY c.name
ORDER BY total_spent DESC;
A példaadatokkal ez Lena Ortiz 67.00-s, Sam Patel pedig 18.50-es összeget ad vissza.
5. Adatok módosítása:
INSERT INTO customers (name, email, city)
VALUES ('Ana Silva', 'ana@example.com', 'Porto');
UPDATE customers SET city = 'Porto' WHERE id = 1;
DELETE FROM orders WHERE id = 102;
Ezek szinte minden alkalmazás négy alapművelete – létrehozás, olvasás, módosítás és törlés –, amelyet CRUD néven ismerünk.
Egy figyelmeztetés: az UPDATE customers SET city = 'Porto'; WHERE feltétel nélkül minden ügyfél városát megváltoztatja. Mindig ellenőrizd a WHERE részt, mielőtt egy módosítást futtatsz.
A SQL fő elemei
| Parancs | Mit csinál |
|---|---|
SELECT | Adatok olvasása |
INSERT | Új sorok hozzáadása |
UPDATE | Meglévő sorok módosítása |
DELETE | Sorok eltávolítása |
CREATE TABLE / ALTER TABLE | Tábla szerkezetének létrehozása vagy módosítása |
WHERE | Szűri, mely sorokat érinti a művelet |
JOIN | Kapcsolódó táblák összekapcsolása |
GROUP BY | Sorok csoportosítása összegzéshez, COUNT, SUM, AVG függvényekkel |
ORDER BY / LIMIT | Az eredmények rendezése és korlátozása |
A SQL szabványosított, de minden adatbázis hozzáad saját kiegészítéseket, amelyeket dialektusnak nevezünk. A Postgres, a MySQL és a SQLite mind érti a fenti példákat, bár az olyan részletek, mint a dátumfüggvények, kissé eltérnek.
Kulcsfogalmak
| Fogalom | Jelentés |
|---|---|
| Lekérdezés (query) | Egy SQL-utasítás, különösen az, amely adatot olvas. |
| Tábla / sor / oszlop | Egyfajta dolog / egy rekord / egy tulajdonság. |
| Elsődleges kulcs (primary key) | Az az oszlop, amely minden sort egyedileg azonosít, általában az id. |
| Idegen kulcs (foreign key) | Egy másik tábla sorára mutató oszlop, például customer_id. |
| Index | Keresési szerkezet, amely jelentősen felgyorsítja egy oszlop keresését. |
| Séma (schema) | Az összes tábla és oszlop szerkezete. |
| Tranzakció | Változtatások csoportja, amelyek együtt sikerülnek vagy együtt buknak el. |
| SQL-injekció | Támadás, amelyben a felhasználói bemenetet lekérdezésbe csempészik. Paraméterezett lekérdezésekkel előzhető meg. |
Gyakori tévhitek
- „A SQL egy adatbázis.” A SQL a nyelv; a Postgres, a MySQL és a SQLite olyan adatbázisok, amelyek beszélik.
- „A SQL régi, tehát elavult.” Érett, nem elavult. A modern adatbázisok és adateszközök ma is használják, az újabbak pedig gyakran hozzáadják a SQL-támogatást.
- „Csak a fejlesztők használhatják a SQL-t.” Elemzők, marketingesek és alapítók is használnak egyszerű lekérdezéseket naponta.
- „A SQL nem bírja a rugalmas adatokat.” Sok SQL-adatbázis JSON-t is tárol. A Postgresnek például van
jsonbtípusa. Lásd: SQL vs NoSQL. - „Az is jó, ha az AI bármilyen SQL-t futtat az éles adatbázison.” Az olvasás kis kockázatú; az élő adatokon végzett módosítások és törlések biztonsági mentést és második ellenőrzést érdemelnek. Lásd: hogyan készíts biztonsági mentést az alkalmazásod adatbázisáról.
Mit kérj az AI-építődtől
- „Mutasd meg az adatbázisomban lévő táblákat, és hogy az egyes oszlopok mit jelentenek.”
- „Írj egy csak olvasó lekérdezést: hány új regisztráció érkezett naponta az elmúlt 30 napban?”
- „Mielőtt bármilyen UPDATE vagy DELETE futna, mutasd meg a lekérdezést, és hány sort érint.”
- „Adj indexeket azokra az oszlopokra, amelyek szerint a leggyakrabban szűrünk és rendezünk.”
- „Győződj meg róla, hogy minden felhasználói bemenetet használó lekérdezés paraméterezett.”
- „A rendelés- és fizetési frissítéseket csomagold tranzakcióba, hogy ne maradhassanak félig sikerült állapotban.”
SQL a Mythexben
Ha az alkalmazásodnak adatokat kell tárolnia, a Mythex egy dedikált Postgres adatbázist ad a projekthez – kérd a csevegésben, például „mentsd a várólista e-mail-címeit adatbázisba”, vagy használd a /database parancsot (Adatbázis). Az ügynök létrehozza a táblákat és megírja a lekérdezéseket, az Ask módban pedig bármelyik lekérdezést közérthetően is elmagyarázhatja neked. Az adatbázisról magáról bővebben a mi az a Postgres útmutatóban olvashatsz.
Kérdések
Mi a SQL egyszerűen fogalmazva?
A SQL (Structured Query Language, strukturált lekérdező nyelv) a relációs adatbázisokkal való munka szabványos nyelve. Ezzel kérdezel rá az adataidra, például hogy „mely rendelések érkeztek ezen a héten”, és ezzel adhatsz hozzá, módosíthatsz vagy törölhetsz rekordokat.
Hogyan ejtjük ki a SQL-t?
Mind az „esz-kú-el” (a betűk külön kimondva), mind a „szekvel” kiejtés elterjedt és helyes. A nyelv eredeti neve SEQUEL volt, innen ered a második kiejtés.
A SQL programozási nyelv?
A SQL adatkezelésre tervezett lekérdező nyelv. Leírod, milyen eredményt szeretnél, az adatbázis pedig kitalálja, hogyan kapja meg. Önmagában nem használják egész alkalmazások építésére, de szinte minden olyan alkalmazás része, amely relációs adatbázist használ.
Nehéz megtanulni a SQL-t?
Az alapok könnyen elsajátíthatók: a SELECT, WHERE, ORDER BY, INSERT, UPDATE és DELETE szinte minden mindennapi igényt lefednek, és majdnem angolul olvasva is érthetők. Az összekapcsolások (join), csoportosítások és a teljesítményhangolás tovább tart elsajátítani.
Kell ismernem a SQL-t, hogy AI-val építsek alkalmazást?
Nem. Az AI-építő megírja helyetted a SQL-t vagy az adatbázis-kódot. Ha valamennyit tudsz róla, az segít ellenőrizni az adataidat, jobb riportokat kérni, és még azelőtt észrevenni a kockázatos változtatásokat, hogy megtörténnének.