Vy máte nápad. Spark z neho urobí event.

Plánujeme konferencie, svadby, párty aj firemné akcie po celom Slovensku. Postaráme sa o priestor, program, catering aj lístky, vy si len užijete večer.

Čo pre vás zorganizujeme

Konferencie a meetupy
Sála, technika, registrácia hostí a moderátor, ktorý udrží čas.
Svadby
Od výberu miesta po harmonogram dňa, aby ste mohli byť len hosťami vlastnej svadby.
Párty a večierky
DJ, bar, výzdoba a predaj lístkov online pre stovky ľudí.
Firemné akcie
Teambuildingy, vianočné večierky a uvedenia produktov na trh.
Oslavy
Narodeniny, výročia a promócie pre rodinu a priateľov.
Festivaly a trhy
Povolenia, stánky, pódium a bezpečnosť pre veľké podujatia pod holým nebom.

Ako to funguje

  1. Napíšete nám

    Stačí typ eventu, približný dátum a počet hostí.

  2. Pripravíme návrh

    Do 48 hodín dostanete priestor, program a rozpočet.

  3. Všetko zariadime

    Komunikujeme s dodávateľmi a vy sledujete priebeh.

  4. Užijete si event

    V deň akcie je náš koordinátor na mieste od začiatku do konca.

Nadchádzajúce eventy

Tieto akcie práve pripravujeme pre našich klientov.

  • 15okt
    Naplánované

    Konferencia

    Bratislava, 15. 10. 2026

    o 18:00
  • 24okt
    Naplánované

    Svadba

    Trnava, 24. 10. 2026

    o 14:00
  • 31okt
    Naplánované

    Párty

    Košice, 31. 10. 2026

    o 21:00
  • 7nov
    V príprave

    Teambuilding

    Žilina, 7. 11. 2026

    o 09:00
  • 28nov
    Naplánované

    Narodeninová oslava

    Nitra, 28. 11. 2026

    o 19:00
  • 31dec
    Naplánované

    Silvestrovský večierok

    Bratislava, 31. 12. 2026

    o 20:00
  • 6mar
    V príprave

    Rodinná oslava

    Trenčín, 6. 3. 2027

    o 16:00
  • 16apr
    V príprave

    Svadobná hostina

    Košice, 16. 4. 2027

    o 12:00

Naše eventy žijú v PostgreSQL

Každá zákazka od klienta je jeden riadok v tabuľke events v databáze spark_db. Skripty sú rozdelené podľa typu príkazov a spúšťajú sa v tomto poradí.

CREATE TABLE events (
    id SERIAL PRIMARY KEY,
    meno VARCHAR(100) NOT NULL,
    kontakt VARCHAR(100) NOT NULL,
    miesto VARCHAR(50) NOT NULL,
    datum DATE NOT NULL,
    cas TIME NOT NULL,
    cena DEC(8,2) NOT NULL CHECK (cena >= 0),
    typ VARCHAR(50) NOT NULL,
    naplanovane BOOLEAN DEFAULT false
);

Cviko 1

Vytvorte do tabuľky novú zákazku, ktorú sme obdržali od Veroniky Kováčovej (kontakt: vevekovacova@gmail.com). Zákazka sa uskutoční v Košiciach dňa 16. 4. 2027 o 12:00, cena je 600 € a typ zákazky je svadobná hostina.

Zobraziť riešenie
INSERT INTO events (meno, kontakt, miesto, datum, cas, cena, typ, naplanovane)
VALUES ('Veronika Kováčová', 'vevekovacova@gmail.com', 'Košice',
'2027-04-16', '12:00', 600, 'svadobná hostina', false);

Cviko 2: dopyty SELECT

