SQL - Structured Query Language (Strukturovaný dotazovací jazyk) je standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích

Rozdělení standardního SQL

SQL příkazy se dají rozdělit do několika kategorií podle toho co provádíte

Data definition language (DDL) neboli příkazy určené pro práci se strukturou databázových objektů. Nejčastěji tabulek.

CREATE - vytvoření

ALTER - změně

DROP - odstranění

RENAME - přejmenování

TRUNCATE - smazání, aniž by se data ukládala do koše

COMMENT - přidání komentáře

Vloženo z <[link]> 

Data manipulation language (DML) neboli příkazy určené pro manipulaci s daty

INSERT - vložení

UPDATE - úprava nebo také editace či změna

MERGE - sloučení 

Vloženo z <[link]> 

Řízení transakcí. Jednotlivé příkazy DML můžete slučovat do transakcí, ale nemusíte. 

COMMIT - slouží k potvrzení veškerých změn

ROLLBACK - provede rollback veškerých změn

SAVEPOINT - vytvoří časovou značku ke které se můžete vracet.

Vloženo z <[link]> 

Data control language (DCL) neboli příkazy sloužící k přídání či odebrání opravnění k databázi a objektů v ní.

GRANT - přiřazení 

Vloženo z <[link]> 

PL/SQL přidává k jazyku SQL konstrukce procedurálního programování. 

PL/SQL (Procedural Language/Structured Query Language) je procedurální nadstavba jazyka SQL od firmy Oracle založená na programovacím jazyku Ada.

PL/SQL je rozšíření jazyka SQL o procedurální rysy. Je specifické pro produkty firmy Oracle, procedurální rozšíření SQL produktů jiných firem se zpravidla navzájem liší. Výjimkou je ŠRBD DB2 společnosti IBM, který podporuje jak vlastní procedurální jazyk SQL PL, tak je plně kompatibilní s jazykem PL/SQL včetně datových typů. Základním stavebním kamenem PL/SQL je tzv. PL/SQL blok, který může být buď tělem triggeru, procedry a funkce, nebo samostatný. Struktura PL/SQL bloku je viz "základní konstrukce"

Vloženo z <[link]> 

Základním stavebním kamenem v PL/SQL je blok. Program v PL/SQL se skládá z bloků, které mohou být vnořeny jeden do druhého. Obyčejně každý blok spouští jednu logickou akci v programu. Blok má následující strukturu:

 ošetrení výjimek

Komentáře:

-- komentář do konce řádky

/* komentář od do */

Pouze výkonná sekce je povinná, ostatní jsou doporučené. Jediné příkazy jazyka SQL, které jsou ve výkonné sekci povolené, jsou SELECT, INSERT, UPDATE, DELETE a několik dalších pro manipulaci s daty a pro kontrolu transakcí. Definiční příkazy jazyka SQL jako CREATE, DROP nebo ALTER nejsou povoleny. Avšak použití těchto příkazů lze pomocí direktivy EXECUTE IMMEDIATE "PŘÍKAZ". PL/SQL není citlivé na velikost písmen a mohou být použity komentáře ve stylu jazyka C.

Vloženo z <[link]> 

Kurzor je pracovní oblast obsahující data (výsledná množina, tzv. result set), které lze dále využívat prostřednictvím operací nad kurzory

Implicitní jsou jednořádkové SQL (INTO)

Explicitní můžeme deklarovat v části DECLARE pomocí klíčového slova CURSOR

Práce s kurzory se podobá souborům

Bloky příkazů jazyka PL/SQL lze pojmenovat a uložit ve spustitelné formě do databáze = procedury + funkce

• Jsou uloženy ve zkompilovaném tvaru v databázi.

• Mohou volat další procedury či funkce, či samy sebe.

• Lze je volat ze všech prostředí klienta.

Funkce, na rozdíl od procedury, vrací jedinou hodnotu (procedura může vracet hodnot více, resp. žádnou).

uživatelsky definovaný blok PL/SQL sdružený s určitou tabulkou. Je implicitně spuštěn (proveden), jestliže je nad tabulkou prováděn aktualizační příkaz

Anonymous Blocks (jenom BEGIN až END bez názvu, takže zapomenout EXEC)

Programový balík je sdružením řady funkcí a procedur s vlastním jmenným prostorem a vlastním persistentním prostorem pro proměnné v rámci jedné session

Umožňuje uchovávat hodnoty v rámci session pro řadu procedur a funkcí

Představují pole - množina (set, bag) v některých programovacích jazycích

Typ prvku může být lib. PL/SQL typ mimo odkazu (REF) a kurzoru (CURSOR)

variable-size array (dynamické pole) – tzv. varrays odpovídají klasickým dynamickým polím, uchovávají definovaný počet hodnot, 

pomalejší přístup SQL nástroji než k nestedtables

IF podmínka THEN příkazy_1;

ELSIF podmínka THEN příkazy_2;

ELSE příkazy_n;

CASE proměnná

WHEN výraz_1 THEN příkazy_1;

WHEN výraz_2 THEN příkazy_2;

WHEN výraz_n THEN příkazy_n;

ELSE příkazy_n+1
