Szeretnél SQL-ezni online anélkül, hogy bármit telepítenél a számítógépedre?

Most ismerkedsz csak az SQL nyelvvel és jó lenne valami egyszerű és gyors módja a gyakorlásnak? SQL-eznél, de se időd, se kedved tanulási célból különféle adatbázisszervereket telepíteni a számítógépedre? Akkor itt a megoldás…

Az SQL nyelv elsajátításához elengedhetetlen, hogy kipróbáld és gyakorold a tanult nyelvi elemeket. Mivel azonban az SQL nyelv nem él meg adatbázis nélkül, általában telepítenünk is kell(ene) hozzá valamilyen adatbázismotort, legyen az MS SQL, MySQL, PosgreSQL, Oracle, stb. Ez sokaknak leküzdhetetlennek tűnő akadályként jelenik meg és emiatt sokan abba is hagyják az SQL nyelv tanulását.

Bár vannak elérhető magyar nyelvű telepítési útmutatók MS SQL Server Express-hez, kezdetben mégiscsak jobb lenne egy online gyakorló felület.

Ez alkalommal két online SQL gyakorlási lehetőséget fogok bemutatni. Az egyik a W3School online SQL gyakorló felülete, a másik pedig az SQLFiddle nevű program.

 

W3Schools - SQL

A w3schools.com bizonyára ismerős lehet már számodra, ha már belekóstoltál a fejlesztés világába. A w3schools.com-nak mindenhol van egy beépített gyakorló felülete egy ún. „sandbox” (ún. homokozó), amelyben kipróbálhatod a kódokat. 

Szerencsére SQL-hez külön is van egy ilyen felület, amelyet most közelebbről is megnézünk. Ezen a linken érheted el.

Nagyon egyszerű a használata, mert már van egy kész adatbázis, adatokkal feltöltött táblákkal, amely a képernyő jobb szélén látható, és ha rákattintasz valamelyik táblára, akkor azonnal generálódik hozzá egy SELECT utasítás, amely le is fut, megjelenítve a tábla tartalmát.

 W3Scool SQL gyakorló felület

Gyakorlatilag bármilyen táblára vonatkozó utasítást elfogad. Természetesen vannak korlátai, mivel a szabvány SQL-t tudja biztosan, de pl. a Transact-SQL specifikusabb oszlopfüggvényeket már nem feltétlenül ismeri fel.

Mindezek ellenére az első szárnypróbálgatáshoz kiválóan megfelel. Például a - még egy ideig elérhető - Ingyenes SQL Alapok bevezető tanfolyamomban használt utasítások mindegyikét ki tudod itt próbálni, természetesen az itteni táblákkal és adatokkal.

Ha ennél okosabb felületre vágynál, akkor pedig ajánlom figyelmedbe az SQLFiddle-t.

 

SQLFiddle - SQL

Az SQLFiddle is egy online felület, amelyen könnyedén kipróbálhatod az SQL parancsokat, ezért kezdetben megfelelő lehet számodra tanulási célokra. Ez már jóval többet tud az előzőnél, de az adatbázist, amelyben dolgozol, azt neked kell létrehoznod. Ez talán nehezebb lehet egy kezdőnek, viszont nagyobb szabadságot ad, és ha kiválasztod az MS SQL Server-t, akkor ténylegesen egy SQL Server van mögötte és Transact-SQL-t tudsz használni.

Az SQL Fiddle egyébként több beépített adatbázismotort is tartalmaz, mint MS SQL Server, MySQL, PostgreSQL, Oracle és SQLite.

A következőkben lépésről lépésre bemutatom, hogyan kell használni:

1. Egyszerűen válaszd ki a számodra szükséges adatbázist a bal felső sarokban lévő legördülő menüből! Ha az én tanfolyamaimat követed, akkor az MS SQL-t.

SQL Fiddle adatbázismotor beállítása

2. Miután kiválasztottad, hogy melyik adatbázismotort szeretnéd használni, első lépésben létre kell hoznod egy sémát. Ebben a környezetben a séma az adatbázistáblá(k)at jelenti adatokkal.

Az  Ingyenes SQL Alapok Tanfolyamomban szereplő Vevők (=Customers) táblát mutatom meg, hogyan kell létrehozni, ez lesz a séma.

A tábla oszlopai a következők: Vevő azonosító (= CustomerID), Vevőnév (= CustomerName), Vevő életkora (= Age), Város (= City), Utolsó vásárlás dátuma (=LastPurchaseDate).

Legyen kiválasztva az MS SQL Server 2014 és a baloldali ún. schema panel-be másold be az alábbi kódot!

