Online eszközök

Néha előfordul, hogy vagy nincs nálad a géped, de mégis ki kell próbálnod valamit. Vagy meg szeretnél osztani egy megoldást, de nem szeretnél állományokat küldözgetni, vagy nem tudod, hogy akinek küldenéd az rendelkezik a megfelelő eszközökkel mondjuk tesztelésre. Ilyenkor nagyon jól jön, hogy két olyan eszköz is van, amivel ezt megteheted egy böngészőből.

Valójában több ilyen eszköz is van, de mivel MSSQL-re fókuszálunk, ezért például bár a DB-Fiddle jó eszköz, mégis kihagyjuk, mert csak MySQL, PostgreSQL és SQLite támogatás van benne.

SQLFiddle

Kategóriájának szerintem a legismertebb és legkönnyebben használható tagja az SQLFiddle.

Támogatja a MySQL, Oracle, PostgreSQL, SQLite és MSSQL adatbázisokat is, amit a bal felső részen, egyből az oldal neve melletti legördülőben tudunk kiválasztani.

Használata egyszerű: először fel kell építened a teszt környezetedet (táblák, kapcsolatok, adatok) a bal oldali panelben. Ha ez sikeres volt, akkor megnyílik a hozzáférés a jobb oldali panelhez, ahol a felépített környezeten tudsz lekérdezéseket végrehajtani.

Van pár kényelmi funkció, például a szerkesztő terület teljes képernyőre nagyítása, hogy jobban elférj; egy egyszerű kis séma böngésző; kiválaszthatod, hogy melyik karakter legyen a parancs elválasztó; illetve a lekérdezésed végeredményének megjelenítési módszerét is meghatározhatod.

Rendelkezik egy “Text to DDL” funkcióval is, ami arra jó, hogy mondjuk egy CSV-t be tudsz másolni és ebből az oldal felépíti a megadott néven a tábládat és tartalmát a DDL panelben, nem kell neked leszkriptelni. Ez elég intelligens ahhoz, hogy felismerje az alap adattípusokat a beadott szövegből és megkímélhet sok munkától, ha nagyobb mennyiségű adatot kellene előállítanod.

A lekérdezések megjeleníthetők többféle formában, ez azért jó, mert néha emberi fogyasztásra alkalmas formára van szükségünk, néha meg gépi fogyasztásra. Futtatás után az eredmény alatt megjelenik egy kis státusznak mondható információ, hogy hány rekord volt érintett, meddig futott a lekérdezés, és még egy execution plant is láthatunk, aminek a kinézete és tartalma attól függ, hogy melyik adatbázis környezetet választottuk.

Az URL megosztható, mert amikor elindítod, akkor kapsz egy egyedi azonosítót. Ezt megosztva mások is látják, amit felépítettél és lekérdeztél, így egyszerűen átadható és megmutatható a projekt másnak.

Akit érdekel, hogyan épül fel, hogyan működik, miket használtak, az leszedheti az egész oldal forráskódját is Githubról.

db <> fiddle

A második eszköz a db <> fiddle.

Ez kinézetre nem annyira ergonomikus, sokakat el is rémiszt: egyszer megnézik, aztán úgy döntenek, hogy az SQLFiddle pont jó nekik.

Adatbázisokból sokkal többet támogat: DB2, Firebird, MariaDB, MySQL, Oracle, PostgreSQL, SQLite, MSSQL és Yugabyte, ráadásul mindegyikből többféle verziót is.

A felülete inkább funkcionális, mint szép, de azért még jól áttekinthető. Bal oldalon tudsz mindent, ami SQL: felépíteni a teszt környezetedet és lekérdezéseket indítani. Ezeket viszont csoportokba tudod rendezni és mindegyik végrehajtásának eredményét külön látod. Ez nagyon kellemes, mert nem csak egy sima visszajelzést kapsz, hogy “incorrect syntax near xyz”, aztán keresheted a scriptedben a helyét, hanem látod, hogy melyik rész futott hibára.

Másik nagyon jó része, hogy nem kell neked felépíteni az egész adatbázist, mert kiválaszthatod az AdventureWorks-öt MSSQL esetében, ami a hivatalos demó adatbázis, sok táblával, adattal, kapcsolattal.

Itt megteheted, hogy ugyanazt a scriptet egyszerre két adatbázison futtatod le a “compare” menüpont használatával, így láthatod, hogy a szkripted mennyire univerzális.

Természetesen ezt is egy egyszerű URL megosztással közzé tehető és van egy olyan funkció is, hogy a megadott kódra egyből rákérdezhetsz a TopAnswers rendszerében, ha valami nem fut, vagy nem úgy fut, ahogy szeretnéd.

Végszó

Ahogy látjátok a két bemutatott rendszer alapjaiban ugyanaz. Mindkettő rendelkezik olyan funkcióval, amivel a másik nem, de ezekre nem mindig van szükség. Személy szerint akkor veszem elő az SQLFiddle-t, ha valami egyszerűt szeretnék kipróbálni vagy megosztani és a db<>fiddle-t, ha valami bonyolultabbal dolgoznék és például jól jön a beépített teszt adatbázis.