- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiálUložené procedury a spouště
Mezi pokročilé vlastnosti jazyka SQL patří:
Dočasné tabulky
Skripty a dávky
Kurzorové tabulky
Uložené procedury
Spouště
Integrovaný kód
Dočasné tabulky
Dočasné tabulky jsou v podstatě normální tabulky, které jsou v databázi pouze dočasně a jsou automaticky odstraněny, jakmile se uživatelé odhlásí nebo ukončí své databázové připojení.
Dočasnou tabulku můžeme vytvořit pomocí dvou forem zápisu:
Syntaxe 1
Create table #Kniha (
Sloupec 1 datový typ,
..
..
..
Sloupec n datový typ)
Při použití této syntaxe se vytvoří dočasná tabulka v databázi TEMPDB. Pro odstranění této dočasné tabulky je možné použít příkaz:
DROP TABLE #Kniha
Go
nebo je tabulka odstraněna automaticky v okamžiku, kdy se uživatel, který ji vytvořil odhlásí z SQL Serveru.
Syntaxe 2
Create Table tempdb..název_tabulky (
Sloupec 1 datový typ,
..
..
..
Sloupec n datový typ)
Vytvoří se dočasná tabulka v databázi TEMPDB, pro její odstranění je nutné zadat příkaz DROP TABLE. Automaticky bude tato tabulka odstraněna v případě ukončení a následného znovuspuštění SQL Serveru (nestačí odhlášení).
Příklad 1 – ukládání výsledků dotazu do dočasné tabuky pro pozdější využití v jiných dotazech
Create table #temp_majitel (
id int not null,
Jmeno varchar(10),
Prijmeni varchar(15),
titul varchar(15))
Insert #temp_majitel Select * from majitel
go
Dotaz s podmínkou aplikovaný na dočasnou tabulku
select jmeno from #temp_majitel
where prijmeni LIKE 'Minaříková'
Skripty a dávky
Se skripty jsme se v jednoduché formě setkali již např. při vytváření databáze a tabulek. Obecně můžeme konstatovat, že skript tvoří několik příkazů vykonávaných společně. Se skripty pracujeme jako s jednou ucelenou jednotkou – tzn. buď provádíme celý skript najednou nebo vůbec nic.
Příklad 2
Use Northwind
Declare @Ident int
Insert into orders (CustomerID,OrderDate)
Values (‘Fakulta’, DATEADD(day,-1,GETDATE()))
Select @Ident = @@Identity
Insert into [Order Details]
(OrderID,ProductID,UnitPrice,Quantity)
Values
(@Ident, 1, 50, 25)
Select ‘OrderID’ + convert(varchar(8). @Ident)
Uvedený skript demonstruje celkem šest různých příkazů, které naznačují širokou škálu možností, které je možné ve skriptech provádět. Jsou zde použity jak systémové funkce, tak i lokální proměnné, příkazy USE, INSERT, SELECT a přiřazovací příkazy. Všechny se podílejí na zajištění jednoho úkolu, tj. vložení údajů o objednávkách do databáze.
Deklarace proměnných
Deklaraci provádíme příkazem DECLARE. Syntaxe zápisu je následující:
DECLARE ,
,
Jedním příkazem DECLARE je možné deklarovat více proměnných nebo pro každou proměnnou zapsat zvlášť příkaz DECLARE:
Příklad 3:
DECLARE @Promena1 int,
@Promena2 varchar(10)
nebo
DECLARE @Promena1 int
DECLARE @Promena2 varchar(10)
Přiřazení hodnoty do proměnné
Existují dva způsoby, kterými je možno přiřadit hodnotu do deklarované proměnné. Jsou to příkazy SELECT a SET.
Z funkčního hlediska jsou oba příkazy stejné, příkaz SELECT může na rozdíl od příkazu SET převzít zdrojovou hodnotu také ze sloupce uvedeného v jeho výběrovém seznamu.
Přiřazení hodnoty příkazem SET
SET @Plat = 6500
SET @PlatPremie = 6500 * 1,15
Příkazem SET není možné přiřadit hodnotu, která je výsledkem dotazu:
Příklad 4:
A.
DECLARE @Nejvice money
SET @Nejvice = MAX(Plat) from zaměstnanci
SELECT @Nejvice
tato konstrukce způsobí chybové hlášení
B.
DECLARE @Nejvice money
SET @Nejvice = (SELECT MAX(Plat) from zaměstnanci)
SELECT @Nejvice
tato konstrukce je v pořádku
Přiřazení hodnoty příkazem SELECT
Tímto příkazem se zpravidla do proměnné ukládají hodnoty, které jsou výsledkem určitého dotazu.
DECLARE @Nejvice money
SELECT @Nejvice = MAX(Plat) from zaměstnanci
SELECT @Nejvice
Používané konvence:
pro jednoduché přiřazení proměnné, kdy již požadovanou hodnotu známe a tvoří ji explicitní hodnota nebo jiná proměnná používáme příkaz SET
hodnoty založené na výsledku dotazu přiřazujeme do proměnné příkazem SELECT
Typy proměnných
@
Uživatelem definované proměnné
@@
Systémové proměnné – vrací určitou hodnotu, nelze do nich nic uložit
Např:
@@DATEFIRST – vrací aktuální nastavený první den týdne
@@ROWCOUNT – vrací počet řádků dotčených posledním provedeným příkazem
…
…
…
…
Dávky
Dávka je skupina příkazů jazyka T-SQL, spojená do ucelené logické jednotky. Všechny příkazy dávky se propojí do jediného plánu provádění, takže jejich syntaktická analýza a následné provedení probíhá společně.
Pokud některý z příkazů v dávce selže během syntaktické analýzy, celkem se ještě nic neděje. Pokud se tak stane při běhu, při zpracování dávky, pak jsou veškeré příkazy zadané před příkazem s chybou nenávratně vykonány.
Dávka – jednoduše řečeno – vznikne ze skriptu. K rozdělení skriptu do několika dávek slouží příkaz GO.
Vloženo: 22.04.2009
Velikost: 118,50 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Mohlo by tě zajímat:
Skupina předmětu DBS - Databázové systémy
Reference vyučujících předmětu DBS - Databázové systémy
Podobné materiály
Copyright 2025 unium.cz


