Příkazy jazyka SQL

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Příkazy jazyka SQL obecně umožňují úplnou kontrolu nad systémem řízení báze dat. Podle svého účelu se dělí do následujících skupin:

Příkazy pro manipulaci s daty[editovat | editovat zdroj]

Jsou to příkazy pro získání dat z databáze a pro jejich úpravy. Označují se zkráceně DMLData Manipulation Language („jazyk pro manipulaci s daty“).

  • SELECT – vybírá data z databáze, umožňuje výběr podmnožiny a řazení dat.
  • INSERT – vkládá do databáze nová data.
  • UPDATE – mění data v databázi (editace).
  • MERGE – kombinace INSERT a UPDATE – data buď vloží (pokud neexistuje odpovídající klíč), pokud existuje, pak je upraví ve stylu UPDATE.
  • DELETE – odstraňuje data (záznamy) z databáze.
  • EXPLAIN – speciální příkaz, který zobrazuje postup zpracování SQL příkazu. Pomáhá uživateli optimalizovat příkazy tak, aby byly rychlejší.
  • SHOW - méně častý příkaz, umožňující zobrazit databáze, tabulky nebo jejich definice

Příkazy pro definici dat[editovat | editovat zdroj]

Těmito příkazy se vytvářejí struktury databáze – tabulky, indexy, pohledy a další objekty. Vytvořené struktury lze také upravovat, doplňovat a mazat. Tato skupina příkazů se nazývá zkráceně DDLData Definition Language („jazyk pro definici dat“).

  • CREATE – vytváření nových objektů.
  • ALTER – změny existujících objektů.
  • DROP – odstraňování objektů.

Příkazy pro řízení dat[editovat | editovat zdroj]

Do této skupiny patří příkazy pro nastavování přístupových práv a řízení transakcí. Označují se jako DCLData Control Language („jazyk pro ovládání dat“), někdy také TCCTransaction Control Commands („jazyk pro ovládání transakcí“).

  • GRANT – příkaz pro přidělení oprávnění uživateli k určitým objektům.
  • REVOKE – příkaz pro odnětí práv uživateli.
  • START TRANSACTION – zahájení transakce.
  • COMMIT – potvrzení transakce.
  • ROLLBACK – zrušení transakce, návrat do původního stavu.

Ostatní příkazy[editovat | editovat zdroj]

Do této skupiny patří příkazy pro správu databáze. Pomocí nich lze přidávat uživatele, nastavovat systémové parametry (kódování znaků, způsob řazení, formáty data a času apod.). Tato skupina není standardizována a konkrétní syntaxe příkazů je závislá na databázovém systému. V některých dialektech jazyka SQL jsou přidány i příkazy pro kontrolu běhu, takže lze tyto dialekty zařadit i mezi programovací jazyky.

Příklad pro MySQL
SET NAMES utf8; -- nastaví jako kódování UTF-8
SET foreign_key_checks=0; -- vypne kontrolu cizích klíčů
SET time_zone="SYSTEM"; -- nastaví časovou zónu
SET sql_mode="NO_AUTO_VALUE_ON_ZERO"; -- vypne automatické doplňování hodnoty primárního klíče s příznakem AUTO_INCREMENT

Komentáře[editovat | editovat zdroj]

Do kódu SQL lze ve všech hlavních databázích zapisovat i komentáře. Prakticky všechny z nich podporují jednořádkové komentáře, některé i víceřádkové. Jednořádkové bývají uvozeny znaky jako --, ## (či jenom #), s tím, že parser jazyka ignoruje vše až do konce řádku. Víceřádkové komentáře se mohou psát mezi /* a */, kdy případný kód za koncovým */ se zpracovává.

-- jednořádkový komentář. SELECT "tento příkaz se nevykoná";

/* více-
-řádkový
komentář */ SELECT "tento příkaz se vykoná.";

Např. MySQL využívá tento typ komentářů k vkládání kódu specifického pro tento typ databáze, s tím, že specifický kód je umístěn mezi /*! a */.

/*!40101 SET NAMES utf8 */; 
CREATE /*!32302 TEMPORARY */ TABLE t (a INT);
SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE table1.col1=5;

Je-li takovýto kód spuštěn v jiném databázovém prostředí, je vnitřek komentáře ignorován (můžeme hovořit o kompatibilitě s ostatními implementacemi SQL).