A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Structured Query Language (SQL; iné názvy: štruktúrovaný vyhľadávací jazyk, štruktúrovaný dopytovací jazyk, nespisovne štruktúrovaný dotazovací jazyk) je počítačový jazyk na manipuláciu (DML) (výber, vkladanie, úpravu a mazanie) a definíciu údajov (DDL). V súčasnosti je to najpoužívanejší jazyk tohto druhu v relačných systémoch riadenia databáz.
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.
Norma SQL-86 definuje výslovnosť slova SQL v anglickom jazyku ako „eskjúel“, hoci mnoho ľudí ho vyslovuje stále ako „síkl“ (SEQUEL). V slovenskom jazyku sa okrem týchto dvoch cudzích výslovností používa prirodzené „eskvéel“.
Základné syntaktické konštrukcie jazyka SQL sú nasledovné:
- manipulácia dát (DML príkazy)
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 klauzuleWHERE
je možné definovať podmienky pre výstupné riadky. Tento príkaz plní aj agregačnú a zoskupovaciu funkciu (klauzulaGROUP BY
). Výstupné dáta môžu byť podľa želenia utriedené (ORDER BY
). PríkazSELECT
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.MERGE
kombinácia príkazov INSERT/UPDATE, definovaná štandardom SQL:2003. Dáta sa alebo vložia, alebo upravia, v závislosti na definovanej podmienke
- transakčné príkazy obaľujú DML príkazy, prevedú databázu z jedného konzistentného stavu do druhého
START TRANSACTION
, (alebo BEGIN TRANSACTION, BEGIN WORK) označuje začiatok transakcie, pokiaľ sa zmeny nepotvrdia, iní užívatelia ich neuvidiaSAVE TRANSACTION
uloženie aktuálneho stavu transakcieCOMMIT
potvrdenie zmien vykonaných v transakcii a ich trvalé uloženie do databázyROLLBACK
vrátenie prevedených zmien do stavu pred vykonaním transakcie, alebo do stavu pred posledným uložením transakcie
- definícia dát (DDL príkazy)
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 (štandard) 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ácii 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.
Rozšírenia
Procedurálne rozšírenia
SQL je navrhnuté na špecifický účel: vyhľadávať údaje v relačnej databáze. SQL je nastaviteľný, deklaratívny jazyk, nie prikazovací ako C alebo BASIC. Napriek tomu existujú rozšírenia základného SQL, ktoré dopĺňajú funkcie procedurálneho programovacieho jazyka, ako napríklad konštrukcia kontrola-za-behu. Tu sú:
Source | Common Name |
Full Name |
---|---|---|
ANSI/ISO Standard | SQL/PSM | SQL/Persistent Stored Module |
IBM | SQL PL | SQL Procedural Language |
Microsoft/ Sybase |
T-SQL | Transact-SQL |
MySQL | MySQL | MySQL |
Oracle | PL/SQL | Procedural Language/SQL |
PostgreSQL | PL/pgSQL | Procedural Language/PostgreSQL Structured Query Language |
Na doplnenie štandardných SQL/PSM rozšírení a súkromných (patentovaných?) SQL rozšírení, je na veľa SQL platformách pomocou DBMS integrácie s inými jazykmi umožnené procedurálne a objektovo-orientované programovanie. SQL štandardy definujú SQL/JRT rozšírenia (SQL programy a typy(?) pre programovací jazyk Java) na podporu kódu Java v SQL databázach. SQL Server 2005 používa SQLCLR ( spoločný jazyk pre SQL Servery) na riadenie(?) klienta. NET vyhľadáva v databáze, kým predchádzajúce verzie SQL Server nepodporovali neriadené(?) rozširovacie funkcie, primárne napísané v C. Ďalšie databázové platformy, ako MySQL a Postgres, umožňujú písanie funkcií v širokom spektre jazykov, ako: Perl, Python, TCL a C.
Ďalšie rozšírenia
SQL: 2003 tiež definuje niekoľko ďalších rozšírení k štandardu zväčšiť SQL celkovú funkčnosť. Tieto rozšírenia obsahujú:
- SQL/CLI, alebo volacie rozhranie, rozšírenie je definované v ISO/IEC 9075-3: 2003. Toto rozšírenie definuje obyčajné prepojovacie komponenty (štruktúry a procedúry), ktoré môžu byť použité na spracovanie SQL formulácii z aplikácii písaných v iných programovacích jazykoch. SQL/CLI rozšírenie je definované v takej ceste že SQL formulácie a SQL/CLI procedurálne volania su spracované ako !!!separate!!! z volacieho aplikačného zdrojového kódu.
- SQL/MED, alebo vedenie externých dát, rozšírenie je definované ISO/IEC 9075-9: 2003. SQL/MED poskytuje rozšírenie ku SQL, ktoré vymedzuje cudzie-dátové obaly a datalinkové typy k povoleniu SQL riadiť externé dáta. Externé dáta sú dáta, ktoré sú dostupné , ale nie riadené, SQL-based? DBMS.
- SQL/OLB, alebo Objektové jazykové viazanie, rozšírenie je definované ISO/IEC 9075-10: 2003. SQL/OLB definuje syntax a !!symantics!! SQLJ, ktorý je SQL vložený v Jave. Štandard taktiež popisuje mechanizmy na zaistenie binárnej prenositeľnosti SQLJ aplikácii, a špecifikuje rôzne java balíčky a ich obsahované triedy.
- SQL/Schemata, alebo Informovanosť a definícia schémat, rozšírenie je definované ISO/IEC 9075-11: 2003. SQL/schémata definujú informačné schéma a definujúce schéma, poskytujúce obyčajný súbor nástrojov robiť SQL databázy a objekty samo-popisovateľné. Tieto nástroje zahrnujú SQL objektový identifikátor, štruktúru a integritné zabezpečenia, bezpečnosť a autorizačné špecifikácie, funkcie a balíčky ISO/IEC 9075, podpora funkcií poskytované SQL-based DBMS implementácií, SQL-based DBMS implementačné informácie a formátovacie prvky?? a hodnoty podporované DBMS implementáciami.
SQL/JRT, alebo SQL rutiny a typy pre java programovací jazyk, rozšírenie je definované ISO/IEC 9075-13: 2003. SQL/JRT špecifikuje schopnosť sa odvolať na statické java metódy ako rutiny vo vnútri SQL aplikácii. To taktiež volá po schopnosti používať java triedy ako SQL usporiadané užívateľské definované typy.
- SQL/XML, alebo XML-príbuzné špecifikácie, rozšírenie je definované ISO/IEC 9075-14: 2003. SQL/XML špecifikuje SQL-based rozšírenie na používanie spojenia s SQL. XML dátový typ je predstavený, rovnako ako niekoľko rutín, funkcií, a XML-to-SQL dátový typ mapujúci na podporu manipulácie a ukladania XML v SQL databáze.
SQL/PSM, alebo Trvalo uložené moduly, rozšírenie je definované ISO/IEC 9075-4: 2003. SQL/PSM normalizuje procedurálne rozšírenie pre SQL, obsahujúci prúd kontroly, !!!condition!!! manipuláciu, príkaz !!condition!! signálov a !!resignals!!, kurzorov a lokálnych premenných a dosadzovanie výrazov do premenným a parametrov. Navyše, SQL/PSM formuje deklaráciu a udržovanie trvalých databázových jazykových rutín (napr., “uložené procedúry”).
Jazykové prvky
Jazyk SQL sa skladá z niekoľkých jazykových prvkov, zahŕňajúc:
- Príkazy – môžu mať trvalý dopad na schémy a údaje, alebo ktoré môžu kontrolovať protokoly, toky programov, pripojenia, spojenia, diagnózu.
- Vyhľadávanie – ktoré vyberajú údaje podľa špecifických kritérií
- Výrazy – ktoré môžu zobrazovať skalárne veličiny, alebo tabuľky, pozostávajúce z údajov v riadkoch a stĺpcoch
- Premenné – ktoré špecifikujú podmienky, ktoré môžu stanoviť SQL trojhodnotovú logiku (3VL) Boolean-ovskej pravdivých hodnôt, ktoré sú používané na limitovanie účinkov príkazov a vyhľadávania, alebo na zmeny tokov programov.
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antropológia
Aplikované vedy
Bibliometria
Dejiny vedy
Encyklopédie
Filozofia vedy
Forenzné vedy
Humanitné vedy
Knižničná veda
Kryogenika
Kryptológia
Kulturológia
Literárna veda
Medzidisciplinárne oblasti
Metódy kvantitatívnej analýzy
Metavedy
Metodika
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk