Structured Query Language

Z CVTI SR | SVS BB | Školská wikiencyklopédia
Verzia z 23:49, 24. október 2014, ktorú vytvoril Gieci (diskusia | príspevky) (Vytvorená stránka „Structured Query Language (SQL) je počítačový jazyk na manipuláciu (DML - výber, vkladanie, úpravu a mazanie) a definíciu údaj (DDL). V súčasnosti je to najpouž...“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Skočit na navigaciSkočit na vyhledávání

Structured Query Language (SQL) je počítačový jazyk na manipuláciu (DML - výber, vkladanie, úpravu a mazanie) a definíciu údaj (DDL). V súčasnosti je to najpoužívanejší jazyk tohto druhu v relačných systémoch riadenia báz dát.

Jazyk SQL sa vyvinul pôvodne z jazyka SEQUEL, čo bol jazyk pre manipuláciu a definíciu dát pre System R od IBM, prvého databázového systému založenom na Coddovom relačnom dátovom modeli. Prvý komerčný databázový systém využívajúci SQL vyvinula spoločnosť Relational Software, Inc. (teraz Oracle) v roku 1979. Jazyk SQL sa stal čoskoro štandardnou výbavou väčšiny relačných databázových systémov.

V roku 1986 inštitúcia ANSI štandardizovala jazyk SQL pod označením SQL-86. O rok neskôr vo viac-menej nezmenenej forme tento štandard ratifikovala aj organizácia ISO (SQL-87). V roku 1989 a 1992 boli prijaté revízie označené ako SQL-89, resp. SQL-92 (aj SQL-2). Výrazné zmeny prišli v roku 1999, kedy sa do štandardu SQL:1999 (SQL-3) dostali napr. rekurzívne dopyty, spúšťače (triggery), regulárne výrazy, neskalárne dátové typy a niektoré objektovo-orientované vlastnosti. Verzia SQL:2003 priniesla hlavne podporu pre XML, štandardizované postupnosti, stĺpce s automaticky generovanými hodnotami a tzv. oknové funkcie.

Základné syntaktické konštrukcie jazyka SQL sú nasledovné:

manipulácia dát

  • SELECT je ďaleko najčastejšie používaný príkaz a slúži pre vytváranie dopytov (výber dát). Dáta umožňuje vyberať z rôznych spojení (napr. prirodzené spojenie, vonkajšie spojenie, karteziánsky súčin) tabuliek, pohľadov a tabuľkových funkcií. V klauzule WHERE je možné definovať podmienky pre výstupné riadky. Tento príkaz plní aj agregačnú a zoskupovaciu funkciu (klauzula GROUP BY). Výstupné dáta môžu byť podľa želenia utriedené (ORDER BY). Príkaz SELECT vyberá dáta deklaratívnym spôsobom z koncepčnej alebo pohľadovej úrovne, nikdy nie z fyzickej.
  • INSERT umožňuje vloženie nových dát do tabuľky.
  • DELETE slúži na vymazanie dát z tabuľky.
  • UPDATE upravuje existujúce dáta v tabuľke.

definícia dát

  • CREATE vytvára nové databázové objekty (databázy, tabuľky, pohľady, funkcie a pod.),
  • ALTER upravuje databázové objekty (napr. pridáva stĺpce do existujúcej tabuľky),
  • DROP ruší databázové objekty.

niekedy sa hovorí aj o tzv. riadení dát (data control language)

  • GRANT prideľuje používateľom, skupinám a roliam práva na vykonanie rôznych operácií nad dátami,
  • REVOKE odoberá práva.

Časť, ktorá slúži na manipuláciu s dátami, je vo svojej podstate len syntaktický cukor pre relačný kalkul.

V čistej forme nie je jazyk SQL turingovsky úplný, tzn. nevieme v ňom vypočítať všetko, čo vieme na Turingovom stroji (a teda aj naprogramovať v bežných programovacích jazykoch). V SQL nedokážeme napríklad urobiť tranzitívny uzáver relácie. Z tohto dôvodu mnohé databázové systémy rozširujú jazyk SQL o ďalšie konštrukcie, napr. Oracle dodáva PL/SQL, Microsoft SQL Server používa T-SQL. Iný prístup spočíva v integrácií niektorého klasického programovacieho jazyka, napr. Oracle podporuje jazyk Java, Microsoft SQL Server 2005 ľubovoľný jazyk podporujúci .NET (napr. C#, VB.NET či C++), v PostgreSQL môžu byť funkcie písané v rôznych jazykoch ako je Perl, Tcl či C.