Každý dopyt vyberá len potrebné stĺpce, filtruje riadky cez WHERE a výsledok zoraďuje cez ORDER BY. Pri úlohách, ktoré sa dajú vyriešiť viacerými spôsobmi, sú ukázané aj ďalšie možnosti.

  1. Vypíšte z tabuľky len ľudí, ktorí majú oslavu v roku 2026 (meno, typ a dátum). Výsledok zoraďte podľa dátumu.

    Zobraziť riešenie
    SELECT meno, typ, datum
    FROM events
    WHERE datum BETWEEN '2026-01-01' AND '2026-12-31'
    ORDER BY datum;
    
    -- alebo cez EXTRACT
    SELECT meno, typ, datum
    FROM events
    WHERE EXTRACT(YEAR FROM datum) = 2026
    ORDER BY datum;
    
    -- alebo cez >= a <
    SELECT meno, typ, datum
    FROM events
    WHERE datum >= '2026-01-01' AND datum < '2027-01-01'
    ORDER BY datum;
  2. Vypíšte z tabuľky ľudí, ktorí používajú na komunikáciu gmail (meno a kontakt). Výsledok zoraďte abecedne podľa mena.

    Zobraziť riešenie
    SELECT meno, kontakt
    FROM events
    WHERE kontakt LIKE '%@gmail.com'
    ORDER BY meno;
    
    -- alebo ILIKE, ten nerieši veľké a malé písmená
    SELECT meno, kontakt
    FROM events
    WHERE kontakt ILIKE '%@gmail.com'
    ORDER BY meno;
  3. Vypíšte ľudí z tabuľky, ktorých cena eventu je medzi 300 a 500 € vrátane (meno, typ a cena). Výsledok zoraďte od najdrahšieho.

    Zobraziť riešenie
    SELECT meno, typ, cena
    FROM events
    WHERE cena >= 300 AND cena <= 500
    ORDER BY cena DESC;
    
    -- alebo BETWEEN (berie aj 300 aj 500)
    SELECT meno, typ, cena
    FROM events
    WHERE cena BETWEEN 300 AND 500
    ORDER BY cena DESC;
  4. Vypíšte z tabuľky ľudí, ktorí už majú naplánovanú oslavu (meno, typ a dátum). Výsledok zoraďte podľa dátumu.

    Zobraziť riešenie
    SELECT meno, typ, datum
    FROM events
    WHERE naplanovane = true
    ORDER BY datum;
    
    -- alebo stačí napísať len názov stĺpca, lebo je to boolean
    SELECT meno, typ, datum
    FROM events
    WHERE naplanovane
    ORDER BY datum;
  5. Zobrazte osoby, ktoré majú id menšie ako 3 (id a meno). Výsledok zoraďte podľa id.

    Zobraziť riešenie
    SELECT id, meno
    FROM events
    WHERE id < 3
    ORDER BY id;
    
    -- alebo
    SELECT id, meno
    FROM events
    WHERE id IN (1, 2)
    ORDER BY id;
  6. Vypíšte meno, miesto, dátum a cenu zákaziek, ktoré ešte NIE sú naplánované a konajú sa v roku 2027. Výsledok zoraďte podľa dátumu.

    Zobraziť riešenie
    SELECT meno, miesto, datum, cena
    FROM events
    WHERE naplanovane = false AND EXTRACT(YEAR FROM datum) = 2027
    ORDER BY datum;
    
    -- alebo
    SELECT meno, miesto, datum, cena
    FROM events
    WHERE NOT naplanovane AND datum BETWEEN '2027-01-01' AND '2027-12-31'
    ORDER BY datum;
Stiahnuť DQL.sql

Cviko 3: funkcie v SQL

V každom dopyte je funkcia použitá v SELECT, vo WHERE aj v ORDER BY. Posledná úloha ukazuje agregačné funkcie spolu s GROUP BY a HAVING.

  1. Zobrazte mená klientov veľkými písmenami pre naplánované eventy, ktoré sa konajú v októbri. Zoraďte ich abecedne.

    Zobraziť riešenie
    SELECT UPPER(meno) AS meno_velkymi
    FROM events
    WHERE naplanovane = true AND EXTRACT(MONTH FROM datum) = 10
    ORDER BY UPPER(meno);
  2. Zobrazte typy eventov a počet znakov ich názvu. Vyberte len typy dlhšie ako 12 znakov (každý typ iba raz) a zoraďte od najdlhšieho.

    Zobraziť riešenie
    -- DISTINCT, aby sa napr. konferencia nevypísala dvakrát
    SELECT DISTINCT typ, CHAR_LENGTH(typ) AS pocet_znakov
    FROM events
    WHERE CHAR_LENGTH(typ) > 12
    ORDER BY CHAR_LENGTH(typ) DESC;
  3. Zobrazte mená klientov a cenu eventu s DPH 23 % zaokrúhlenú na celé eurá. Vyberte len eventy, kde je cena s DPH medzi 500 a 1000 eur, zoraďte od najdrahšieho.

    Zobraziť riešenie
    SELECT meno, cena, ROUND(cena * 1.23, 0) AS cena_s_dph
    FROM events
    WHERE ROUND(cena * 1.23, 0) BETWEEN 500 AND 1000
    ORDER BY ROUND(cena * 1.23, 0) DESC;
  4. Spojte meno klienta a miesto eventu do jedného stĺpca. Vyberte len eventy v mestách, ktoré začínajú na písmeno B. Zoraďte podľa mesta a mena.

    Zobraziť riešenie
    SELECT CONCAT(meno, ' - ', miesto) AS klient_a_miesto
    FROM events
    WHERE LEFT(miesto, 1) = 'B'
    ORDER BY LOWER(miesto), LOWER(meno);
  5. Zobrazte mená klientov, mesiac konania eventu a dátum v slovenskom formáte. Vyberte len eventy z roku 2026 a zoraďte ich podľa mesiaca.

    Zobraziť riešenie
    SELECT meno,
           EXTRACT(MONTH FROM datum) AS mesiac,
           TO_CHAR(datum, 'DD.MM.YYYY') AS datum_sk
    FROM events
    WHERE EXTRACT(YEAR FROM datum) = 2026
    ORDER BY EXTRACT(MONTH FROM datum), datum;
  6. Zistite, v ktorých mestách sú aspoň 2 zákazky s cenou aspoň 500 eur. Zobrazte mesto, počet zákaziek, súčet a priemer cien. Zoraďte podľa súčtu.

    Zobraziť riešenie
    SELECT miesto,
           COUNT(*) AS pocet_zakaziek,
           SUM(cena) AS spolu,
           ROUND(AVG(cena), 2) AS priemerna_cena
    FROM events
    WHERE cena >= 500
    GROUP BY miesto
    HAVING COUNT(*) >= 2
    ORDER BY SUM(cena) DESC;
