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

Linux E X P R E S, Structured Query Language

Soutěž - reproduktory Trust

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.


reklama

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

Top články z OpenOffice.cz

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



 
 

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


Redakční blog

Redakce

Redakce, 21. prosinec

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Pavel Fric

Pavel Fric, 23. říjen

Nové motivy pro přehrávač Sayonara

Pomozte rozšířit možnost měnit vzhled programu za běhu


Pavel Fric

Pavel Fric, 28. únor

Lollypop


Všechny blogy »