📋 SQL Šablony + Cheatsheet pro test (Microsoft SQL Server)

Obsah

1) Vytvoření tabulky
CREATE TABLE – Vytvořte tabulku Studenti
CREATE TABLE Studenti (
    RodneCislo VARCHAR(11) PRIMARY KEY,
    Jmeno VARCHAR(50),
    Prijmeni VARCHAR(50),
    Mesto VARCHAR(50),
    PSC VARCHAR(10)
);
2) Vytvoření tabulky s vazbou 1:N
CREATE TABLE + FOREIGN KEY – Vytvořte tabulku Stipendia
CREATE TABLE Stipendia (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    RodneCislo VARCHAR(11),
    Datum DATE,
    Castka DECIMAL(10,2),
    FOREIGN KEY (RodneCislo) REFERENCES Studenti(RodneCislo) ON DELETE CASCADE
);
3) Vytvoření indexu
CREATE INDEX – Index na Příjmení
CREATE INDEX idx_prijmeni ON Studenti(Prijmeni);
4) Výběr dat s podmínkou
SELECT ... WHERE ... IN / IS NULL – Studenti podle PSČ
SELECT RodneCislo, Jmeno, Prijmeni
FROM Studenti
WHERE PSC IN ('10000', '30000') OR PSC IS NULL
ORDER BY Prijmeni;
5) JOIN + podmínka
SELECT + JOIN + WHERE – Štipendium > 10 000 Kč
SELECT DISTINCT s.RodneCislo, s.Jmeno, s.Prijmeni
FROM Studenti s
JOIN Stipendia st ON s.RodneCislo = st.RodneCislo
WHERE st.Castka > 10000;
6) LEFT JOIN + agregace
LEFT JOIN + SUM + COALESCE – Studenti na A bez štipendia
SELECT s.RodneCislo, s.Jmeno, s.Prijmeni,
       COALESCE(SUM(st.Castka), 0) AS CelkovaCastka
FROM Studenti s
LEFT JOIN Stipendia st ON s.RodneCislo = st.RodneCislo
WHERE s.Prijmeni LIKE 'A%'
  AND st.ID IS NULL
GROUP BY s.RodneCislo, s.Jmeno, s.Prijmeni;
7) Studenti bez štipendia
LEFT JOIN + IS NULL
SELECT s.RodneCislo, s.Jmeno, s.Prijmeni
FROM Studenti s
LEFT JOIN Stipendia st ON s.RodneCislo = st.RodneCislo
WHERE st.RodneCislo IS NULL
ORDER BY s.Prijmeni;
8) Přidání záznamu
INSERT INTO
INSERT INTO Studenti (RodneCislo, Jmeno, Prijmeni, Mesto, PSC)
VALUES ('123456/7890', 'Jan', 'Novák', 'Ostrava', '70000');
9) Úprava záznamu
UPDATE ... SET ... WHERE
UPDATE Studenti
SET PSC = '11000'
WHERE Mesto = 'Praha';
10) Smazání záznamu
DELETE FROM ... WHERE
DELETE FROM Stipendia
WHERE Castka = 1000
  AND Datum = '2015-01-01';

Základní syntaxe příkazů (MSSQL)

SELECT (kompletní struktura)
SELECT sloupce / *
FROM tabulka
JOIN tabulka2 ON podmínka
WHERE podmínky
GROUP BY sloupce
HAVING podmínky
ORDER BY sloupce;

⚡ Cheatsheet – Operátory v podmínkách (WHERE)

Operátor Příklad Význam
= WHERE Mesto = 'Praha' Rovná se
> >= < <= WHERE Castka > 10000 Porovnání čísel / dat
<> nebo != WHERE PSC <> '10000' Nerovná se
BETWEEN WHERE Castka BETWEEN 5000 AND 15000 V rozmezí (včetně)
IN WHERE PSC IN ('10000','30000','70000') Hodnota je v seznamu
IS NULL / IS NOT NULL WHERE PSC IS NULL Prázdná hodnota
LIKE WHERE Prijmeni LIKE 'Nov%' Textový vzor (% = libovolný počet znaků, _ = jeden znak)
AND / OR / NOT WHERE Prijmeni LIKE 'A%' AND Castka > 0 Spojení podmínek
Tipy pro LIKE:
'A%' → začíná na A
'%ova' → končí na ova
'%Nov%' → obsahuje Nov kdekoli
'Novák_' → přesně 6 znaků po Novák