http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja5

background image

Zaawansowane

programowanie

w T-SQL

background image

Przegląd zagadnień

Składnie T-SQL
Obsługa błędów
Podsumowanie
Laboratorium

background image

Składnie T-SQL

Transact-SQL (T-SQL) to implementacja języka SQL w

systemie Microsoft SQL Server. Język ten nieco różni się

od standardu, ale większość podstawowych definicji jest

taka, jak w standardzie.
T-SQL - z języka zapytań stał się językiem

programowania baz danych.

background image

Instrukcje sterujące

Jednymi z częściej używanych składni są instrukcje

sterujące.
Instrukcja sterująca IF...ELSE daje możliwość warunkowego

wykonywania bloków kodu. W implementacji T-SQL wygląda

ona jak poniżej.

DECLARE @zmienna int
SET @zmienna = 100
IF @zmienna > 100

PRINT 'Zmienna jest większa niż 100‘

ELSE

BEGIN

PRINT 'Zmienna jest mniejsza niż 100'
SET @zmienna = 0 -- zerowanie zmiennej

END

background image

Instrukcje sterujące

Kolejna składnia sterująca to pętla WHILE. W T-SQL

wygląda to następująco.

DECLARE @zmienna int
SET @zmienna = 0

WHILE @zmienna < 10
BEGIN

PRINT 'Iteracja nr ' + CAST(@zmienna AS

varchar(2))

SET @zmienna = @zmienna + 1

END

background image

Kursory

Kursor to zestawy rekordów umieszczanych w pamięci i

przechowujących wyniki zapytań typu SELECT.
Umożliwiają zaawansowane formatowanie wyników

wyszukiwania danych i przetwarzanie rekordów jeden po

drugim

(ale

w

ściśle

określonej

kolejności

determinowanej przez wynik zapytania, które stanowi

definicję kursora).

background image

Kursory

DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName
FROM Northwind.dbo.Employees
WHERE LastName like 'B%'

OPEN Employee_Cursor

FETCH NEXT FROM Employee_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN

FETCH NEXT FROM Employee_Cursor

END

CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor

background image

Składnie specjalne

Nowoczesne języki SQL obfitują w specjalne składnie,

które znacznie rozszerzają jego funkcjonalność.
Przykładem takiej składni może być PIVOT.
Składnia ta umożliwia stworzenie tabeli wynikowej z

zapytania SELECT, w której na nagłówkach wierszy

i kolumn znajdują się wartości z tabel źródłowych.

background image

Składnie specjalne

USE AdventureWorks
GO
SELECT VendorID, [164] AS Emp1, [198] AS Emp2,
[223] AS Emp3, [231] AS Emp4, [233] AS Emp5
FROM
(SELECT PurchaseOrderID, EmployeeID, VendorID
FROM Purchasing.PurchaseOrderHeader) p
PIVOT
(
COUNT (PurchaseOrderID)
FOR EmployeeID IN
( [164], [198], [223], [231], [233] )
) AS pvt
ORDER BY VendorID;

background image

Składnie specjalne

-- Przykładowy wynik
VendorID Emp1 Emp2 Emp3 Emp4 Emp5
1 4 3 5 4 4
2 4 1 5 5 5
3 4 3 5 4 4
4 4 2 5 5 4
5 5 1 5 5 5

Powyższy wynik obrazuje możliwości tej składni
umożliwiając zbudowanie tabeli wyświetlającej ilość
zamówień u wybranych producentów dokonanych
przez pięciu pracowników (każdy pracownik o
określonym EmployeeID).

background image

Obsługa błędów - Gdzie wykrywać błędy?

W trakcie działania kodu SQL mogą wydarzyć się

nieprzewidziane błędy.
Mogą to być błędy wynikające:

z narzuconych w bazie danych ograniczeń,

błędy wynikające z prób wykonania niedozwolonych
operacji.

Wykrycie tych błędów i odpowiednia na nie reakcja to

zadanie dla programisty baz danych.

background image

Obsługa błędów - Gdzie wykrywać błędy?

Błędy wykrywamy najczęściej w:

transakcjach - po wykryciu błędu wycofujemy transakcję,

procedurach składowanych - wykrywamy błędy powstałe

głównie w wyniku niepoprawnych wartości parametrów przez

użytkownika,
triggerach - podobnie jak w transakcjach, po napotkaniu

błędu wycofywana jest transakcja wywołująca trigger,
blokach kodu SQL - wszelkie rozbudowane bloki kodu

wymagają wykrywania błędów.

background image

Obsługa błędów

Metody wykrywania błędów
Jak można wykrywać błędy? Metod na to jest wiele.
Po pierwsze można zastosować składnie sterujące, np.

IF...ELSE, do sprawdzania wartości zmiennych jeszcze

przed wystąpieniem błędu.
Druga metoda to wykorzystanie istniejących w SZBD funkcji

wykrywających błędy.

W systemie Microsoft SQL Server taką funkcją jest

@@ERROR, która zwraca numer błędu napotkanego w

ostatnio napotkanego błędu w bieżącej sesji.

background image

Obsługa błędów

Metody wykrywania błędów
Aktualnie istnieją także inne, lepsze metody wykrywania

i obsługi błędów.
Chodzi o strukturalną obsługę wyjątków.

Jako wyjątek rozumiemy błąd, który wymaga obsługi.

Poniższy fragment kodu obrazuje przykładową obsługę

wyjątków przy pomocy składni TRY...CATCH (TRY - próbuj,

CATCH - przechwyć i obsłuż).

background image

Podsumowanie

Składnie T-SQL
Obsługa błędów

Programowanie w języku zapytań to ważna umiejętność.

Powinni ją opanować zarówno programiści, jak i

administratorzy. Różne języki SQL oferują różne składnie.

Jednak reguły, jakimi powinien kierować się tworzący kod, są

te same nizależnie od SZBD. Bardzo często opanowanie w

zaawansowanym stopniu składni jednego języka pozwala w

przyszłości na łatwe opanowanie innego.

background image

Laboratorium

Instrukcja sterująca CASE

Instrukcja PIVOT

Stronicowane danych z użyciem funkcji rankingu

Obsługa błędów


Wyszukiwarka

Podobne podstrony:
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja2
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja6
http, www strefawiedzy edu pl file php file= 28 Wyklady Bazy danych3
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja4
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja10
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja9a
http, www strefawiedzy edu pl file php file= 28 Wyklady BD prezentacja11a
http, www vbm edu pl UserFiles vbm File art e finance 02 09 08
http, moodle come uw edu pl file php file= 529 LAZARUS

więcej podobnych podstron