SQL

A Programozás Wiki wikiből

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;