přejít na obsah přejít na navigaci

Linux E X P R E S, Structured Query Language

Structured Query Language

Neprocedurální standardizovaný jazyk SQL (Structured Query Language, česky strukturovaný dotazovací jazyk) je určen pro práci s daty v relačních databázích. Jeho vznik se datuje do roku 1974, kdy světlo světa spatřil jazyk Sequel (Structured English Query Language, česky Anglický strukturovaný dotazovací jazyk), který byl použit v Systému R společnosti IBM.


Samotnému vývoji a nasazení jazyka Sequel, později SQL, předcházel článek "A Relational Model of Data for Large Shared Data Banks" anglického vědce Edgara F. Codda. Článek byl otisknut v létě roku 1970 v magazínu Association for Computing Machinery (ACM) a jeho předmětem byl popis a návrh datového relačního modelu. Codd v článku nastínil způsob, jak využít relační kalkul a algebru při manipulaci s daty.

Návrh byl koncipován tak, aby ho byli schopni využívat i méně technicky zdatní uživatelé. Prostředkem k tomuto cíli bylo použití srozumitelných příkazů, které vycházely z běžné angličtiny. Návrh jazyka byl jakkoliv nezávislý na použitém hardwaru a na způsobu fyzického uložení dat. Koncept předpokládal ukládání do tabulek a přístup k datům prostřednictvím neprocedurálního jazyka.

Vývoj System-R prošel dvěma fázemi. V první fázi v období let 1974-1975 se prakticky ověřoval návrh relačního modelu. V druhé fázi, období let 1978-1979, se pak implementoval plně funkční víceuživatelský systém. Původním jazykem byl SEQUEL. Ke konci roku 1976 pak byla v IBM Journal of R&D popsána verze SEQUEL2. Ta byla později přejmenována na SQL. Důvodem k přejmenování bylo to, že název SEQUEL byl již zaregistrován jako obchodní značka letecké společnosti Hawker-Siddeley.

Základ jazyka SQL je postaven na relační teorii. Podle ní lze pomocí pěti základních operací, kterými jsou sjednocení, kartézský součin, rozdíl, projekce, selekce a spojení vykonat veškeré operace s daty. Další operace jsou pak již jen kombinace těchto zmíněných.

V roce 1986 byl jazyk SQL prohlášen standardem ANSI (SQL 86) a o rok později schválen standardem ISO (SQL 87). V roce 1989 byl publikován ISO dodatek Integrity Enhancement Feature (SQL89). V roce 1992 byla provedena úprava tohoto standardu a hovoří se o SQL2, nebo SQL92. V roce 1999 bylo SQL rozšířeno o regulární výrazy, rekurzivní dotazy, triggery, neskalární typy a některé objektové vlastnosti. V souvislosti s tímto rozšířením mluvíme o SQL3 nebo SQL1999. V roce 2003 byla představena XML rozšíření, standardizovány sekvence a sloupce s automaticky generovanými hodnotami. O této verzi hovoříme jako o SQL 2003.

Naučit se a používat jazyk SQL je velmi snadné. SQL příkazy můžeme rozdělit do čtyř hlavních skupin. První skupinu příkazů pro definici dat (DDL - Data Definition Language) využijeme při vytváření struktury databáze. Klíčová slova této skupiny jsou CREATE - pro vytváření nových objektů. DROP pro odstraňování objektů a ALTER pro změny existujících objektů.

Druhou skupinu tvoří příkazy pro manipulaci s daty (DML - Data Manipulation Language). Mezi hlavní příkazy této skupiny patří příkaz SELECT pro výběr konkrétních dat z databáze, INSERT pro vložení dat, UPDATE pro modifikaci záznamů a DELETE pro vymazání záznamu z databáze.

Do třetí skupiny se řadí příkazy pro řízení dat (TCC - Transaction Control Commands). Příkazy z této skupiny se například řídí transakce nebo se nastavují přístupová práva. Mezi příkazy z této skupiny patří BEGIN pro zahájení transakce, COMMIT pro potvrzení transakce a ROLLBACK pro zrušení transakce. Dále pak GRANT pro přidělení oprávnění uživateli k určitým objektům a REVOKE pro odebrání práv uživatele.

Čtvrtou skupinu pak tvoří příkazy pro správu databáze. Pomocí nich je možno přidat uživatele, nastavovat systémové parametry a další.

Zápis příkazů v SQL si ukážeme na dvou příkladech s tradičním Hello World. V prvním, obecně pojatém, se nejprve vytvoří tabulka s názvem message a atributem text. V druhém se do tabulky vloží řetězec "Hello, world!". V třetím se na záznam v tabulce dotážeme, takže dojde k jeho vypsání na obrazovku. Ve čtvrtém příkazu tabulku i se záznamem smažeme. Druhý příklad ukazuje vypsání "Hello,world!" v prostředí databáze Oracle. K vypsání je použito speciální konstrukce z FROM DUAL.

CREATE TABLE message (text char(15));
INSERT INTO message (text) VALUES ('Hello, world!');
SELECT text FROM message;
DROP TABLE message;
#Oracle
SELECT 'Hello, world!' FROM dual;

Nahoru

Odkazy

Příspěvky

Re: Structured Query Language
25. 01. 2007, 22:12:15
Odpovědět  Odkaz 
SQL normy jsou pekne, ale ta implementace :(.
Co databaze to original.
Re: Structured Query Language
26. 01. 2007, 09:26:35
Odpovědět  Odkaz 
No nevím, ale většina SQL serverů je SQL-99 kompatibilních nebo i víc. A co standard nepokrývá, to si každý logicky udělá sám... Takže ta poznámka je dost mimo...

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Lukáš Faltýnek

Lukáš Faltýnek

Vystudoval informační management na Univerzitě Hradec Králové. Pracuje jako analytik/programátor. Láskou k počítačům vzplanul v roce 1986, kdy dostal svůj první počítač Atari 800 XL. S Unixem se poprvé setkal před dvanácti lety. Chvíli nato pak s Linuxem, který si pro jeho svobodu zamiloval. Je ženatý a má dvě děti. Mezi jeho koníčky patří literatura, kinematografie a cestování.


  • Distribuce: Ubuntu

| blog