NOVINKA: Kurz kybernetické bezpečnosti s akreditací MŠMT, nyní již od 0 Kč. Staň se žádaným profesionálem. Zjisti více:
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Online MS-SQL kompiler

V tomto MS-SQL tutoriálu si ukážeme, jak lze vyzkoušet základní T-SQL dotazy i bez instalace Microsoft SQL Serveru na náš počítač. Toto řešení je určené zejména pro studenty s operačním systémem macOS, kde není práce s Microsoft SQL Serverem tak přímočará jako ve Windows. Místo lokální instalace použijeme online kompiler OneCompiler.

Práce s online kompilerem

Při běžné práci s databází máme databázový server, databázi, tabulky a data. Tabulku vytvoříme jednou a později nad ní spouštíme další příkazy. Online kompiler však funguje jinak. Nabídne nám dočasné prostředí, které je vhodné pro krátké ukázky a testování syntaxe.

Výhodou je, že nemusíme instalovat SQL Server, Visual Studio ani žádný jiný databázový klient. Nevýhodou je, že se nemůžeme chovat stejně jako v dlouhodobě běžící lokální databázi. Každá ukázka (série SQL dotazů) musí obsahovat vše, co ke svému běhu potřebuje. Proto budeme v online kompilerech dodržovat tento postup:

  1. vytvoříme tabulku,
  2. vložíme do tabulky testovací data,
  3. provedeme dotaz nebo změnu,
  4. vypíšeme výsledek.

Když v dotazu používáme tabulku EMPLOYEE, musí být ve stejné ukázce (scénáři) také příkaz, který tabulku vytvoří.

OneCompiler

Nástroj, který si nyní ukážeme, je OneCompiler. Přejděme tedy na stránku OneCompiler, kde se po načtení zobrazí editor, ve kterém bude připravený ukázkový SQL kód:

OneCompiler hlavní stránka

Skript spustíme tlačítkem Run. Použít můžeme také klávesovou zkratku Ctrl + Enter. Výstup SQL skriptu se zobrazí v pravé polovině stránky:

Výstup OneCompileru

V ukázce se nejdříve vytvoří tabulka EMPLOYEE. Poté se do ní vloží tři řádky a nakonec příkaz SELECT vypíše pouze zaměstnance z oddělení Sales.

Nejčastější chyba při spuštění dotazu

Nejčastější chyba vznikne ve chvíli, kdy spustíme jen navazující část skriptu. Zkusme do editoru vložit například jen tento SQL dotaz:

SELECT * FROM EMPLOYEE WHERE dept = 'Sales';

Následně ho spusťme a uvidíme, že kompiler vrátí chybu podobnou této:

Chybný výstup v OneCompileru

Chyba Invalid object name 'EMPLOYEE' znamená, že databázový server v daném běhu nezná tabulku EMPLOYEE. Tabulka nebyla vytvořena, takže nad ní nelze spustit dotaz. Správně proto do ukázky vložíme celý scénář:

CREATE TABLE EMPLOYEE (
  empId int,
  name varchar(15),
  dept varchar(10)
);

INSERT INTO EMPLOYEE (empId, name, dept) VALUES (1, 'Clark', 'Sales');
INSERT INTO EMPLOYEE (empId, name, dept) VALUES (2, 'Dave', 'Accounting');
INSERT INTO EMPLOYEE (empId, name, dept) VALUES (3, 'Ava', 'Sales');

SELECT * FROM EMPLOYEE WHERE dept = 'Sales';

Tento zápis je pro online editor spolehlivější. Nezáleží na tom, co bylo v prostředí spuštěno předtím. Skript si nejdříve připraví tabulku, data a potom provede dotaz.

Úprava dat a struktury tabulky

Stejné pravidlo platí i pro úpravy. Pokud chceme spustit příkaz UPDATE, musíme si nejprve připravit data, poté je upravit a nakonec vypsat výsledek:

CREATE TABLE EMPLOYEE (
  empId int,
  name varchar(15),
  dept varchar(10)
);

INSERT INTO EMPLOYEE (empId, name, dept) VALUES (1, 'Clark', 'Sales');
INSERT INTO EMPLOYEE (empId, name, dept) VALUES (2, 'Dave', 'Accounting');
INSERT INTO EMPLOYEE (empId, name, dept) VALUES (3, 'Ava', 'Sales');

UPDATE EMPLOYEE SET dept = 'Marketing' WHERE empId = 1;

SELECT * FROM EMPLOYEE;

Výstup nám ukáže, že zaměstnanec s hodnotou empId = 1 už není v oddělení Sales, ale v oddělení Marketing. Podobně můžeme otestovat změnu struktury tabulky pomocí ALTER TABLE:

CREATE TABLE EMPLOYEE (
  empId int,
  name varchar(15),
  dept varchar(10)
);

ALTER TABLE EMPLOYEE ADD email varchar(50);

INSERT INTO EMPLOYEE (empId, name, dept, email) VALUES (1, 'Clark', 'Sales', '[email protected]');

SELECT * FROM EMPLOYEE;

Po přidání sloupce email vkládáme hodnotu i pro nový sloupec. Kdybychom napsali jen ALTER TABLE EMPLOYEE ADD email varchar(50); bez předchozího CREATE TABLE, kompiler by opět nevěděl, kterou tabulku má změnit.

Stažení a rozdělení souborů

OneCompiler umožňuje práci se soubory v levé části editoru. Hlavní soubor bývá pojmenovaný například queries.sql. Přes nabídku vedle tlačítka Run můžeme najít také možnost stažení.

Stažení SQL souboru v OneCompileru

Stažený soubor si pak můžeme otevřít v libovolném editoru (například Visual Studio Code) nebo v jednoduchém poznámkovém bloku: Ukázka otevření SQL souboru

U delších ukázek (scénářů) je přehlednější rozdělit inicializaci a dotazy. Inicializací myslíme příkazy, které připraví prostředí. Typicky jde o CREATE TABLE a vložení základních dat přes INSERT. Samotný dotaz potom může být v hlavním souboru. Soubor init.sql můžeme přidat přes tlačítko plus vedle seznamu souborů:

Vytvoření souboru init.sql

Do souboru init.sql vložíme přípravu tabulky:

CREATE TABLE EMPLOYEE (
  empId int,
  name varchar(15),
  dept varchar(10)
);

INSERT INTO EMPLOYEE (empId, name, dept) VALUES (1, 'Clark', 'Sales');
INSERT INTO EMPLOYEE (empId, name, dept) VALUES (2, 'Dave', 'Accounting');
INSERT INTO EMPLOYEE (empId, name, dept) VALUES (3, 'Ava', 'Sales');

Do hlavního souboru queries.sql potom vložíme samotný dotaz:

SELECT *
FROM EMPLOYEE
WHERE dept = 'Sales';

Tento způsob je přehlednější :-)

Doporučený postup při řešení úloh

Při práci v online kompileru se držíme jednoduchého pořadí. Nejdříve si připravíme minimální data a teprve poté chystáme samotný SQL dotaz. Díky tomu snáze poznáme, zda je chyba v dotazu, nebo už v přípravě tabulky. Pro běžné úlohy doporučujeme tento postup:

  1. Otevřeme OneCompiler.
  2. Vytvoříme tabulku pomocí CREATE TABLE.
  3. Vložíme několik ukázkových řádků přes INSERT.
  4. Spustíme jednoduchý SELECT * FROM nazev_tabulky;.
  5. Teprve poté přidáme podmínky, řazení, agregace nebo spojení tabulek.

Když se objeví chyba, položíme si zejména tyto otázky:

  • Existuje tabulka, nad kterou spouštíme dotaz?
  • Jmenují se sloupce stejně v CREATE TABLE, INSERT i SELECT?
  • Jsou textové hodnoty v apostrofech?
  • Nechybí za příkazy středníky?
  • Používáme stejnou verzi SQL Serveru, pro kterou je ukázka určená?

Názvy tabulek a sloupců pišme bez diakritiky. Pro výuku je to přehlednější a vyhneme se problémům při kopírování mezi různými editory či kompilery.

Shrnutí

Online kompilery, jako například OneCompiler, nám umožní procvičit základní MS-SQL dotazy i na operačním systému, kde není jednoduchá nativní instalace SQL Serveru. Ukázky musíme psát jako kompletní scénáře, které samy vytvoří tabulky, vloží data a potom spustí dotaz. Online kompiler bereme jako výukový sandbox (pískoviště), ne jako náhradu za vlastní databázový server.


 

Článek pro vás napsal Adam Hamšík
Avatar
Uživatelské hodnocení:
Ještě nikdo nehodnotil, buď první!
.
Aktivity