SQL
Megjelenés
Főnév
SQL (tsz. SQLs)
Az SQL (Structured Query Language) egy deklaratív programozási nyelv, amelyet relációs adatbázis-kezelő rendszerekben (RDBMS) használnak adatok lekérdezésére, módosítására és kezelésére. Az SQL nem egy általános célú programozási nyelv, hanem kifejezetten adatbázis-műveletekre szabott, emiatt a very high-level language (VHLL) kategóriába sorolható.
📦 Mire használjuk?
Művelet | Példa | Leírás |
---|---|---|
Lekérdezés | SELECT
|
Adatok kinyerése táblákból |
Beszúrás | INSERT
|
Új sor(ok) hozzáadása |
Módosítás | UPDATE
|
Létező adatok szerkesztése |
Törlés | DELETE
|
Sor(ok) törlése |
Struktúra kezelés | CREATE , ALTER , DROP
|
Tábla, nézet, index, stb. létrehozása vagy módosítása |
Jogosultság | GRANT , REVOKE
|
Felhasználók hozzáféréseinek kezelése |
🧾 Alap szintaxis példák
➤ Táblából lekérdezés
SELECT name, age
FROM students
WHERE age > 18
ORDER BY name ASC;
➤ Új adat beszúrása
INSERT INTO students (name, age)
VALUES ('Anna', 22);
➤ Adatok frissítése
UPDATE students
SET age = age + 1
WHERE name = 'Anna';
➤ Sor törlése
DELETE FROM students
WHERE age < 18;
🔍 SQL jellemzői
Tulajdonság | Részletezés |
---|---|
Deklaratív nyelv | Leírod mit szeretnél, nem hogyan |
Standardizált | ISO és ANSI szabványon alapul |
Kiterjeszthető | Különböző DBMS-ek (pl. MySQL, PostgreSQL, Oracle, MS SQL Server) bővítik |
Nem Turing-teljes | Klasszikus SQL nem tud általános programokat futtatni (nincs ciklus, rekurzió), de PL/SQL vagy T-SQL igen |
📚 További fogalmak
1. JOIN – Több tábla összekapcsolása
SELECT orders.id, customers.name
FROM orders
JOIN customers ON orders.customer_id = customers.id;
Típusai: INNER JOIN
, LEFT JOIN
, RIGHT JOIN
, FULL JOIN
.
2. GROUP BY – Csoportosítás és aggregálás
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
3. Allekérdezés (subquery)
SELECT name
FROM students
WHERE age > (SELECT AVG(age) FROM students);
4. Nézetek (VIEW) – Lekérdezések virtuális táblaként
CREATE VIEW adults AS
SELECT * FROM students WHERE age >= 18;
🧠 Miért “very high-level”?
- Egy sorban végrehajtható komplex adatfeldolgozás (pl.
AVG
,JOIN
,GROUP BY
) - Nem kell gondolnod a végrehajtás módjára – a DBMS optimalizálja
- Valódi deklaratív nyelv – teljes mértékben problémaorientált
⚖️ Előnyök és hátrányok
Előny | Hátrány |
---|---|
Kompakt, jól olvasható lekérdezések | Bonyolult logika nehezen kezelhető |
Deklaratív és könnyen tanulható | Hagyományos programozásra nem alkalmas |
Standardizált, hordozható | Eltérések lehetnek különböző DBMS-ek között |
Erőteljes optimalizálás | A végrehajtási tervet nem tudod közvetlenül irányítani |
🌐 SQL bővítmények
Név | Leírás |
---|---|
PL/SQL (Oracle) | Eljárásorientált bővítés, vezérlési szerkezetekkel |
T-SQL (SQL Server) | Microsoft-féle procedurális SQL |
pgSQL (PostgreSQL) | PostgreSQL procedurális bővítménye |
🧩 Összefoglalás
Az SQL egy nagyon magas szintű deklaratív nyelv, amelyet relációs adatbázisokkal való munkára terveztek. Lehetővé teszi, hogy az adatokat hatékonyan, tömören és olvashatóan manipuláljuk anélkül, hogy részleteznénk a háttérben zajló végrehajtási lépéseket.