SQL
Mi az SQL?[szerkesztés]
Structured Query Language: Strukturált lekérdező nyelv.
Angol nyelvterületen 'eszkjuel' a kiejtése. A hagyományokhoz való hűség jegyében sokan 'szíkvel'-nek ejtik, ugyanis korábban Structured English Query Language (SEQUEL) volt az elnevezés, és ezt rövidítették le. Az SQL a Structured Query Language (strukturált lekérdező nyelv) rövidítése.
A nyelv célja az volt, hogy egységes lekérdező nyelvként működjön az egyes relációs adatbázis-kezelő rendszerek számára. Annyira sikeressé vált, hogy lényegében a ma használt összes relációs adatbázis-kezelő támogatja.
Az SQL alapvető utasításait az adatbáziskezelők közel egyformán valósítják meg, de a később beépült nyelvi elemek körében nagyon nagy az eltérés, az inkompatibilitás, emiatt számos SQL nyelvjárásról beszélhetünk. Csak a nem programozók tekintik az SQL-t programozási nyelvnek, valójában egy lekérdező nyelv.
Az SQL története[szerkesztés]
Az SQL alapjait az IBM-nél fektették le, még az 1970-es években. Elvi alapot a relációs adatmodell szolgáltatott, amit Edgar F. Codd híres 12 szabályával írt le először, 1970-ben.
Az IBM, az Oracle és más gyártók is érdekeltek voltak egy szabványos lekérdező nyelv kifejlesztésében, amivel a relációs adatbázisok programozhatók. Az iparági összefogással létrejött ANSI NCITS (National Committee on Information Technology Standards) H2 csoport lerakta az SQL alapjait.
A szabványt az ANSI (Amerikai Nemzeti Szabványügyi Intézet – American National Standards Institute) 1986-ban, az ISO (Nemzetközi Szabványügyi Szervezet – International Organization for Standardization) 1987-ben jegyezte be. Az első változatot SQL86 néven is szokták emlegetni.
A nyelv több változatát is nemzetközi szabványként jegyzik. Négy jelentős kiadást különböztetünk meg:
- SQL86
- SQL89
- SQL92
- SQL99
Az első kivételével mindegyik szabvány többszintű megvalósítást tesz lehetővé a gyártóknak (belépő szintű, közepes vagy teljes). Általában a későbbi szabványok belépő szintjei az előző szabvány teljes szintjeinek felelnek meg.
Az SQL nyelv parancsai lekérdező, módosító (DML) és definíciós (DDL) típusokra oszthatók.
DDL[szerkesztés]
A definíciós utasításokkal az adatbázis tábláinak felépítését határozhatjuk meg. Létrehozhatunk, módosíthatunk és törölhetünk táblákat, indexeket, megkötéseket (constraints)
Fontosabb DDL utasítások:
- CREATE TABLE - tábla létrehozása
- ALTER TABLE - tábla szerkezetének módosítása
- DROP TABLE - tábla törlése
DML[szerkesztés]
Az adatkezelési utasítások az egyes rekordok tartalmára vonatkoznak. Lekérdezhetjük egy tábla egy rekordját, több rekordját, összetett rekordokat, amik táblák összekapcsolásával állnak elő. Módosíthatjuk a táblák rekordjait, akár egyszerre többet is, bizonyos feltételeknek megfelelően, és törölhetünk a táblákból.
Fontosabb DML utasítások:
- SELECT - adatok lekérdezése
- INSERT - adatok felvitele
- UPDATE - adatok módosítása
- DELETE - adatok törlése
Példa[szerkesztés]
Lekérdezés táblák összekapcsolásával, feltétellel, rendezéssel
SELECT
w.Name AS WorkerName, p.Name AS WorkPlaceName
FROM
workers w
LEFT JOIN workplaces p
ON (w.WorkPlaceID = p.WorkPlaceID)
WHERE
(w.Born <= 1980) OR (p.Income >= 20000)
ORDER BY
p.Name, w.Name;