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ó.
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 |
SELECT name, age
FROM students
WHERE age > 18
ORDER BY name ASC;
INSERT INTO students (name, age)
VALUES ('Anna', 22);
UPDATE students
SET age = age + 1
WHERE name = 'Anna';
DELETE FROM students
WHERE age < 18;
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 |
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
.
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
SELECT name
FROM students
WHERE age > (SELECT AVG(age) FROM students);
CREATE VIEW adults AS
SELECT * FROM students WHERE age >= 18;
AVG
, JOIN
, GROUP BY
)
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 |
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 |
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.