** Kapitola pro maturitní obory
SQL (Structured Query Language) je standardní jazyk pro komunikaci s relačními databázemi. Používá se pro:
-- Vyber všechny sloupce ze všech záznamů
SELECT * FROM Zakaznici;
-- Vyber konkrétní sloupce
SELECT Jmeno, Email FROM Zakaznici;
-- Vyber s podmínkou
SELECT * FROM Zakaznici WHERE Vek > 18;
-- Řazení
SELECT * FROM Zakaznici ORDER BY Jmeno ASC;
-- Limit počtu výsledků
SELECT * FROM Zakaznici LIMIT 10;
-- Vlož nový záznam
INSERT INTO Zakaznici (Jmeno, Email, Vek)
VALUES ('Jan Novák', 'jan@email.cz', 25);
-- Vlož více záznamů najednou
INSERT INTO Zakaznici (Jmeno, Email, Vek) VALUES
('Marie Dvořáková', 'marie@email.cz', 30),
('Petr Svoboda', 'petr@email.cz', 22);
-- Aktualizuj konkrétní záznam
UPDATE Zakaznici
SET Email = 'novy.email@email.cz'
WHERE ID = 1;
-- Aktualizuj více záznamů
UPDATE Zakaznici
SET Aktivni = true
WHERE Vek >= 18;
-- Smaž konkrétní záznam
DELETE FROM Zakaznici WHERE ID = 1;
-- Smaž podle podmínky
DELETE FROM Zakaznici WHERE Aktivni = false;
-- POZOR! Smaže VŠE:
DELETE FROM Zakaznici;
-- Operátory porovnání
WHERE Vek = 25 -- Rovná se
WHERE Vek > 18 -- Větší než
WHERE Vek >= 18 -- Větší nebo rovno
WHERE Vek < 30 -- Menší než
WHERE Vek BETWEEN 18 AND 30 -- Rozsah
-- Logické operátory
WHERE Vek > 18 AND Mesto = 'Praha'
WHERE Vek > 65 OR Vek < 18
WHERE NOT Aktivni
-- Textové podmínky
WHERE Jmeno LIKE 'Jan%' -- Začíná na Jan
WHERE Jmeno LIKE '%ová' -- Končí na ová
WHERE Email LIKE '%@gmail%' -- Obsahuje @gmail
-- Práce s NULL
WHERE Telefon IS NULL
WHERE Telefon IS NOT NULL
-- Počet záznamů
SELECT COUNT(*) FROM Zakaznici;
-- Součet
SELECT SUM(Castka) FROM Objednavky;
-- Průměr
SELECT AVG(Vek) FROM Zakaznici;
-- Minimum a maximum
SELECT MIN(Cena), MAX(Cena) FROM Produkty;
-- Seskupení (GROUP BY)
SELECT Mesto, COUNT(*) as Pocet
FROM Zakaznici
GROUP BY Mesto;
JOIN umožňuje spojit data z více tabulek dohromady. Představ si, že máš tabulku zákazníků a tabulku objednávek – pomocí JOIN je propojíš:
-- Spojení dvou tabulek
SELECT Zakaznici.Jmeno, Objednavky.Datum, Objednavky.Castka
FROM Zakaznici
JOIN Objednavky ON Zakaznici.ID = Objednavky.Zakaznik_ID;
SQL můžeš vyzkoušet online bez instalace čehokoli: