transakcyjny SQL

background image

Co to jest transakcyjny SQL

Najprościej:
Transakcyjny SQL =

zdania języka operowania na
danych +
instrukcje sterujące

background image

Po co transakcyjny SQL

Umożliwia przechowywanie w bazie
danych nie tylko danych ale również:

1. Reguł biznesowych,
2. Reguł integralności niemożliwych do

zapisana innymi sposobami,

3. Scentralizowanych procedur

przetwarzania danych,

4. Funkcji.

background image

Cechy transakcyjnego SQL

1. W pełni funkcjonalny język programowania,
2. Brak interfejsu graficznego,
3. Polecenia specyficzne dla obsługi baz danych,
4. Brak narzędzi programistycznych

(specjalizowany edytor, debugger),

5. Służy do programowania działań po stronie

serwera,

6. Optymalizowany na szybkość wykonania kodu,
7. Niezbędny do zaprogramowania niektórych

operacji

8. Wykorzystywany do kodowania funkcji

użytkowników, procedur przechowywanych,
triggerów

background image

Cechy transakcyjnego SQL

1. W pełni funkcjonalny język programowania,
2. Brak interfejsu graficznego,
3. Polecenia specyficzne dla obsługi baz danych,
4. Brak narzędzi programistycznych

(specjalizowany edytor, debugger),

5. Służy do programowania działań po stronie

serwera,

6. Optymalizowany na szybkość wykonania kodu,
7. Niezbędny do zaprogramowania niektórych

operacji

8. Wykorzystywany do kodowania funkcji

użytkowników, procedur przechowywanych,
triggerów

background image

Elementy transakcyjnego SQL

1.

Zmienne takich samych typów jak pola

w bazie danych

2.

Instrukcje sterujące: IF, FOR, WHILE

3.

Nawiasy logiczne BEGIN..END

4.

Możliwość deklarowania funkcji –

funkcje zwracają wartość ale nie

można wewnątrz nich wykonywać

działań na bazie,

5.

Możliwość deklarowania procedur

6.

Deklarowanie triggerów – procedur

wykonywanych w reakcji na określone

zdarzenia w bazie danych

background image

Przykład prostej funkcji

CREATE FUNCTION pierwsza_duza (@tekst varchar(50))
RETURNS varchar(50)
as
BEGIN
declare @pierwszy_znak

varchar(1)

declare @reszta

varchar(49)

set @pierwszy_znak = upper(left(@tekst,1))
set @reszta = substring(@tekst, 2, len(@tekst)-1)
return @pierwszy_znak+ lower(@reszta)

END

Wywołanie:
select dbo.pierwsza_duza('ALABASTER')
WYNIK:
Alabaster

background image

Przykład prostej funkcji 2

create function aa(@x int,@y int) returns int
as
begin

declare @wynik int
if @x > @y

begin

set @wynik = @x+@y

end

else

begin

set @wynik = @x-@y

end

return(@wynik)
end

background image

Przykład prostej procedury

create PROCEDURE generuj

@ile int = 100

AS
DECLARE

@i integer

DECLARE

@los varchar(20)

DECLARE

@znak varchar(1)

set @i =1
while @i<@ile
begin
set @los = replicate(char(rand()*65+33),round(rand()*20,0))
insert into probna values(@los , null, null)
set @i=@i+1
end

Wywołanie:
exec generuj 400
Sprawdzenie:
select * from probna

create table probna (
id_rek integer
identity (1000,1),
tekst varchar(20),
liczba numeric (8,2),
random float

)

background image

Co to jest kursor?

Kursor można rozumieć jako połączenie

dwóch elementów:

• Wybranego (zwykle niepustego) podzbioru

wierzy danej tabeli lub widoku

• Wskaźnika pokazującego tzw. bieżący

rekord

Kursory umożliwiają przetwarzanie informacji

w trybie rekord-po-rekordzie. W
przeciwieństwie do przetwarzania całych
tabel tak jak w poleceniach UPDATE SQL-
a.

background image

Jak używać kursora?

1.

Kursor należy zadeklarować – do kursora

wybieramy te wiersze i pola, które

zamierzamy jakoś przetwarzać
DECLARE nazwa_kursora CURSOR
FOR SELECT zdanie _select
[FOR UPDATE OF lista_pol]

2.

Kursor należy otworzyć
OPEN nazwa_kursora

3.

Pobierać kolejne rekordy
FETCH nazwa_kursora INTO list_pol

4. Po użyciu kursor zamknąć i zniszczyć

CLOSE nazwa_kursor
DEALLOCATE nazwa_kursora

background image

Przykład użycia kursora

ALTER procedure wyp_liczby

@od_ilu int, @co_ile int

AS
BEGIN
declare @pom_liczba numeric
declare all_rec cursor for select liczba from probna for update of

liczba

open all_rec
fetch all_rec into @pom_liczba
while @@FETCH_STATUS =0
begin

update probna set liczba = @od_ilu where current of all_rec
set @od_ilu = @od_ilu + @co_ile
print @od_ilu
fetch all_rec into @pom_liczba

end
close all_rec
deallocate all_rec
print '>>>>>>KONIEC<<<<<<'
end

create table probna (
id_rek integer
identity (1000,1),
tekst varchar(20),
liczba numeric (8,2),
random float

)

background image


Document Outline


Wyszukiwarka

Podobne podstrony:
transact sql, Analiza matematyczna, Analiza matematyczna, Analiza matematyczna cz2, BD wyklady, BD w
Transact SQL Czarna ksiega
Transact SQL Czarna ksiega tsqlbb
SQL Server 2012 Tutorials Writing Transact SQL Statements
Transact SQL Czarna ksiega 2
Transact SQL Czarna księga
Transact SQL Czarna ksiega tsqlbb
Transact SQL Czarna ksiŕga
Transact SQL Czarna ksiega
Podstawy SQL, Zajęcia 4 Transakcje i blokady
Transalcje
06 podstawy SQL 3id 6524 ppt
6 BERNE ANALIZA TRANSAKCYJNA
C3A4 Transaction in foreign trade Polish ver 2010 10 17
FMP1 Zadania Kursy i transakcje Nieznany
Oracle Database 11g i SQL Programowanie or11pr

więcej podobnych podstron