CREATE TABLE [dbo].[Customers](

[CustomerID] [int] IDENTITY(1,1) NOT NULL,

[CustomerName] [nvarchar](50) NULL,

[Age] [int] NULL,

[City] [nvarchar](50) NULL,

[LastPurchaseDate] [datetime] NULL,

CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED

(

[CustomerID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

Majd kattints a Build Schema gombra!

SQLFiddle Create schema

Ha parancs rendben lefutott, akkor alul kiírja, hogy Schema Ready és a jobb oldali panel aktívvá válik, azaz írhatsz már lekérdezéseket.

Ellenőrizheted is ezt a Browser gombra kattintva, ahol megjelenik az imént létrehozott Customers tábla (Ezután a DDL Editor gombra kattintva juthatsz vissza az eredeti felületre).

SQLFiddle schema browser

3. Kellenek azonban adatok is, amelyeket lekérdezhetsz, tehát hozz létre adatokat. Ezt újra a bal oldali panelen teheted meg, folytatólagosan.

Az alábbi kódot másold be a baloldali panelra ismét, majd jelöld ki és kattints újra a Build Schema gombra.

 

GO
SET IDENTITY_INSERT [dbo].[Customers] ON
GO
INSERT [dbo].[Customers] ([CustomerID], [CustomerName], [Age], [City], [LastPurchaseDate]) VALUES (1, N'Lucky Luke', 55, N'Pécs', CAST(N'2016-02-11 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Customers] ([CustomerID], [CustomerName], [Age], [City], [LastPurchaseDate]) VALUES (2, N'Scooby Doo', 30, N'Budapest', CAST(N'2016-02-23 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Customers] ([CustomerID], [CustomerName], [Age], [City], [LastPurchaseDate]) VALUES (3, N'Turpi Úrfi', 40, N'Sopron', CAST(N'2015-09-16 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Customers] ([CustomerID], [CustomerName], [Age], [City], [LastPurchaseDate]) VALUES (4, N'Tapsi Hapsi', 27, N'Szeged', CAST(N'2015-10-30 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Customers] ([CustomerID], [CustomerName], [Age], [City], [LastPurchaseDate]) VALUES (5, N'Maci Laci', 70, N'Szolnok', CAST(N'2015-11-25 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Customers] ([CustomerID], [CustomerName], [Age], [City], [LastPurchaseDate]) VALUES (6, N'Pán Péter', 62, N'Miskolc', CAST(N'2016-01-14 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Customers] ([CustomerID], [CustomerName], [Age], [City], [LastPurchaseDate]) VALUES (7, N'Spongya Bob', 18, N'Székesfehérvár', CAST(N'2015-12-18 00:00:00.000' AS DateTime))
GO
SET IDENTITY_INSERT [dbo].[Customers] OFF
GO

SQLFiddle Build Schema Insert Data

4. Most már van táblád és benne adatod is, így nincs más hátra, mint a legegyszerűbb lekérdezés megírása.

A jobboldali panelbe írd be az alábbi kódot és kattints a Run SQL gombra és már tudod is használni a programot.

SELECT * FROM Customers

SQLFiddle Query Panel

Természetesen bármilyen lekérdezést írhatsz, amelyet az SQL Server tud értelmezni, és amely utasításhoz van jogosultságod. Tanulási célra kiváló.

 

Miért érdemes mégis telepítened egy adatbázisszervert?


A fentiekben megnéztünk közelebbről két alkalmazást is, amely komoly segítséget nyújthat számodra a tanulási folyamatban. Mégis, ha komolyan gondolod az SQL tanulást, akkor érdemes saját adatbázisszervert telepíteni a gépedre. 

Több szempontból is jó, ha van saját adatbázisszervered:  

  • Azt csinálsz vele, amit akarsz
  • Nem veszik el, ha kikapcsolod a gépedet
  • Saját adatbázisod lehet, akár több is, a saját struktúráddal
  • Mindig ott van és úgy marad ott, ahogy hagytad, tehát bármikor folytathatod a tanulást/fejlesztést ott ahol abbahagytad
  • Bármely nyelvi elemet kipróbálhatod benne
  • Könnyebb a kezelése és még egy kis adatbáziskezelést is tanulsz közben
  • Gyakorlatilag nincsenek korlátok :-)

Természetesen kezdetben bőven elég valamely gyártó ingyenes Express verzióját telepíteni.

Microsoft SQL Server Express termékcsaládot jó szívvel ajánlom kezdésként, amely egyébként üzleti felhasználásra is ingyenes (!), mert könnyű telepíteni és a kezelőfelületeit pl. az SQL Server Management Studio–t is elég egyszerű használni.

A Microsoft SQL Server nyelve a Transact-SQL vagy röviden T-SQL, ez a szabvány SQL egy dialektusa. A T-SQL alapok nagyon jól jönnek más gyártók SQL-jének megismeréséhez is.

Ha meggyőztelek, hogy telepíts a gépedre egy adatbázisszervert, akkor itt találsz telepítési útmutatókat.

Ha mégsem, akkor elérhetők a bejegyzés első részében bemutatott online lehetőségek.

A legfontosabb azonban, hogy ne add fel az SQL nyelv tanulását, mert nagyon sokat profitálhatsz belőle mind IT-s, mind gazdasági területen!

Megjegyzés Hozzáfűzése