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
-
Napíšete nám
Stačí typ eventu, približný dátum a počet hostí.
-
Pripravíme návrh
Do 48 hodín dostanete priestor, program a rozpočet.
-
Všetko zariadime
Komunikujeme s dodávateľmi a vy sledujete priebeh.
-
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.
-
15oktNaplánované
Konferencia
Bratislava, 15. 10. 2026
o 18:00 -
24oktNaplánované
Svadba
Trnava, 24. 10. 2026
o 14:00 -
31oktNaplánované
Párty
Košice, 31. 10. 2026
o 21:00 -
7novV príprave
Teambuilding
Žilina, 7. 11. 2026
o 09:00 -
28novNaplánované
Narodeninová oslava
Nitra, 28. 11. 2026
o 19:00 -
31decNaplánované
Silvestrovský večierok
Bratislava, 31. 12. 2026
o 20:00 -
6marV príprave
Rodinná oslava
Trenčín, 6. 3. 2027
o 16:00 -
16aprV 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.
-
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; -
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; -
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; -
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; -
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; -
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;
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.
-
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); -
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; -
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; -
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); -
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; -
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;
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
-
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; -
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; -
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; -
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; -
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;
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-mailE-mailahoj@spark.sk
Telefón+421 900 123 456
KanceláriaHlavná 12, 811 01 Bratislava