SQL základy: Čo všetko potrebuješ vedieť ako tester

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.

Monitor so SQL dotazom a databázovou tabuľkou v kancelárii, kde tím pracuje na vývoji softvéru.
SQL základy pre testerov v praxi

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.

    Čo je SQL a prečo ho ako tester potrebuješ

    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.

    Recommend

    Odporúčame ti…

    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:

    • CREATE (vytváranie štruktúr) – pridávanie nových záznamov do databázy, napríklad pri vytvorení používateľa alebo objednávky.
    • READ (čítanie dát) – zobrazenie a overenie existujúcich údajov. Najčastejšia operácia pri testovaní.
    • UPDATE (úprava dát) – zmena existujúcich záznamov, napríklad aktualizácia profilu alebo stavu objednávky.
    • DELETE (mazanie dát) – odstránenie záznamov, často pri testovaní mazacích funkcií alebo pri čistení testovacích dát.

    Vieš, že…

    …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:

    • Overenie dát po akciách v UI: Po vytvorení objednávky kontrola, či sa dáta uložili správne, s korektným ID zákazníka, správnym stavom a dátumom.
    • Príprava testovacích dát: Namiesto manuálneho vytvárania desiatok záznamov cez UI postačí jeden SQL príkaz.
    • Kontrola business logiky: Overenie napríklad toho, či sa po zaplatení faktúry skutočne zmenil stav objednávky z „Čaká na platbu“ na „Zaplatená“.
    • Čistenie po testoch: Odstránenie testovacích dát po skončení testovania, aby neovplyvňovali ďalšie testy alebo prácu iných tímov.
    • Rýchla identifikácia problémov: Pri zlyhaní testu pomôže SQL zistiť, či je problém v dátach alebo v aplikačnej logike.
    • Verifikácia dátových závislostí: Cez SQL overenie konzistencie prepojení medzi tabuľkami, napríklad či každá objednávka má priradeného existujúceho zákazníka.
    • Porovnanie dát pred a po akcii: Pred akciou v UI uloženie stavu záznamu cez SELECT, po akcii porovnanie. Je vidieť presne, ktoré stĺpce sa zmenili.

    Základné SQL príkazy s príkladmi

    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.

    SELECT: výber dát z tabuľky

    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;

    Filtrovanie s WHERE

    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';

    Výber unikátnych záznamov s SQL DISTINCT

    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.

    SQL INSERT: vkladanie nových dát

    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.

    SQL UPDATE: aktualizácia existujúcich dát

    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.

    SQL DELETE: mazanie záznamov

    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.

    Recommend

    Odporúčame ti…

    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';

    SQL JOIN: spojenie tabuliek

    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;

    Typy JOINov

    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ť.

    SQL GROUP BY a HAVING: zoskupenie a filtrovanie

    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.

    Ďalšie užitočné SQL príkazy pre testerov

    Okrem základných CRUD operácií existuje niekoľko ďalších SQL príkazov, ktoré pri testovaní uľahčia prácu.

    WHERE, LIKE a IN: filtrovanie dát

    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:

    • % – ľubovoľný počet znakov
    • _ – presne jeden znak

    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');

    SQL ORDER BY: radenie výsledkov

    Klauzula ORDER BY slúži na zoradenie výsledkov dotazu. Možnosti sú dve: vzostupne (ASC) alebo zostupne (DESC). Niekoľko príkladov:

    • Pre zamestnancov zoradených podľa priezviska od A po Z poslúži ORDER BY Priezvisko ASC.
    • Pre objednávky zoradené od najnovšej po najstaršiu poslúži ORDER BY DatumVytvorenia DESC.

    V kóde to vyzerá takto:

    SELECT * FROM Zamestnanci ORDER BY Priezvisko ASC;
    SELECT * FROM Objednavky ORDER BY DatumVytvorenia DESC;

    SQL CASE: podmienkové výrazy v dotazoch

    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.

    Využitie SQL v testovaní softvéru

    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.

    Overenie dát po CRUD operáciách v UI

    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.

    18 min.Functional testing - funkčné testovanie

    Funkčné testovanie – functional testing

    V tomto článku sa pozrieme na to, čo je functional testing, aké sú jeho ciele, rôzne typy a aké nástroje pre funkčné testovanie sú najvhodnejšie.

    Príprava testovacích dát

    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.

    Verifikácia business logiky

    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.

    Čistenie po testoch

    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.

    Spolupráca s tímom

    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 a SSMS v praxi testera

    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.

    SQL kurzy a ďalšie zdroje pre testerov

    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.

    Bezplatné online zdroje

    Pre samoukov sú k dispozícii kvalitné platformy, ktoré učia SQL od základov a pomocou interaktívnych cvičení:

    • SQLBolt (sqlbolt.com): interaktívne lekcie priamo v prehliadači. Ideálne na začiatok.
    • Khan Academy: bezplatný úvodný kurz SQL s praktickými cvičeniami.
    • freeCodeCamp: rozsiahly SQL kurz s videami a projektmi.
    • W3Schools SQL Tutorial: referencie pre syntax a príklady všetkých SQL príkazov.
    • SQLZoo: interaktívne tutoriály s okamžitou spätnou väzbou.
    • HackerRank SQL: SQL výzvy zoradené podľa obtiažnosti, dobré na precvičovanie.

    Platené kurzy na Slovensku

    Pre tých, ktorí preferujú lektora a štruktúrovaný kurz s certifikátom, je tu výber overených slovenských školiteľov:

    • IT Academy (Bratislava): kurz SQL pre začiatočníkov, denné, večerné alebo víkendové lekcie.
    • IT LEARNING SLOVAKIA: školenia v oblasti databáz SQL rozdelené podľa platformy (MS SQL, MySQL, Oracle).
    • Skillmea: online kurz dátovej analýzy v SQL pre začiatočníkov.
    • VITA Academy: IT kurzy vrátane SQL školení, online aj prezenčne.

    16 min.ISTQB: Kurzy a certifikácie testovania softvéru

    ISTQB: Certifikáty a kurzy testovania softvéru

    V tomto článku sa pozrieme na to, aké kurzy a certifikácie ISTQB sú k dispozícii a ako ti môžu pomôcť uspieť v kariére testera.

    Oficiálna dokumentácia

    Pre detailné technické informácie a referenciu konkrétnych funkcií poslúži priamo oficiálna dokumentácia daného databázového systému:

    • Microsoft SQL Server Docs: technická dokumentácia pre T-SQL a SSMS.
    • MySQL Documentation: referenčná príručka k MySQL.
    • Oracle SQL Developer Docs: dokumentácia k Oracle SQL Developer.

    FAQ: Najčastejšie kladené otázky o SQL základoch

    Čo je SQL a na čo slúži?

    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ť.

    Musí tester poznať SQL?

    Á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ú.

    Aký je rozdiel medzi SQL a MySQL?

    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.

    Kde sa dá naučiť SQL zadarmo?

    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.

    Aký je rozdiel medzi JOIN a LEFT JOIN?

    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.

    Ktoré SQL príkazy sú najdôležitejšie pre testera?

    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.

    Zhrnutie pre testerskú prax

    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.

    O autorovi

    Katarína Kučáková

    Software Test Engineer

    Moja cesta k testovaniu softvéru sa začala v roku 2019 až po štúdiu ekonómie a pracovných skúsenostiach v iných odvetviach. To mi pomohlo vnímať IT svet v rôznych súvislostiach. Ten totiž ponúka neustále nové výzvy, pre ktoré rada hľadám riešenia. Obľubujem oddych pri čítaní, turistiku alebo lyžovanie. LinkedIn

    Daj nám o sebe vedieť