Stiahnuť DQL2.sql

Cviko 4: prepájanie tabuliek

K tabuľke events pribudli koordinátori a dodávatelia. Jeden event môže mať viac dodávateľov a jeden dodávateľ robí na viacerých eventoch, preto ich spája tabuľka event_dodavatelia. Šípka ukazuje, na ktorú tabuľku stĺpec odkazuje.

koordinatori

  • id
  • meno
  • telefon
  • veduci_id → koordinatori

events

  • id
  • meno
  • typ
  • datum
  • …
  • koordinator_id → koordinatori

event_dodavatelia

  • event_id → events
  • dodavatel_id → dodavatelia
  • cena

dodavatelia

  • id
  • nazov
  • sluzba
  1. Vypíšte naplánované zákazky (klient, typ, dátum) a meno koordinátora, ktorý ich má na starosti. Zoraďte podľa dátumu.

    Zobraziť riešenie
    -- INNER JOIN - len riadky, ktoré majú zhodu v oboch tabuľkách
    SELECT e.meno AS klient, e.typ, e.datum, k.meno AS koordinator
    FROM events e
    INNER JOIN koordinatori k ON e.koordinator_id = k.id
    WHERE e.naplanovane = true
    ORDER BY e.datum;
    
    -- alebo starší zápis cez WHERE (robí to isté)
    SELECT e.meno AS klient, e.typ, e.datum, k.meno AS koordinator
    FROM events e, koordinatori k
    WHERE e.koordinator_id = k.id AND e.naplanovane = true
    ORDER BY e.datum;
  2. Vypíšte všetky zákazky a ich koordinátora. Ak zákazka koordinátora ešte nemá, má sa vypísať tiež a namiesto mena bude 'nepridelený'. Zoraďte podľa dátumu.

    Zobraziť riešenie
    -- LEFT JOIN - všetky riadky z ľavej tabuľky (events), aj keď nemajú zhodu
    SELECT e.meno AS klient, e.typ, e.datum,
           COALESCE(k.meno, 'nepridelený') AS koordinator
    FROM events e
    LEFT JOIN koordinatori k ON e.koordinator_id = k.id
    ORDER BY e.datum;
  3. Zistite, koľko zákaziek má každý koordinátor. Vo výsledku musia byť aj koordinátori bez zákazky. Zoraďte od najvyťaženejšieho.

    Zobraziť riešenie
    -- RIGHT JOIN - všetky riadky z pravej tabuľky (koordinatori)
    -- COUNT(e.id) nepočíta NULL, takže Patrik bude mať 0
    SELECT k.meno AS koordinator, COUNT(e.id) AS pocet_zakaziek
    FROM events e
    RIGHT JOIN koordinatori k ON e.koordinator_id = k.id
    GROUP BY k.meno
    ORDER BY COUNT(e.id) DESC, k.meno;
    
    -- alebo to isté cez LEFT JOIN, len sa tabuľky prehodia
    SELECT k.meno AS koordinator, COUNT(e.id) AS pocet_zakaziek
    FROM koordinatori k
    LEFT JOIN events e ON e.koordinator_id = k.id
    GROUP BY k.meno
    ORDER BY COUNT(e.id) DESC, k.meno;
  4. Vypíšte, kde nám niečo chýba: zákazky bez koordinátora a koordinátorov bez zákazky v jednej tabuľke. Zoraďte podľa mena klienta.

    Zobraziť riešenie
    -- FULL JOIN - všetky riadky z oboch tabuliek
    -- WHERE nechá len tie, kde na jednej strane nič nie je
    SELECT COALESCE(e.meno, 'žiadna zákazka') AS klient,
           COALESCE(k.meno, 'nepridelený') AS koordinator
    FROM events e
    FULL JOIN koordinatori k ON e.koordinator_id = k.id
    WHERE e.id IS NULL OR k.id IS NULL
    ORDER BY e.meno;
  5. Vypíšte, ktorí dodávatelia pracujú na svadbách, akú službu robia a za koľko. Zoraďte podľa klienta a ceny od najvyššej.

    Zobraziť riešenie
    -- spojenie troch tabuliek cez prepojovaciu tabuľku event_dodavatelia
    SELECT e.meno AS klient, e.typ, d.nazov AS dodavatel, d.sluzba, ed.cena
    FROM events e
    JOIN event_dodavatelia ed ON ed.event_id = e.id
    JOIN dodavatelia d ON d.id = ed.dodavatel_id
    WHERE e.typ LIKE 'svad%'
    ORDER BY e.meno, ed.cena DESC;
Stiahnuť DQL3.sql

Naplánujme váš event

Napíšte nám, aký event chystáte, kedy a pre koľko ľudí. Ozveme sa do jedného pracovného dňa.

Napísať e-mail

E-mailahoj@spark.sk

Telefón+421 900 123 456

KanceláriaHlavná 12, 811 01 Bratislava