050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła
|
|
- Bogumił Krajewski
- 5 lat temu
- Przeglądów:
Transkrypt
1 050 SQL ELEMENTY ZAAWANSOWANE Prof. dr hab. Marek Wisła
2 Deklarowanie zmiennych typ-danych typ-danych}; deklaruje nazwy zmiennych lokalnych (definiowanych przez użytkownika) oraz określa typy tych zmiennych = wyrażenie; podstawia obliczoną wartość wyrażenia pod zmienną o podanej nazwie
3 Instrukcja warunkowa IF wyrażenie-logiczne polecenie-sql [ELSE polecenie-sql]; UWAGI: Brak słowa THEN przed pierwszym poleceniem SQL, Brak słowa END na końcu instrukcji IF. Po IF wyrażenie-logiczne wykonywane jest tylko jedno polecenie SQL Po ELSE wykonywane jest tylko jedno polecenie SQL.
4 Instrukcja WHILE WHILE wyrażenie-logiczne polecenie-sql; UWAGI: Brak słowa END na końcu instrukcji WHILE. Po WHILE wyrażenie-logiczne wykonywane jest tylko jedno polecenie SQL
5 Bloki instrukcji BEGIN polecenie-sql; {polecenie-sql;} END; Blok BEGIN END pozwala na wykonywanie kilku zapytań w jednej instrukcji warunkowej IF lub pętli WHILE
6 Bloki instrukcji IF wyrażenie-logiczne BEGIN polecenie-sql; {polecenie-sql;} END [ELSE BEGIN polecenie-sql; {polecenie-sql;} END]; WHILE wyrażenie-logiczne BEGIN polecenie-sql; {polecenie-sql;} END
7 Wypisywanie tekstu PRINT UWAGA: Argumentami komendy PRINT muszą być zmienne typu znakowego. Z tego powodu wszystkie zmienne innych typów muszą zostać w jawny sposób skonwertowane na typ znakowy np. funkcją CAST lub CONVERT.
8 Przykład Tworzenie prostej strony HTML wyświetlającej wynik zapytania SQL
9 Podzapytania SELECT arg = (SELECT...), arg2,... FROM (SELECT...) a INNER JOIN (SELECT...) b ON a.pole = b.pole WHERE arg2 IN (SELECT arg3 FROM...)
10 Zasady tworzenia podzapytań Zdecydowanie unikaj wstawiania podzapytań do listy argumentów. Podzapytanie w klauzuli WHERE musi zwracać rozsądną ilość wartości. Np. sprawdzenie dla 1000 rekordów 1000 możliwych wartości może dać w wyniku milion sprawdzeń. Podzapytania w klauzuli WHERE muszą zawierać tylko jeden atrybut (kolumnę). Nadmierne rozbudowanie zapytania poprzez wstawianie wielu podzapytań może doprowadzić do znacznego spowolnienia wykonywania całego zapytania.
11 Operatory w warunku WHERE Operatory porównania argument operator-porównania [ANY ALL] (SELECT ) ANY wystarczy, że jeden z wierszy wyniku spełnia warunek porównania ALL wszystkie wiersze wyniku muszą spełniać warunek porównania Operator występowania argument [NOT] IN (SELECT ) sprawdza, czy podana wartość [nie] jest w zbiorze wierszy wyniku Operator istnienia [NOT] EXISTS (SELECT ) sprawdza, czy [nie] istnieje co najmniej jeden wiersz wyniku
12 Podzapytania skorelowane Zapytania wewnętrzne są wykonywane w kolejności od najgłębiej zagnieżdżonego do najbardziej zewnętrznego. Wyjątek stanowią tzw. podzapytania skorelowane. Podzapytanie skorelowane operuje na wartościach kolumn przekazywanych przez zapytanie zewnętrzne (nadrzędne). Z syntaktycznego punktu widzenia podzapytanie skorelowane różni się od podzapytania nieskorelowanego tym, że w podzapytaniu występuje odwołanie do nazwy kolumny wiersza, którego dotyczy zapytanie zewnętrzne.
13 Przykład Wyświetlić nazwiska, imiona i płace tych pracowników, którzy zarabiają więcej niż średnia płaca pracowników na tym samym stanowisku. SELECT p.nazwisko, p.imie, p.placa FROM pracownicy p WHERE p.placa > (SELECT AVG (placa) FROM pracownicy WHERE stanowisko = p.stanowisko) ORDER BY p.nazwisko, p.imie; Odwołanie do nazwy kolumny zapytania zewnętrznego musi wykorzystać alias tabeli zdefiniowanej w zapytaniu zewnętrznym.
14 Zasady programowania Unikaj podzapytań skorelowanych! Znacznie obniżają one efektywność zapytania. W większości przypadków można żądane wyniki uzyskać bez stosowania zapytań skorelowanych. SELECT p.nazwisko, p.imie, p.placa, s.srednia FROM pracownicy p INNER JOIN (SELECT stanowisko, srednia=avg (placa) FROM pracownicy GROUP BY stanowisko ) s ON s.stanowisko = p.stanowisko WHERE p.placa > s.srednia ORDER BY p.nazwisko, p.imie;
15 OPERACJE MNOGOŚCIOWE
16 Suma - Union SELECT ( ) UNION SELECT ( ) Daje w wyniku sumę (bez powtórzeń) relacji będących wynikami pierwszego i drugiego polecenia SELECT. Wyniki obydwu poleceń SELECT muszą zawierać tę samą liczbę kolumn o tych samych typach. Fraza ORDER BY może wystąpić tylko w ostatnim poleceniu SELECT.
17 Suma Union All SELECT ( ) UNION ALL SELECT ( ) Daje w wyniku sumę (z powtórzeniami) relacji będących wynikami pierwszego i drugiego polecenia SELECT. Pod względem formalnym wynik zapytania z UNION ALL może nie być relacją, ponieważ nie musi ona posiadać unikalnego klucza własnego.
18 Przykład SELECT Nazwisko, Imie FROM Studenci WHERE Kierunek = 'matematyka' UNION SELECT Nazwisko, Imie FROM Studenci WHERE Kierunek = informatyka';
19 Różnica SELECT ( ) EXCEPT SELECT ( ) Daje w wyniku różnicę relacji będących wynikami poleceń SELECT.
20 Zasady programowania Zamiast EXCEPT stosuj odpowiednie złączenie tabel. Na przykład różnicę Wydawców między tabelami NazwaWydawcy a Ksiazki można uzyskać następująco: SELECT NazwaWydawcy FROM Wydawcy w LEFT JOIN (SELECT DISTINCT NazwaWydawcy FROM Ksiazki ) k ON k.nazwawydawcy = w.nazwawydawcy WHERE k.nazwawydawcy IS NULL
21 Iloczyn SELECT ( ) INTERSECT SELECT ( ) Daje w wyniku iloczyn (przekrój) relacji będących wynikami poleceń SELECT Uwagi analogiczne, jak dla operacji sumy.
22 Zasady programowania Zamiast INTERSECT stosuj odpowiednie złączenie tabel. Na przykład wszystkich Wydawców, którzy opublikowali książkę można uzyskać następująco: SELECT NazwaWydawcy FROM Wydawcy w INNER JOIN (SELECT DISTINCT NazwaWydawcy FROM Ksiazki ) k ON k.nazwawydawcy = w.nazwawydawcy
23 OPERACJE RELACYJNE
24 Projekcja i selekcja Projekcja: (wyspecyfikowanie kilku kolumn mające na celu pominięcie informacji z pozostałych kolumn) SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli; Selekcja: wybranie z tabeli pewnego podzbioru wierszy spełniających warunek podany w klauzuli WHERE SELECT * FROM nazwa-tabeli WHERE warunek;
25 Złączenie Cross join Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego wynikiem jest iloczyn kartezjański wartości wybranych z łączonych tabel. SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 CROSS JOIN nazwa-tabeli-2 SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 t1, nazwa-tabeli-2 t2
26 Zasady programowania Złączenie CROSS JOIN może zwrócić bardzo dużą ilość rekordów. Np. złączenie tabel, w których każda ma po wierszy zwraca rekordów! Z tego względu należy korzystać z CROSS JOIN w wyjątkowych przypadkach i z pełną świadomością.
27 Złączenie Equi join W warunku złączenia (w klauzuli ON lub warunku WHERE) występuje zwykły znak równości. Warunek złączenia może być również koniunkcją kilku równości. SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 t1 INNER JOIN nazwa-tabeli-2 ON t1.kolumna-1 = t2.kolumna-2 SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 t1, nazwa-tabeli-2 t2 WHERE t1.kolumna-1 = t2.kolumna-2
28 Złączenie Natural join Złączenie natural join jest to szczególny typ złączenia equi-join, w którym kolumny łączonych tabel użyte w warunku łączenia mają tę samą nazwę. SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 INNER JOIN nazwa-tabeli-2 ON t1.kolumna = t2.kolumna SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 t1, nazwa-tabeli-2 t2 WHERE t1.kolumna = t2.kolumna
29 Złączenie Theta join Złączenia w których w warunku występuje inny symbol porównania wartości niż =, np. >, BETWEEN, <> SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 t1 INNER JOIN nazwa-tabeli-2 ON t1.kolumna-1 >= t2.kolumna-2 SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 t1, nazwa-tabeli-2 t2 WHERE t1.kolumna-1 >= t2.kolumna-2
30 Złączenie LEFT OUTER JOIN Złączenie typu LEFT OUTER JOIN pozwala nam na uwzględnienie w wyniku danych z głównej tabeli, które nie posiadają swoich odpowiedników w złączanych tabelach. Oznacza to, że jeśli w pierwszej tabeli pojawiają się wiersze, które nie posiadają odpowiedników w drugiej tabeli to zostaną wzięte pod uwagę podczas złączenia ale puste kolumny zostaną wypełnione wartościami NULL. SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 LEFT OUTER JOIN nazwa-tabeli-2 ON warunek-złączenia
31 Przykład
32 Złączenie RIGHT OUTER JOIN Złączenie typu RIGHT OUTER JOIN działa analogicznie do LEFT OUTER JOIN ale w tabeli wynikowej uwzględnia wiersze z łączonej tabeli, które nie posiadają odpowiedników w tabeli głównej. SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 RIGHT OUTER JOIN nazwa-tabeli-2 ON warunekzłączenia
33 Przykład
34 Złączenie FULL OUTER JOIN Złączenie obustronne FULL OUTER JOIN jest sumą złączenia lewostronnego i prawostronnego. Zawiera wszystkie wiersze obu złączonych tabel, w tym również te które nie mają swoich odpowiedników. SELECT nazwa-kolumny {, nazwa-kolumny} FROM nazwa-tabeli-1 FULL OUTER JOIN nazwa-tabeli-2 ON warunekzłączenia
35 Przykład
36 WIDOKI
37 Widoki Widoki, nazywane także perspektywami albo projekcjami pozwalają: ułatwić odczytywanie danych pochodzących z kilku tabel lub danych obliczanych, ograniczyć dostęp do danych poufnych (ich widzenie ), ukryć strukturę tabel bazy danych, ułatwić zarządzanie uprawnieniami użytkowników.
38 Tworzenie widoków IF OBJECT_ID('nazwa-widoku','V') IS NULL CREATE VIEW nazwa-widoku [(nazwa-kolumny {, nazwa-kolumny})] [WITH ENCRYPTION] AS polecenie-select [WITH CHECK OPTION] GO WITH ENCRYPTION zabezpiecza widok przed możliwością obejrzenia jego definicji. WITH CHECK OPTION wymusza zgodność wszelkich poleceń modyfikujących dane widoku z jego definicją.
39 Zmiana widoku IF OBJECT_ID('nazwa-widoku','V') IS NOT NULL ALTER VIEW nazwa-widoku [(nazwa-kolumny {, nazwa-kolumny})] [WITH ENCRYPTION] AS polecenie-select [WITH CHECK OPTION]; GO
40 Usuwanie widoku IF OBJECT_ID('nazwa-widoku','V') IS NOT NULL DROP VIEW nazwa-widoku;
41 Widoki Widok nie ma własnych danych, tworzy je wirtualna tabela będąca wynikiem działania polecenia SELECT podanego po słowie AS. W komendzie SELECT nazwa widoku może występować w miejscu nazwy tabeli, np. w frazie FROM. Lista nazw kolumn może nie wystąpić, nazwy pobiera się wówczas z tabeli będącej wynikiem polecenia SELECT. Polecenie SELECT nie może zawierać frazy ORDER BY.
42 Modyfikowanie danych Widok może służyć do modyfikowania danych (działają dla niej polecenia INSERT, UPDATE i DELETE), ale wówczas nie może zawierać: więcej niż jednej tabeli we frazie FROM, słowa DISTINCT, fraz GROUP BY i HAVING, kolumn zdefiniowanych wyrażeniami i funkcjami.
43 Zasady programisty W zdecydowanej większości przypadków widoki nie są obiektami indeksowanymi (jedynie przy dosyć restrykcyjnych założeniach można zdefiniować indeks na widoku). Z tego powodu pobieranie danych z widoku wydłuża (może również znacznie!) czas pobierania danych z bazy. Dlatego należy ostrożnie korzystać z widoków. W przypadku małych tabel, pobieranie danych za pomocą widoku będzie efektywne. Natomiast oparcie widoku o kilka dużych połączonych ze sobą tabel może znacznie spowolnić pracę aplikacji, a nawet całkowicie zablokować aplikację. W takich przypadkach zamiast widoków należy definiować procedury składowane.
44 PROCEDURY SKŁADOWANE I FUNKCJE
45 Procedury składowane Procedura składowana to nazwany i prekompilowany zestaw poleceń (instrukcji) przechowywany na serwerze, zapewniający szybszą i wydajniejszą realizację obsługi bazy danych. Typy procedur katalogowe procedury składowane pozwalają na pobieranie informacji ze zbioru tabel nazywanych katalogiem systemowym, np. informacje o bazach danych, tabelach, kluczach, indeksach, serwerze itp., systemowe procedury składowane narzędzia do zarządzania serwerem SQL, np. konfiguracja serwera, pomoc (sp_help), blokady, rozszerzone procedury składowane zaimplementowane jako oddzielne biblioteki poza serwerem SQL, interfejs dla innych aplikacji lub systemów.
46 Procedury użytkownika Procedury składowane zdefiniowane przez użytkownika: mogą być tworzone tylko w bieżącej bazie danych, są prekompilowane, redukują obciążenie sieci.
47 Tworzenie procedury IF OBJECT_ID('nazwa-procedury', 'P') IS NOT NULL DROP PROC[EDURE] nazwa-procedury GO CREATE PROC[EDURE] nazwa-procedury typ-danych [=wartość-domyślna] [OUTPUT] typ-danych [=wartość-domyślna] [OUTPUT]}] [WITH RECOMPILE ENCRYPTION RECOMPILE, ENCRYPTION] [FOR REPLICATION] AS polecenie-sql {polecenie-sql} GO
48 Opcje tworzenia procedury RECOMPILE nakazuje serwerowi rekompilację tzw. planu wykonania przy każdorazowym wywołaniu procedury ENCRYPTION zabezpiecza procedurę przed możliwością obejrzenia jej definicji FOR REPLICATION wykorzystywane przy replikacji bazy
49 Zmiana procedury ALTER PROC[EDURE] nazwa-procedury typ-danych [=wartość-domyślna] [OUTPUT] typ-danych [=wartość-domyślna] [OUTPUT]}] [WITH RECOMPILE ENCRYPTION RECOMPILE, ENCRYPTION] [FOR REPLICATION] AS polecenie-sql {polecenie-sql} GO UWAGA: Przed ALTER PROCEDURE nie może wystąpić żadne zapytanie. Z tego powodu przed zmianą procedury nie jest możliwe sprawdzenie, czy ta procedura istnieje. Alternatywnym rozwiązaniem jest usunięcie i ponowne utworzenie procedury.
50 Usuwanie procedury IF OBJECT_ID('nazwa-procedury', 'P') IS NOT NULL DROP PROC[EDURE] nazwa-procedury GO
51 Wywołanie procedury EXEC[UTE] nazwa-procedury typ-danych [=wartość-domyślna] [OUTPUT] typ-danych [=wartość-domyślna] [OUTPUT]}] [WITH RECOMPILE] Przykład wywołania procedury SQL
52 Tworzenie funkcji IF OBJECT_ID('nazwa-funkcji', 'FN') IS NOT NULL DROP FUNCTION nazwa-funkcji GO CREATE FUNCTION nazwa-funkcji ( [@nazwa-parametru skalarny-typ-danych [=wartość-domyślna] skalarny-typ-danych [=wartość-domyślna]}] ) RETURNS skalarny-typ-danych [AS] BEGIN polecenie-sql {polecenie-sql} RETURN wyrażenie-skalarne; END; GO
53 Zmiana funkcji ALTER FUNCTION nazwa-funkcji ( [@nazwa-parametru skalarny-typ-danych [=wartość-domyślna] skalarny-typ-danych [=wartość-domyślna]}] ) RETURNS skalarny-typ-danych [AS] BEGIN polecenie-sql {polecenie-sql} RETURN wyrażenie-skalarne; END; UWAGA: Przed ALTER FUNCTION nie może wystąpić żadne zapytanie. Z tego powodu przed zmianą funkcji nie jest możliwe sprawdzenie, czy ta funkcja istnieje. Alternatywnym rozwiązaniem jest usunięcie i ponowne utworzenie funkcji.
54 Usuwanie funkcji IF OBJECT_ID('nazwa-funkcji', 'FN') IS NOT NULL GO DROP FUNCTION nazwa-funkcji
55 Przykład wywołania funkcji IF OBJECT_ID('Staz','FN') IS NOT NULL DROP FUNCTION Staz GO CREATE FUNCTION Staz DATETIME) RETURNS INT BEGIN END GO -- Test funkcji SELECT Nazwisko, Zatrudniony, Staż=dbo.Staz(Zatrudniony) FROM Zatrudnieni
56 WYZWALACZE I KURSORY
57 Wyzwalacze (Triggers) Procedury wyzwalane (wyzwalacze, triggery) to procedury wywoływane przez system w momencie zajścia odpowiedniego zdarzenia dotyczącego tabel w bazie danych. Wyzwalacze pozwalają realizować zachowanie więzów spójności i dotyczą operacji INSERT, UPDATE lub DELETE.
58 Tworzenie wyzwalaczy IF OBJECT_ID('nazwa-wyzwalacza','TR') IS NOT NULL DROP TRIGGER nazwa-wyzwalacza GO CREATE TRIGGER nazwa-wyzwalacza ON nazwa-tabeli [WITH ENCRYPTION] FOR AFTER INSTEAD OF INSERT UPDATE DELETE AS polecenie-sql {polecenie-sql}; GO
59 Tworzenie wyzwalaczy Wyzwalacz definiuje procedurę o podanej nazwie, uruchamianą w momencie zajścia (FOR), po zajściu (AFTER) lub zamiast zajścia (INSTEAD OF) odpowiedniego zdarzenia o treści, którą tworzą polecenia SQL występujące po słowie AS. Podczas wykonywania wyzwalacza tworzone są dwie specjalne tabele: inserted i deleted. Ich zawartość można sprawdzać w treści procedury np. w celu wykrycia zmian: gdy usuwamy wiersze, są one usuwane z tabeli głównej i przenoszone do tablicy deleted, następnie wyzwalana jest procedura usuwająca, gdy wstawiamy wiersze, są one wstawiane do głównej tabeli i tabeli inserted, następnie wyzwalana jest procedura wstawiająca, gdy aktualizujemy tabelę, stare dane są wstawiane do tabeli deleted, a nowe do tabeli głównej i tabeli inserted, następnie wyzwalana jest procedura aktualizująca procedury wyzwalane mogą wywoływać inne procedury wyzwalane (wywołania kaskadowe).
60 Usuwanie wyzwalacza IF OBJECT_ID('nazwa-wyzwalacza','TR') IS NOT NULL GO DROP TRIGGER nazwa-wyzwalacza
61 Zmiana wyzwalacza ALTER TRIGGER nazwa-wyzwalacza ON nazwa-tabeli [WITH ENCRYPTION] FOR AFTER INSTEAD OF INSERT UPDATE DELETE AS polecenie-sql {polecenie-sql}; GO UWAGA: Przed ALTER TRIGGER nie może wystąpić żadne zapytanie. Z tego powodu przed zmianą wyzwalacza nie jest możliwe sprawdzenie, czy wyzwalacz istnieje. Alternatywnym rozwiązaniem jest usunięcie i ponowne utworzenie wyzwalacza.
62 Przykład: Aktualizacja po usunięciu wartości Z tabeli Oddzialy usuwamy oddział. Ponieważ oddziały są również zapisywane w tabeli Pracownicy, należy zamienić kod usuwanego oddziału wartością NULL. CREATE TRIGGER Puste_Oddzialy ON Oddzialy FOR DELETE AS UPDATE Pracownicy SET NrOddzialu = NULL WHERE NrOddzialu IN (SELECT NrOddzialu FROM deleted); GO
63 Przykład: Aktualizacja po zmianie wartości W tabeli Oddzialy zmieniamy kodowanie oddziałów. Ponieważ kody oddziałów są również zapisywane w tabeli Pracownicy, należy uaktualnić kody oddziałów w tej tabeli. CREATE TRIGGER Nowy_numer ON Oddzialy FOR UPDATE AS IF UPDATE (NrOddzialu) UPDATE Pracownicy SET NrOddzialu = (SELECT NrOddzialu FROM inserted) -- nowy WHERE NrOddzialu IN (SELECT NrOddzialu FROM deleted); -- stary GO
64 Przykład Z tabeli Pracownicy usuwamy pracownika. Można usunąć wiersz tabeli, ale pod warunkiem, że stanowisko usuwanego pracownika nie jest równe Kierownik. CREATE TRIGGER sprawdz_usuwanie ON Pracownicy FOR DELETE AS IF (SELECT COUNT (*) FROM Pracownicy p INNER JOIN deleted d ON p.id = d.id WHERE p.stanowisko = Kierownik ) > 0 BEGIN PRINT 'Nie można usunąć kierownika'; ROLLBACK TRANSACTION; END ELSE BEGIN PRINT 'Pracownik został usunięty' COMMIT TRANSACTION; END; GO
65 Zasady programisty Korzystaj z wyzwalaczy z wyjątkową ostrożnością. Nigdy nie modyfikuj danych w tabeli za pomocą wyzwalacza zdefiniowanego na tej samej tabeli. Może to doprowadzić do kaskadowego wywołania tego samego wyzwalacza i w konsekwencji pojawi się dead-lock bazy danych. Wyzwalacze są dobrym narzędziem do monitorowania czynności wykonywanych przez użytkownika i zapisywaniu ich w dziennikach. Wyzwalacze nie są dobrym narzędziem do utrzymania więzów integralności (spójności) bazy danych. Kaskadowe wywoływanie wyzwalaczy może spowodować wystąpienie blokad i w konsekwencji dead-lock bazy danych.
66 Kursory Kursory umożliwiają operowanie na zbiorze wyników uzyskanych w wyniku wykonania polecenia SELECT. 1. Kursor musi zostać zadeklarowany. Deklaracja kursora ma postać: DECLARE nazwa-kursora CURSOR FOR polecenie-select; 2. Kursor musi zostać otwarty. Otwarcie kursora ma postać: OPEN nazwa-kursora;
67 Kursory 3. Pobieranie informacji z kursora realizuje polecenie: FETCH NEXT PRIOR FIRST LAST ABSOLUTE n RELATIVE n FROM nazwa-kursora Gdzie: NEXT określa następny rekord (wiersz) w stosunku do bieżącego PRIOR określa poprzedni rekord w stosunku do bieżącego FIRST określa pierwszy rekord w kursorze LAST określa ostatni rekord w kursorze ABSOLUTE n określa n-ty rekord w kursorze RELATIVE n określa n-ty rekord w stosunku do bieżącego
68 Kursory 4. Ważną rolę pełni zmienna systemowa Po pobraniu danych do kursora (np. przy pomocy FETCH NEXT) warunek = 0 wskazuje, że rekordy (wiersze) zostały poprawnie pobrane do kursora.
69 Kursory 5. Kursor musi zostać zamknięty. Zamknięcie kursora ma postać: CLOSE nazwa-kursora; 6. Polecenie DEALLOCATE nazwa-kursora; usuwa odwołanie do kursora i zwalnia pamięć
70 Przykład W tabeli Oddzialy zmieniamy kodowanie oddziałów. Ponieważ kody oddziałów są również zapisywane w tabeli Pracownicy, należy uaktualnić kody oddziałów w tej tabeli. CREATE TRIGGER Zmiany ON Oddzialy FOR UPDATE AS BEGIN INT; DECLARE del CURSOR FOR SELECT ID_Oddzialu FROM deleted; DECLARE ins CURSOR FOR SELECT ID_Oddzialu FROM inserted; OPEN del; OPEN ins; FETCH FIRST FROM del FETCH FIRST FROM ins
71 Przykład c.d. WHILE = 0 BEGIN UPDATE Pracownicy SET ID_Oddzialu WHERE ID_Oddzialu FETCH NEXT FROM del FETCH NEXT FROM ins END; CLOSE ins; DEALLOCATE ins; CLOSE del; DEALLOCATE del; END;
72 Zasady programisty Kursory przypominają programistom pętlę WHILE dobrze znaną z języków programowania. Jednak w przeciwieństwie do języków programowania, w T-SQL kursory należy stosować wyłącznie w ostateczności, gdy nie są dostępne inne narzędzia. Nadmierne wykorzystywanie kursorów jest jednym z najbardziej podstawowych błędów programistów T-SQL. Kursory są bardzo niewydajnym narzędziem. Czas wykonywania podobnego zapytania z wykorzystaniem kursora i bez kursora jest wielokrotnie (nawet ponad 100 razy) krótszy na korzyść zapytania bez kursora. W trakcie wykonywania pętli kursora nie należy modyfikować danych, które są zwracane komendą SELECT w definicji kursora.
Administracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast''
Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika
Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued
PODSTAWY BAZ DANYCH 13. PL/SQL
PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie
Wykład 6. SQL praca z tabelami 3
Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1
Autor: Joanna Karwowska
Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje
T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15
T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest
Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT
Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania
Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści
Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy
1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.
Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie
Microsoft SQL Server Podstawy T-SQL
Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania
DECLARE VARIABLE zmienna1 typ danych; BEGIN
Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;
Przestrzenne bazy danych Podstawy języka SQL
Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured
Relacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Oracle11g: Wprowadzenie do SQL
Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom
Bazy danych Język SQL część 2 Wykład dla studentów matem
Bazy danych Język SQL część 2 Wykład dla studentów matematyki 21 marca 2015 Zapytania na kilku tabelach Czasem poszukiwana informacja znajduje się w kilku tabelach. Aby zapytanie dotyczyło kilku tabel,
SQL 4 Structured Query Lenguage
Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...
Systemy GIS Tworzenie zapytań w bazach danych
Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE
Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,
Programowanie w SQL definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE, kontynuacja działania od instrukcji za podaną etykietą GOTO etykieta, wyjście bezwarunkowe
Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze
Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej
3. Podzapytania, łączenie tabel i zapytań
3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,
Język PL/SQL Procedury i funkcje składowane
Język PL/SQL Procedury i funkcje składowane Podprogramy, procedury i funkcje składowane, typy argumentów, wywoływanie procedur i funkcji, poziomy czystości funkcji 1 Podprogramy Procedury (wykonują określone
Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;
Temat: Funkcje, procedury i wyzwalacze. Oprócz tabel i widoków w bazach danych możemy tworzyć własne funkcje, procedury i specjalny typ procedur, które będą automatycznie wywoływanie przez MySQL w memencie
Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1
Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie wyzwalaczami 1 Procedury wyzwalane
Składowane procedury i funkcje
Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.
Wykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).
Procedury składowane c.d. Parametry tablicowe w Transact-SQL. W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP). Zadanie 1. Proszę napisad procedurę składowaną, która
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie
KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów
KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw
Relacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.
Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN
SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści
SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15
E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze
Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie
Systemowe aspekty baz
Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select
Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,
Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL
Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień
SQL (ang. Structured Query Language)
SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze
Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych
Politechnika Śląska Instytut Informatyki instrukcja laboratoryjna laboratorium Bazy Danych przygotowali: mgr inż. Paweł Kasprowski (Kasprowski@zti.iinf.polsl.gliwice.pl) mgr inż. Bożena Małysiak (bozena@ivp.iinf.polsl.gliwice.pl)
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści
SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL
Elementy. języka SQL
Elementy języka SQL SQL SQL - Structured Query Language język czwartej generacji (4GL), opracowany w latach 70-tych przez IBM strukturalny język zapytań, przeznaczony do definiowania, wyszukiwania i administrowania
Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł!
Szkolenie Oracle SQL podstawy Terminy 15 17 lutego 2010 First Minute! 1100zł! Opis szkolenia Baza danych Oracle od dawna cieszy się zasłużona sławą wśród informatyków. Jej wydajność, szybkość działania
Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz
Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych
15. Funkcje i procedury składowane PL/SQL
15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp
Podstawy języka SQL cz. 2
Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.
Paweł Rajba
Paweł Rajba pawel@cs.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Używanie kursorów Rodzaje kursorów Praca z kursorami Co to jest kursor? Cykl życia kursora utworzenie pobieranie wartości ewentualnie
Administracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Kursory w SQL Serverze Wprowadzenie Modele kursorów Używanie kursorów Rodzaje kursorów Praca
Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl
Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p
Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408
Bazy Danych SQL Podstawy języka III: powtórzenie Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Modyfikacja schematu relacji Utwórz tabelę wg schematu: CREATE TABLE ODDZIAL ( numer_oddzialu
Procedury i funkcje składowane
Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe
Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych
Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy
Podstawy języka SQL. SQL Structured Query Languagestrukturalny
Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych
Systemowe aspekty baz danych
Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select
Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle
Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.
BAZY DANYCH Cz III. Transakcje, Triggery
BAZY DANYCH Cz III Transakcje, Triggery Transakcje Definicja: Zbiór operacji (modyfikacja danych, usuwanie, wstawianie, tworzenie obiektów bazodanowych), które albo wszystkie kończone są sukcesem, albo
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?
Bazy danych 10. SQL Widoki
Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela
Kursory. A. Pankowska 1
Kursory 1 Kursory Kursor jest mechanizmem pozwalającym obsłużyć zbiór zawierający wiele wierszy danych (generowany np. poleceniem SELECT). Jak wskaźnik przebiega on po kolejnych krotkach ze zbioru danych,
Zaawansowane bazy danych i hurtownie danych semestr I
Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH
Wstęp do SQL SQL (Structured Query Language) strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym.
Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.
Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna
Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne
Materiały dostępne są na stronie: Materiały Technologie baz danych aragorn.pb.bialystok.pl/~gkret Wykład 5: Kursory jawne. Podprogramy. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka
Wyzwalacze (triggery) Przykład
Wyzwalacze (triggery) Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę, a następnie trigger związany
Język SQL. Rozdział 5. Połączenia i operatory zbiorowe
Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Iloczyn kartezjański, połączenie równościowe, połączenie nierównościowe, połączenie zwrotne, połączenie zewnętrzne, składnia jawna połączeń, składnia
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą
Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę
Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem
PL/SQL. Zaawansowane tematy PL/SQL
PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD
Programowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW
Programowanie po stronie serwera w SZBD Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Programowanie SZBD (DBMS) Procedury serwera Procedury składowane
77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.
77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele
Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych
Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy
Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):
Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa
Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę
Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem
Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.
Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. 1 Podzapytania Podzapytanie jest poleceniem SELECT zagnieżdżonym
Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE
Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie
Model relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę
Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem
Bazy danych. dr inż. Arkadiusz Mirakowski
Bazy danych dr inż. Arkadiusz Mirakowski Początek pracy z Transact SQL (T-SQL) 153.19.7.13,1401 jkowalski nr indeksu 2 Perspektywa - tabela tymczasowa - grupowanie Perspektywa (widok) Perspektywa (widok)
Aspekty aktywne baz danych
Aspekty aktywne baz danych Aktywne aspekty baz danych Baza danych powinna zapewniać pewne własności i niezmienniki; Własności te powinny mogą być zapisane do bazy danych, a baza danych powinna zapewniać
Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.
Temat: Wyzwalacze (triggery). Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę a następnie trigger
Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni
Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele
Struktura bazy danych
Procedury składowane, funkcje i wyzwalacze Struktura bazy danych Tabela Oddziały ID Nazwa Adres 10 POZNAN Kwiatowa 3 20 WARSZAWA al. Jerozolimskie 22 30 KRAKOW Planty 14 40 WROCLAW Nad Odra 16 50 GDANSK
Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje
Szkolenie autoryzowane MS 10774 Tworzenie zapytań do Microsoft SQL Server 2012 Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Opis szkolenia Uwaga! Szkolenie wycofane z oferty. Zapraszamy
Administracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 4 Wsady Procedury składowane Procedury składowane tymczasowe, startowe Zmienne tabelowe Funkcje
Grupowanie i funkcje agregujące
Grupowanie i funkcje agregujące Zadanie 1. Stwórz odpowiednią tabelę Test_agr i wprowadź odpowiednie rekordy tak, aby wynik zapytania SELECT AVG(kol) avg_all, AVG(DISTINCT kol) avg_dist, COUNT(*) count_gw,
LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,
Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 6 LAB 6 TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL, UPDATE, INSERT INTO, ALTER TABLE, CREATE VIEW, CREATE TRIGGER, FUNCTION,
Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];
Widoki/Perspektywy Podstawy Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy]; Usuwanie widoku DROP VIEW [nazwa_widoku]; Przykład 1 Przykład najprostszego
Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9
Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn
Model relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze
BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski
BAZY DANYCH wprowadzenie do języka SQL Opracował: dr inż. Piotr Suchomski Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków
Przykładowa baza danych BIBLIOTEKA
Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych
DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];
Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server
SQL Structured Query Language
SQL Structured Query Language stworzony na początku lat 70 ubiegłego wieku w IBM przez Donalda Messerly'ego, Donalda Chamberlina oraz Raymonda Boyce'a pod nazwą SEQUEL pierwszy SZBD System R utworzony
Cele. Definiowanie wyzwalaczy
WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa
Wykład 5. SQL praca z tabelami 2
Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,
Wprowadzenie. Tworzenie widoków
Widoki Wprowadzenie...2 Tworzenie widoków...2 Złączenie zewnętrzne w definicji widoków...4 Porządkowanie danych przez widoki...5 Modyfikowanie danych przez widoki...6 Ograniczenie zakresu modyfikowania
Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga
Bazy Danych i Systemy informacyjne Wykład 4 Piotr Syga 26.10.2018 Procedury review Przypomnienie składni procedur Tworzenie DELIMITER $$ CREATE PROCEDURE zliczacz (OUT wynik INT) BEGIN operacje... END
Wyzwalacze. Anna Fiedorowicz Bazy danych 2
Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych
w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze
w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w