IT Systems Integration Consultant
SQL základy patria medzi zručnosti, ktoré v testovaní šetria čas a pomáhajú odhaliť chyby ukryté pod UI. Pomocou SQL si overíš dáta v databáze, pripravíš testovacie scenáre a rýchlejšie nájdeš nezrovnalosti. Pozri si najdôležitejšie SQL príkazy s príkladmi z QA praxe.

V článku sa dozvieš:
SQL základy sú užitočné pre každého testera, ktorý chce mať reálnu kontrolu nad tým, čo aplikácia robí s dátami. SQL nie je len doménou developerov a dáva ti nezávislosť od iných tímov. V tomto článku si prejdeme SQL príkazy, ktoré pri testovaní využiješ najčastejšie.
Predstav si situáciu, že testuješ formulár na vytváranie objednávok. V UI všetko vyzerá správne. Objednávka sa uložila, zákazník dostal potvrdenie. Otázka znie, ako overiť, že dáta skutočne pristáli v databáze správne? Že sa prepojili so správnym zákazníkom? Že je stav objednávky v správnom statuse?
Odpoveď je jednoduchá: SQL.
Tester, ktorý ovláda SQL pre začiatočníkov, má prístup k oveľa dôkladnejšiemu testovaniu softvéru. Nie je potrebné byť databázovým expertom. Stačí ovládať základné SQL príkazy a dá sa overiť to, čo na UI nevidno.
SQL, čiže Structured Query Language, je programovací jazyk určený na komunikáciu s relačnými databázami. Zjednodušene povedané, SQL databáza je úložisko dát organizované do tabuliek s riadkami a stĺpcami a SQL jazyk je nástroj na prácu s týmito dátami. Štandard SQL používa viacero databázových systémov, od MySQL cez PostgreSQL až po Microsoft SQL Server.
Podrobnú referenciu k syntaxi a všetkým príkazom nájdeš napríklad v W3Schools SQL Tutorial.
Základom práce s databázou sú CRUD operácie, ktoré popisujú, ako aplikácia s dátami pracuje. Tester sa s nimi stretáva pri overovaní, či aplikácia správne zapisuje, číta, upravuje a maže dáta v databáze:
…jazyk SQL vznikol v 70. rokoch v IBM v projekte System R a stále ho používa prakticky každá firma s databázou?
Prečo má tester ovládať SQL? Väčšina aplikácií, ktoré sa testujú, pracuje s databázou. Nie všetko, čo sa deje „pod kapotou“, je v používateľskom rozhraní viditeľné. SQL dáva priamy pohľad na dáta a umožňuje overiť, či sa aplikácia správa správne aj tam, kde UI končí.
Najčastejšie testerské scenáre, v ktorých SQL pomáha:
V SQL sa pracuje s tabuľkami tvorenými stĺpcami (atribúty ako meno, vek, pozícia) a riadkami (jednotlivé záznamy). Syntax je jednoduchá a dobre čitateľná: príkazy sa píšu veľkými písmenami, názvy tabuliek a stĺpcov malými a každý príkaz sa ukončuje bodkočiarkou.
Pre názornosť si predstav, že testuješ databázový systém firmy, ktorý obsahuje tabuľku zamestnancov. Tu sú základné SQL príkazy, ktoré budeš v praxi používať najčastejšie.
Príkaz SELECT je najpoužívanejší SQL príkaz a slúži na výber dát z tabuľky:
SELECT * FROM Zamestnanci;
Týmto dotazom získaš kompletný zoznam všetkých zamestnancov. Hviezdička (*) znamená „všetky stĺpce“. V praxi je lepšie vyberať len konkrétne stĺpce, aby sa databáza zbytočne nezaťažovala:
SELECT Meno, Priezvisko, Pozicia FROM Zamestnanci;
Pre výber iba konkrétnych záznamov poslúži klauzula WHERE. V SQL má pojem „klauzula“ špecifický význam: ide o časť príkazu, ktorá určuje podmienky alebo špecifikáciu, ako sa dáta vyberajú, zoskupujú alebo zoraďujú.
SELECT * FROM Zamestnanci WHERE Pozicia = 'Tester';
Na zobrazenie unikátnych pozícií v tabuľke, bez opakujúcich sa hodnôt, poslúži klauzula DISTINCT:
SELECT DISTINCT Pozicia FROM Zamestnanci;
Výsledkom je zoznam unikátnych pozícií, napríklad Developer, Tester, Analytik, pričom každá sa zobrazí len raz.
Príkaz INSERT slúži na pridanie nového záznamu do databázy:
INSERT INTO Zamestnanci (ID, Meno, Priezvisko, Pozicia)
VALUES (5, 'Jozef', 'Novák', 'Developer');
Týmto dotazom sa do tabuľky vloží nový zamestnanec Jozef Novák na pozíciu Developer. V testovacej praxi sa INSERT používa najmä na prípravu testovacích dát, keď je potrebné v databáze vytvoriť zákazníka, objednávku alebo produkt pred spustením testu.
Príkaz UPDATE slúži na zmenu existujúcich záznamov:
UPDATE Zamestnanci
SET Pozicia = 'Senior Developer'
WHERE ID = 5;
Pozícia zamestnanca s ID 5 sa zmení na „Senior Developer“. Dôležité upozornenie: pri UPDATE vždy treba použiť klauzulu WHERE, inak sa aktualizujú všetky riadky v tabuľke.
Príkaz DELETE odstráni záznamy z databázy:
DELETE FROM Zamestnanci WHERE ID = 5;
Vymaže zamestnanca s ID 5. Rovnako ako pri UPDATE, nikdy nesmie chýbať WHERE. Príkaz DELETE bez WHERE vymaže všetky záznamy v tabuľke.
Po skončení testov často treba vyčistiť testovacie dáta. DELETE s WHERE je presne na to. Najprv ho odporúčame otestovať cez SELECT s rovnakou WHERE klauzulou, čím sa overí, že sa zmaže presne to, čo má.
DELETE FROM Objednavky WHERE customer_id = 999 AND created_at > '2026-02-01';
Príkaz JOIN patrí k najdôležitejším SQL príkazom, pretože umožňuje spojiť údaje z viacerých tabuliek. V reálnych databázach sú dáta často rozdelené kvôli normalizácii a integrite cez cudzie kľúče. JOIN ich umožní zobraziť spoločne v jednom výsledku.
Pre získanie mena zamestnanca spolu s názvom jeho oddelenia poslúži JOIN na prepojenie tabuľky Zamestnanci s tabuľkou Oddelenia:
SELECT Zamestnanci.Meno, Oddelenia.Nazov
FROM Zamestnanci
JOIN Oddelenia ON Zamestnanci.OddelenieID = Oddelenia.ID;
V praxi sa stretneš s niekoľkými typmi JOINov a každý funguje trochu inak:
| Typ JOIN | Čo vráti | Kedy ho použiť |
|---|---|---|
| INNER JOIN | Len záznamy, ktoré majú zhodu v oboch tabuľkách | Pri potrebe len prepojených dát |
| LEFT JOIN | Všetky záznamy z ľavej tabuľky + zhody z pravej | Pri kontrole záznamov bez prepojenia |
| RIGHT JOIN | Všetky záznamy z pravej tabuľky + zhody z ľavej | Menej častý, opak LEFT JOIN |
| FULL OUTER JOIN | Všetky záznamy z oboch tabuliek | Pri potrebe kompletného prehľadu |
Praktický príklad pre testera: overenie, či majú všetky objednávky priradeného zákazníka:
SELECT o.ID AS ObjednavkaID, o.Datum, z.Meno, z.Priezvisko
FROM Objednavky o
LEFT JOIN Zakaznici z ON o.ZakaznikID = z.ID
WHERE z.ID IS NULL;
Tento dotaz vráti všetky objednávky, ktoré nemajú priradeného zákazníka. V stĺpcoch pre zákazníka sa zobrazí NULL. Ak dotaz vráti nejaké riadky, znamená to, že niektoré objednávky nemajú platného zákazníka a dáta treba overiť.
Príkaz GROUP BY slúži na zoskupenie dát podľa určitého kritéria a typicky sa používa spolu s agregačnými funkciami COUNT, SUM, AVG, MIN, MAX:
SELECT Pozicia, COUNT(*) AS Pocet
FROM Zamestnanci
GROUP BY Pozicia;
Výsledkom je počet zamestnancov zoskupený podľa pozícií, napríklad koľko je developerov, testerov a analytikov.
Rozdiel medzi WHERE a HAVING je dôležitý – WHERE filtruje jednotlivé riadky pred zoskupením, HAVING filtruje skupiny po zoskupení.
SELECT Pozicia, COUNT(*) AS Pocet
FROM Zamestnanci
GROUP BY Pozicia
HAVING COUNT(*) > 3;
Tento dotaz vráti len tie pozície, ktoré majú viac ako 3 zamestnancov.
Okrem základných CRUD operácií existuje niekoľko ďalších SQL príkazov, ktoré pri testovaní uľahčia prácu.
Klauzula WHERE už z predchádzajúcich príkladov nie je novinka. Tu sú dva užitočné operátory, ktoré sa s ňou často kombinujú: LIKE a IN.
SQL LIKE umožňuje vyhľadávať podľa vzoru (pattern matching) a používa dva zástupné znaky:
Pre nájdenie zamestnancov, ktorých meno začína na „J“ alebo priezvisko končí na „ová“:
SELECT * FROM Zamestnanci WHERE Meno LIKE 'J%';
SELECT * FROM Zamestnanci WHERE Priezvisko LIKE '%ová';
SQL IN je užitočný pri filtrovaní podľa zoznamu hodnôt, napríklad viacerých pozícií alebo oddelení naraz:
SELECT * FROM Zamestnanci WHERE Pozicia IN ('Tester', 'SDET', 'QA Lead');
Klauzula ORDER BY slúži na zoradenie výsledkov dotazu. Možnosti sú dve: vzostupne (ASC) alebo zostupne (DESC). Niekoľko príkladov:
V kóde to vyzerá takto:
SELECT * FROM Zamestnanci ORDER BY Priezvisko ASC;
SELECT * FROM Objednavky ORDER BY DatumVytvorenia DESC;
Výraz CASE umožňuje vytvárať podmienky priamo v SQL dotaze, niečo ako IF/ELSE, ale v rámci SELECT:
SELECT
TestName,
Vysledok,
CASE
WHEN Vysledok = 1 THEN 'PASS'
WHEN Vysledok = 0 THEN 'FAIL'
ELSE 'SKIP'
END AS Status
FROM TestResults;
Tento dotaz premení číselné výsledky testov na čitateľné statusy. CASE sa hodí pri vytváraní reportov priamo z databázy.
Keď máš základné SQL príkazy v malíčku, pozrime sa na konkrétne scenáre. SQL pomáha prakticky v každej fáze STLC, od prípravy testovacích dát cez samotné testovanie až po analýzu výsledkov.
Po vytvorení objednávky v UI je potrebné overiť, či dáta pristáli v databáze správne. Tento krok patrí k základnému funkčnému testovaniu:
SELECT * FROM Objednavky
WHERE customer_id = 123 AND created_at > '2026-02-25';
Príkaz vráti všetky objednávky zákazníka 123 vytvorené po 25. februári 2026. Pomáha overiť, že údaje z UI sa správne uložili do databázy.
Namiesto manuálneho klikania v UI sa testovacie dáta dajú pripraviť priamo v databáze:
INSERT INTO Zakaznici (ID, Meno, Email, Typ)
VALUES (999, 'Test User', 'test@example.com', 'Premium');
INSERT INTO Objednavky (ID, ZakaznikID, Stav, Suma)
VALUES (5001, 999, 'Nova', 150.00);
Prvý dotaz vytvorí testovacieho zákazníka, druhý vytvorí objednávku pre tohto zákazníka. Takto si pripravíš dáta pre testovanie funkcií bez zásahu do produkčných dát.
Po zaplatení faktúry treba overiť, či sa správne zmenil stav objednávky:
SELECT ID, Stav, DatumZmeny FROM Objednavky WHERE ID = 5001;
Dotaz vráti stav a dátum poslednej zmeny objednávky. Stav by sa mal zmeniť z „Nova“ na „Zaplatena“ a dátum aktualizovať. Pomáha overiť správnosť implementovanej logiky.
Po skončení testov je dobrá prax vymazať testovacie dáta:
DELETE FROM Objednavky WHERE ZakaznikID = 999;
DELETE FROM Zakaznici WHERE ID = 999;
Najprv sa vymažú závislé záznamy (objednávky) a potom hlavný záznam (zákazník). Tým sa predíde chybám spôsobeným cudzími kľúčmi.
Tester, ktorý rozumie SQL a databázam, sa stáva hodnotnejším členom tímu. Vie sa zhovárať s vývojármi, analytikmi a databázovými administrátormi v ich jazyku a rozumie technickým detailom, ktoré sú zásadné pre úspešné dokončenie projektu.
Znalosť SQL umožní pohľad pod kapotu aplikácií a rozvíja schopnosti, ktoré siahajú ďalej než klikanie na tlačidlá. A keď sa SQL skombinuje s nástrojmi ako Selenium alebo Postman, umožňuje automatizovať aj overenie dát v databáze po UI alebo API testoch. Pri API testoch často overuješ aj HTTP status codes, ktoré indikujú, či sa volanie vykonalo úspešne.
Pre rolu SDET je tento mix prakticky nevyhnutný a otvára cestu k pokročilému automatizovanému testovaniu.
Microsoft SQL Server (MS SQL) patrí k najpoužívanejším relačným databázovým riešeniam na trhu. Pri testovaní aplikácií v prostredí Microsoft technológií sa s ním pravdepodobne stretneš.
MS SQL používa vlastnú verziu SQL jazyka nazývanú T-SQL (Transact-SQL), ktorá rozširuje štandardné SQL o procedurálne programovanie, lokálne premenné a stored procedures. Základné SQL príkazy SELECT, INSERT, UPDATE, DELETE a JOIN v T-SQL fungujú rovnako ako v štandardnom SQL.
SQL Server Management Studio (SSMS) je nástroj na správu MS SQL databáz. Pre testera je praktický najmä preto, že umožňuje pohodlne spúšťať SQL dotazy cez grafické rozhranie, prehliadať štruktúru databázy vrátane indexov a pohľadov (views), importovať testovacie dáta a analyzovať výkonnosť dotazov.
Pre zdokonalenie v SQL existuje množstvo overených zdrojov pre začiatočníkov aj pokročilých. SQL kurz pre testerov existuje v rôznych formátoch, od interaktívnych platforiem až po klasické školenia. Mnohé z nich nadväzujú aj na obsah kurzov pre IT testerov.
Pre samoukov sú k dispozícii kvalitné platformy, ktoré učia SQL od základov a pomocou interaktívnych cvičení:
Pre tých, ktorí preferujú lektora a štruktúrovaný kurz s certifikátom, je tu výber overených slovenských školiteľov:
Pre detailné technické informácie a referenciu konkrétnych funkcií poslúži priamo oficiálna dokumentácia daného databázového systému:
SQL (Structured Query Language) je štandardizovaný programovací jazyk na prácu s relačnými databázami. Slúži na vytváranie, čítanie, aktualizáciu a mazanie dát, teda na všetky základné operácie, ktoré s databázou treba vykonávať.
Áno, znalosť SQL základov je pre testera dôležitá. Umožní overovať dáta priamo v databáze, pripravovať testovacie scenáre a identifikovať chyby, ktoré sa cez UI neodhalia. Najmä pre roly ako SDET alebo automatizovaný tester sú SQL základy prakticky nevyhnutné. Pozri si, čo robí IT tester v praxi a aké zručnosti od neho zamestnávatelia očakávajú.
SQL je jazyk, štandardizovaný spôsob, ako komunikovať s databázami. MySQL je konkrétny databázový systém (DBMS), ktorý SQL jazyk používa. Ďalšie systémy, ktoré používajú SQL, sú napríklad Microsoft SQL Server, PostgreSQL alebo Oracle.
Existuje množstvo bezplatných zdrojov. Dobrý štart je SQLBolt (interaktívne lekcie), Khan Academy (videá a cvičenia) alebo freeCodeCamp (rozsiahly kurz). Všetky tieto platformy umožňujú písať SQL dotazy priamo v prehliadači bez nutnosti inštalácie.
INNER JOIN (alebo jednoducho JOIN) vráti len záznamy so zhodou v oboch tabuľkách. LEFT JOIN vráti všetky záznamy z ľavej tabuľky aj v prípade, že v pravej tabuľke nemajú zhodu. V takom prípade budú stĺpce z pravej tabuľky NULL. LEFT JOIN sa hodí napríklad pri hľadaní záznamov, ktoré nemajú prepojenie.
Pre testera je dôležitých päť príkazov: SELECT (overenie dát), INSERT (príprava testovacích dát), UPDATE (zmena dát pre testovanie rôznych scenárov), DELETE (čistenie po testoch) a JOIN (prepojenie dát z viacerých tabuliek). S týmito piatimi príkazmi pokryješ väčšinu situácií z testovacej praxe.
SQL základy nie sú zložité. Stačí ovládať SELECT, INSERT, UPDATE, DELETE a JOIN a dáta sa dajú overovať, pripravovať aj čistiť. Najlepší spôsob, ako sa SQL naučiť, je prax. Vyskúšaj si príklady z tohto článku na reálnej alebo testovacej databáze a SQL základy ti rýchlo prejdú do krvi.
Ďalšie články o testovaní softvéru a automatizovanom testovaní nájdeš v sekcii blogu. SQL je tiež súčasťou znalostí pre ISTQB certifikáciu. A pre znalcov nemčiny, ktorí hľadajú prácu v testingu, sú tu pracovné ponuky v testingu na msg life.
Súvisiace články