Adatok lekérdezése táblából.
SELECT name, age FROM users;
Feltétel megadása lekérdezéshez.
SELECT * FROM users WHERE age > 18;
Új sor beszúrása táblába.
INSERT INTO users (name, age) VALUES ('Anna', 25);
Adatok módosítása táblában.
UPDATE users SET age = 26 WHERE name = 'Anna';
Sorok törlése táblából.
DELETE FROM users WHERE age < 18;
Új tábla létrehozása.
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
Tábla szerkezetének módosítása.
ALTER TABLE users ADD email VARCHAR(100);
Tábla törlése.
DROP TABLE users;
Táblák összekapcsolása közös mező alapján.
SELECT u.name, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id;
Eredmények csoportosítása.
SELECT age, COUNT(*)
FROM users
GROUP BY age;
Eredmények rendezése.
SELECT * FROM users ORDER BY age DESC;
Eredmények számának korlátozása.
SELECT * FROM users LIMIT 5;
Egyedi azonosító oszlop.
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50)
);
Kapcsolat másik tábla kulcsával.
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
Csoportosított eredmények szűrése feltétel alapján.
SELECT age, COUNT(*)
FROM users
GROUP BY age
HAVING COUNT(*) > 2;
Két lekérdezés eredményének összekapcsolása.
SELECT name FROM users
UNION
SELECT name FROM admins;
Két lekérdezés összekapcsolása duplikátumok megtartásával.
SELECT name FROM users
UNION ALL
SELECT name FROM admins;
Feltétel teljesülése, ha a belső lekérdezés ad vissza sort.
SELECT name FROM users u
WHERE EXISTS (
SELECT 1 FROM orders o WHERE o.user_id = u.id
);
Érték ellenőrzése egy lista elemei között.
SELECT * FROM users WHERE age IN (18, 25, 30);
Érték ellenőrzése tartományban.
SELECT * FROM users WHERE age BETWEEN 18 AND 30;
Mintaillesztés szövegben.
SELECT * FROM users WHERE name LIKE 'A%';
Feltételes értékadás lekérdezésben.
SELECT name,
CASE
WHEN age < 18 THEN 'Fiatal'
ELSE 'Felnőtt'
END AS kategória
FROM users;
Gyorsabb kereséshez index létrehozása.
CREATE INDEX idx_users_age ON users(age);
Lekérdezésből nézet létrehozása.
CREATE VIEW adult_users AS
SELECT * FROM users WHERE age >= 18;
Tábla gyors ürítése.
TRUNCATE TABLE users;
Több művelet egy tranzakcióban.
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id=1;
UPDATE accounts SET balance = balance + 100 WHERE id=2;
COMMIT;
Tranzakció visszavonása hiba esetén.
ROLLBACK;
Jogosultság adása felhasználónak.
GRANT SELECT ON users TO reader;
Jogosultság visszavonása.
REVOKE SELECT ON users FROM reader;
Köztes lekérdezés (Common Table Expression) definiálása.
WITH young_users AS (
SELECT * FROM users WHERE age < 30
)
SELECT * FROM young_users;
Sorszám generálása eredményhalmazban.
SELECT name,
ROW_NUMBER() OVER (ORDER BY age) AS sor
FROM users;
Rangsor generálása azonos értékeknél azonos pozícióval.
SELECT name, age,
RANK() OVER (ORDER BY age DESC) AS rang
FROM users;
Rangsor generálása kihagyások nélkül.
SELECT name, age,
DENSE_RANK() OVER (ORDER BY age DESC) AS rang
FROM users;
Ablakfüggvény: átlag számítása csoporton belül.
SELECT name, age,
AVG(age) OVER (PARTITION BY city) AS átlag_kor
FROM users;
Első nem NULL érték visszaadása.
SELECT name, COALESCE(email, 'nincs') FROM users;
Két érték összehasonlítása, ha azonos, NULL-t ad vissza.
SELECT NULLIF(age, 0) FROM users;
Szövegek összefűzése csoporton belül.
SELECT city,
STRING_AGG(name, ', ') AS nevek
FROM users GROUP BY city;
Szövegek összefűzése.
SELECT CONCAT(first_name, ' ', last_name) AS teljes_név FROM users;
Részszöveg kivágása.
SELECT SUBSTRING(name, 1, 3) FROM users;
Szöveg hosszának lekérdezése.
SELECT LENGTH(name) FROM users;
Szöveg kis- vagy nagybetűssé alakítása.
SELECT UPPER(name), LOWER(name) FROM users;
Szám kerekítése.
SELECT ROUND(price, 2) FROM products;
Típus konvertálása.
SELECT CAST(age AS VARCHAR) FROM users;
Típus konvertálása (SQL Server).
SELECT CONVERT(VARCHAR, GETDATE(), 23);
Csak egyedi értékek visszaadása.
SELECT DISTINCT city FROM users;
Eredmények korlátozása és lapozása.
SELECT * FROM users LIMIT 10 OFFSET 20;
Lekérdezés végrehajtási tervének megtekintése.
EXPLAIN SELECT * FROM users;
Statisztikák frissítése optimalizáláshoz.
ANALYZE users;
Adatbázisban lévő táblák listázása.
SHOW TABLES;
Tábla oszlopainak és típusainak megtekintése.
DESCRIBE users;
Elérhető adatbázisok listázása.
SHOW DATABASES;
Aktív adatbázis kiválasztása.
USE my_database;
Adatbázis mentése.
BACKUP DATABASE mydb TO DISK = 'C:\\backup\\mydb.bak';
Adatbázis visszaállítása mentésből.
RESTORE DATABASE mydb FROM DISK = 'C:\\backup\\mydb.bak';
Új felhasználó létrehozása.
CREATE USER 'barnabas'@'localhost' IDENTIFIED BY 'jelszo';
Felhasználó törlése.
DROP USER 'barnabas'@'localhost';
Jogosultság adása felhasználónak.
GRANT SELECT, INSERT ON mydb.* TO 'barnabas'@'localhost';
Jogosultság visszavonása felhasználótól.
REVOKE INSERT ON mydb.* FROM 'barnabas'@'localhost';
Adatbázis változó beállítása.
SET autocommit = 0;
Aktív adatbázis kapcsolatok és folyamatok listázása.
SHOW PROCESSLIST;
Lekérdezés végrehajtási tervének részletes elemzése.
EXPLAIN ANALYZE SELECT * FROM users;
Cache vagy logok ürítése.
FLUSH PRIVILEGES;
Tranzakció véglegesítése.
COMMIT;
Tranzakció visszavonása.
ROLLBACK;
Aktuális dátum lekérdezése.
SELECT CURRENT_DATE;
Aktuális dátum és idő lekérdezése.
SELECT NOW();
NULL érték ellenőrzése (SQL Server).
SELECT ISNULL(email, 'nincs') FROM users;
NULL érték helyettesítése (Oracle).
SELECT NVL(email, 'nincs') FROM users;
Legnagyobb érték kiválasztása több közül.
SELECT GREATEST(10, 20, 5); -- 20
Legkisebb érték kiválasztása több közül.
SELECT LEAST(10, 20, 5); -- 5
Szám kerekítése adott tizedesjegyre.
SELECT ROUND(123.456, 2); -- 123.46
Szám felfelé kerekítése.
SELECT CEIL(4.2); -- 5
Szám lefelé kerekítése.
SELECT FLOOR(4.8); -- 4
Szám abszolút értéke.
SELECT ABS(-15); -- 15
Osztás maradékának kiszámítása.
SELECT MOD(10, 3); -- 1
Szám hatványozása.
SELECT POWER(2, 3); -- 8
Négyzetgyök számítása.
SELECT SQRT(16); -- 4
Véletlen szám generálása (PostgreSQL).
SELECT RANDOM();
Véletlen szám generálása (MySQL).
SELECT RAND();
Dátum részeinek kinyerése.
SELECT EXTRACT(YEAR FROM NOW());
Dátumhoz idő hozzáadása (MySQL).
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);
Két dátum közötti különbség napokban.
SELECT DATEDIFF('2025-12-31', '2025-01-01');