Klauzula MODEL w języku SQL w środowisku Oracle

Wielkość: px
Rozpocząć pokaz od strony:

Download "www.comarch.pl/szkolenia Klauzula MODEL w języku SQL w środowisku Oracle 15.05.2012"

Transkrypt

1 Klauzula MODEL w języku SQL w środowisku Oracle

2 Zakres Wprowadzenie do klauzuli MODEL Zastosowanie Zalety Lokalizacja klauzuli w poleceniu SELECT Podstawowe pojęcia Partycje Wymiary Miary Składnia klauzuli Opcje domyślne Reguły Zastosowanie Kolejność Iteracje Przykłady zastosowania Korzyści ze stosowania MODEL

3 Wprowadzenie Język SQL doskonale nadaje się do wyszukiwania danych. Jednak standardowa wersja polecenie SELECT ma ograniczone możliwości w operowaniu na wyszukanych danych: Dane można łatwo wybierać, filtrować, sortować. Obliczenia można wykonywać: Wyrażeniami Funkcjami jednowierszowymi i grupowymi Problemem jest dostęp do innych rekordów

4 Wprowadzenie Operacje pomiędzy polami w różnych wierszach, typowe dla np. MS Excel, nie są typowe dla SQL są jednak możliwe poprzez: Zapytania hierarchiczne od Oracle 7 Funkcje analityczne od Oracle Klauzulę MODEL od Oracle 10g

5 Wprowadzenie Klauzula MODEL pozwala definiować, jako wynik zapytania, tablice wielowymiarowe. Następnie można stosować do tych tablic reguły umożliwiające wyznaczanie nowych wartości. Umożliwia wykonywanie obliczeń międzywierszowych, poprzez dostęp do kolumn w wierszu w taki sposób, jakby to były komórki w tablicy. Można zauważyć analogię do arkuszy kalkulacyjnych (np. MS Excel), co uzasadnia alternatywną nazwę klauzuli MODEL SPREADSHEET.

6 Wprowadzenie Zalety w stosunku do obliczeń poza silnikiem bazy: Wydajność Skalowalność Zarządzanie Tworzenie wielowymiarowej tablicy mapowanie kolumn na: Partycje (partitions) Wymiary (dimensions) Miary (measures)

7 Podstawowe pojęcia Partycje definiują lokalne bloki zbioru wynikowego w sposób podobny do partycji w funkcjach analitycznych. Reguły klauzuli MODEL są stosowane do komórek każdej partycji. Wymiary identyfikują każdy wymiar komórki w partycji. Kolumny te określają właściwości (cechy) takie jak: daty, regiony, nazwy produktów. Miary zwykle zawierają wartości numeryczne, takie jak jednostki sprzedaży lub kosztu. Każda komórka jest określana poprzez pełną kombinację wymiarów.

8 Składnia <prior clauses of SELECT statement> MODEL [RETURN [ALL UPDATED] ROWS] [PARTITION BY (<cols>)] DIMENSION BY (<cols>) MEASURES (<cols>) [IGNORE NAV] [KEEP NAV] [RULES [UPSERT UPDATE] [AUTOMATIC ORDER SEQUENTIAL ORDER] [ITERATE (n) [UNTIL <condition>] ] ( <cell_assignment> = <expression>... )

9 Dane CREATE VIEW sales_view AS SELECT country_name country, prod_name prod, calendar_year year, SUM(amount_sold) sale, COUNT(amount_sold) cnt FROM sales, times, customers, countries, products WHERE sales.time_id = times.time_id AND sales.prod_id = products.prod_id AND sales.cust_id = customers.cust_id AND customers.country_id = countries.country_id GROUP BY country_name, prod_name, calendar_year;

10

11 Reguły Aby utworzyć reguły na wielowymiarowych tablicach, należy wyrazić je w wartościach wymiarów. Reguły mogą wykorzystywać symbole wieloznaczne (wild cards) oraz pętle FOR. Obliczenia budowane z wykorzystaniem klauzuli MODEL: Zwiększają wydajność tradycyjnych arkuszy kalkulacyjnych poprzez wykonywanie analizy wewnątrz bazy danych Zwiększają czytelność poprzez symboliczne odwołania Umożliwiają skalowalność Pozwalają na wygodniejsze zarządzanie

12 Reguły Dostęp do komórek (ich współrzędne) może być realizowany poprzez zapis pozycyjny lub symboliczny: sales[country='spain',year=2001] = sales['spain',2000]+ sales['spain',1999] Reguły mogą pracować na poszczególnych komórkach lub na zestawach (zakresach) komórek, np.: sales[country='spain',year=2001] = MAX(sales)['Spain',year BETWEEN 1997 AND 2000]

13 Wild card Opcje ANY i IS ANY pozwala dopuścić / zastąpić wszystkie wartości w wymiarze. Wszystkie wartości (wliczając null) spełniają warunek ANY. sales[any, 2001] = sales['japan', 2000] sales[country IS ANY, 2001] = sales['japan', 2000]

14 Funkcja CV Funkcja CV (lub CURRENTV), umieszczona po prawej stronie reguły, daje dostęp do wartości kolumny wymiaru dla komórki, do której istnieje odwołanie po lewej stronie reguły (przekazuje wartości z lewej strony na prawą). Pozwala na zamianę kilku reguł, wykonujących podobne obliczenia, w pojedynczą regułę. sales[country='spain', year=2002] = 1.2 * sales['spain', 2001], sales[country='italy', year=2002] = 1.2 * sales['italy', 2001], sales[country='japan', year=2002] = 1.2 * sales['japan', 2001] sales[country IN ('Spain', 'Italy', 'Japan'), year=2002] = 1.2 * sales[cv(country), 2001] Zapisy równoważne: CV(country), CV(), CURRENTV()

15 Order by Dla reguł uaktualniających zestaw komórek, wyniki mogą zależeć od kolejności wartości wymiaru. Możliwe jest wymuszenie konkretnej kolejności za pomocą klauzuli ORDER BY: sales[country IS ANY, year BETWEEN 2000 AND 2003] ORDER BY year = 1.05 * sales[cv(country), CV(year)-1] W ten sposób kolejne lata będą przetwarzane w narastającej kolejności.

16 Funkcja CV Funkcja CV może być także wykorzystana w operacjach arytmetycznych. SELECT prod, year, growth, pct FROM sales_view WHERE lower(prod) LIKE '%phone%' MODEL RETURN UPDATED ROWS PARTITION BY (prod) DIMENSION BY (country, year) MEASURES (sale sales, 0 growth, 0 pct) (growth['spain', year>1999] = sales[cv(),cv()] Sales[CV(),CV()-1], pct['spain', year>1999] = round(( sales[cv(),cv()] sales[cv(),cv()-1] ) / sales[cv(),cv()-1],2) ) ORDER BY prod, year;

17 Funkcja CV PROD YEAR GROWTH PCT Model C93822D Wireless Phone Battery ,67 -, Model C93822D Wireless Phone Battery ,42, Model C9827B Cordless Phone Battery ,37 -, Model C9827B Cordless Phone Battery ,08, Model K3822L Cordless Phone Battery ,07 -, Model K3822L Cordless Phone Battery ,55, Model K8822S Cordless Phone Battery ,43 -, Model K8822S Cordless Phone Battery ,52, S27273M Extended Use w/l Phone Batt ,53 1, S27273M Extended Use w/l Phone Batt ,59,

18 Funkcja CV Funkcja CV może być także wykorzystana w operacjach arytmetycznych. SELECT prod, year, to_char(growth,'999g990d99') AS growth, to_char(pct,'90d99') ' %' AS pct FROM sales_view WHERE lower(prod) LIKE '%phone%' MODEL RETURN UPDATED ROWS PARTITION BY (prod) DIMENSION BY (country, year) MEASURES (sale sales, 0 growth, 0 pct) (growth['spain', year>1999] = sales[cv(),cv()] Sales[CV(),CV()-1], pct['spain', year>1999] = round(( sales[cv(),cv()] sales[cv(),cv()-1] ) / sales[cv(),cv()-1],2) ) ORDER BY prod, year;

19 Funkcja CV PROD YEAR GROWTH PCT Model C93822D Wireless Phone Battery ,67-0,17 % Model C93822D Wireless Phone Battery ,42 0,49 % Model C9827B Cordless Phone Battery ,37-0,10 % Model C9827B Cordless Phone Battery ,08 0,40 % Model K3822L Cordless Phone Battery ,07-0,21 % Model K3822L Cordless Phone Battery ,55 0,49 % Model K8822S Cordless Phone Battery ,43-0,14 % Model K8822S Cordless Phone Battery ,52 0,51 % S27273M Extended Use w/l Phone Batt ,53 1,10 % S27273M Extended Use w/l Phone Batt ,59 0,13 %

20 MODEL DIMENSION BY(prod, year) MEASURES (sales s) RULES UPSERT (s[any, 2000] = s[cv(prod), CV(year)-1]*2, s[vcr, 2002] = s[vcr, 2001]+s[vcr, 2000], s[dvd, 2002] = AVG(s)[CV(prod), year < 2001])

21 Przykład 1 SELECT SUBSTR(country,1,20) country, SUBSTR(prod,1,15) prod, year, sales FROM sales_view WHERE country IN ('Italy','Japan') MODEL RETURN UPDATED ROWS PARTITION BY (country) DIMENSION BY (prod, year) MEASURES (sale sales) RULES ( sales['bounce', 2002] = sales['bounce', 2001] + sales['bounce', 2000], sales['y Box', 2002] = sales['y Box', 2001], sales['2_products',2002] = sales['bounce',2002] + sales['y Box',2002]) ORDER BY country, prod, year; COUNTRY PROD YEAR SALES Italy 2_Products Italy Bounce Italy Y Box Japan 2_Products Japan Bounce Japan Y Box

22 upsert i update Opcja UPSERT (domyślna) umożliwia tworzenie wartości komórek, które nie istnieją w danych źródłowych: Jeżeli komórki istnieją w zbiorze danych, będą uaktualnione Jeżeli nie istnieją, zostaną dodane do zbioru. UPDATE nie wstawia nowych wierszy. Można określić tę opcję globalnie, lub na poziomie poszczególnych reguł (wówczas nadpisuje ustawienie globalne). UPDATE sales['spain', 1999] = , UPSERT sales['spain', 2001] = sales['spain', 2000] + sales['spain', 1999]

23 Kolejność reguł Klauzula AUTOMATIC ORDER umożliwia automatyczne określenie kolejności wykonywania reguł na podstawie zależności pomiędzy nimi. RULES AUTOMATIC ORDER {sales[c='spain', y=2001] = sales[c='spain', y=2000] + sales[c='spain', y=1999], sales[c='spain', y=2000] = 50000, sales[c='spain', y=1999] = 40000} Reguły 2 i 3 zostaną wykonane najpierw, bo od nich zależy wynik reguły 1. Domyślna opcja to: SEQUENTIAL ORDER.

24 Iteracje Wykonywanie reguł może przebiegać iteracyjnie będą wykonywane aż do spełnienia ostatniej reguły. Opcja ITERATE umożliwia podane liczby powtórzeń. Opcja UNTIL umożliwia podanie warunku kończącego. ITERATE (number_of_iterations) [ UNTIL (condition) ] Czterokrotne powtórzenie formuły s[x=1] = s[x=1]/2: MODEL DIMENSION BY (x) MEASURES (s) RULES ITERATE (4) (s[x=1] = s[x=1]/2)

25 Iteracje Zmienna systemowa ITERATION_NUMBER udostępnia numer iteracji. SELECT country, product, year, sales FROM sales_view MODEL PARTITION BY (country) DIMENSION BY (product, year) MEASURES (sales sales) IGNORE NAV RULES ITERATE(3) (sales['bounce', ITERATION_NUMBER] = sales['bounce', ITERATION_NUMBER]);

26 Pozostałe opcje IGNORE NAV traktuje niedostępne wartości (nie dostarczone do klauzuli MODEL przez zapytanie) jako 0. KEEP NAV zachowuje niedostępne wartości komórek niezmienione. (Domyślne) RETURN [ALL UPDATED] ROWS określenie, czy zwracane są wszystkie wyselekcjonowane wiersze, czy tylko te, które zostały zmodyfikowane przez reguły. Domyślna opcja: ALL.

27 Przykład 2 Sprzedaż dla Włoch i Hiszpanii oraz różnica pomiędzy nimi dla każdego produktu. Różnica zostanie umieszczona w nowych wierszach, dla których kraj zostanie podany jako: DIFF ITALY-SPAIN. SELECT SUBSTR(product,1,25) product, SUBSTR(country,1,15) country, sales FROM sales_view WHERE country IN ('Italy', 'Spain') GROUP BY product, country MODEL PARTITION BY (product) DIMENSION BY (country) MEASURES (SUM(sales) AS sales) RULES UPSERT (sales['diff ITALY-SPAIN'] = sales['italy'] - sales['spain']);

28 PRODUCT COUNTRY SALES Comic Book Heroes Italy 3434,92 Smash up Boxing Italy 10501,36 Model K8822S Cordless Pho Spain 11385,79 Model K8822S Cordless Pho Italy 29385,38 Model SM26273 Black Ink C Spain 10578,36 Envoy External 6X CD-ROM Italy 26001,09 Smash up Boxing Spain 5121,03 Bounce Italy 11654,77 Finding Fido Italy 3260,69 Model SM26273 Black Ink C Italy 32443,73 Bounce Spain 4521,9 Comic Book Heroes Spain 1894,88 Envoy External 6X CD-ROM Spain 10807,09 Finding Fido Spain 1446,69 Envoy External 6X CD-ROM DIFF ITALY-SPAI Model SM26273 Black Ink C DIFF ITALY-SPAI 21865,37 Comic Book Heroes DIFF ITALY-SPAI 1540,04 Smash up Boxing DIFF ITALY-SPAI 5380,33 Model K8822S Cordless Pho DIFF ITALY-SPAI 17999,59 Bounce DIFF ITALY-SPAI 7132,87 Finding Fido DIFF ITALY-SPAI 1814 Fly Fishing Italy 1331,11...

29 Przykład 3 Obliczenie, rok po roku, procentowe zmiany sprzedaży dla wybranych produktów: SELECT SUBSTR(country,1,10) country, SUBSTR(prod,1,12) prod, year, sales, growth FROM sales_view WHERE country='italy' MODEL RETURN UPDATED ROWS PARTITION BY (country) DIMENSION BY (prod, year) MEASURES (sale sales, 0 growth) RULES ( growth[prod in ('Bounce','Y Box','Mouse Pad'), year between 1998 and 2001] = 100 *( sales[cv(prod),cv(year)]-sales[cv(prod),cv(year)-1]) / sales[cv(prod), CV(year) -1] ) ORDER BY country, prod, year;

30 COUNTRY PROD YEAR SALES GROWTH Italy Bounce ,78 Italy Bounce ,69 75, Italy Bounce ,3 11, Italy Mouse Pad ,69 Italy Mouse Pad ,24 52, Italy Mouse Pad ,83-21,45311 Italy Mouse Pad ,9 29, Italy Y Box ,16 Italy Y Box ,89 92, Italy Y Box ,55 176,942518

31 Pętle Wariant liczbowy zakres oraz inkrementacja: sales[for month FROM 1 TO 3 INCREMENT 1, 2013] = sales[currentv(), 2012] * 2 Wariant z listą wartości: sales[for month IN ('Styczeń', 'Luty', 'Marzec'), 2013] = sales[cv(month), 2012] * 2 sales[month IN ('Styczeń', 'Luty', 'Marzec'), 2013] = sales[cv(month), 2012] * 2

32 Przykład 4 Obliczenie sprzedaży konkretnych produktów w roku 2005, przy założeniu, że będzie o 30% większa niż w 2001: SELECT SUBSTR(country,1,20) country, SUBSTR(prod,1,15) prod, year, sales FROM sales_view WHERE country='italy' MODEL RETURN UPDATED ROWS PARTITION BY (country) DIMENSION BY (prod, year) MEASURES (sale sales) RULES ( sales[for prod in ('Mouse Pad','Bounce','Y Box'),2005] = 1.3 * sales[cv(prod), 2001] ) ORDER BY country, prod, year;

33 COUNTRY PROD YEAR SALES Italy Bounce ,19 Italy Mouse Pad ,27 Italy Y Box ,815 Zastosowanie FOR: RULES ( sales['mouse Pad', 2005] = 1.3 * sales['mouse Pad', 2001], sales['bounce', 2005] = 1.3 * sales['bounce', 2001], sales['y Box', 2005] = 1.3 * sales['y Box', 2001] ) RULES ( sales[for prod in ('Mouse Pad', 'Bounce', 'Y Box'), 2005] = 1.3 * sales[cv(prod), 2001] )

34 Weryfikacja istnienia Możliwe jest sprawdzenie, czy wiersz określony przez odwołanie komórki istniał przed wykonaniem klauzuli Model: sales[for month FROM 1 TO 3 INCREMENT 1, 2013] = CASE WHEN sales[currentv(), 2012] IS PRESENT THEN sales[currentv(), 2012] * 2 ELSE 0 END

35 Weryfikacja istnienia Dostępne są dwa inne sposoby weryfikacji istnienia wiersza. Wiersz istnieje (zwracane wyr2) lub nie istnieje (zwracane wyr3) sales[for month FROM 1 TO 3 INCREMENT 1, 2013] = PRESENTV(sales[CURRENTV(), 2012], sales[currentv(), 2012] * 2, 0) Wiersz istnieje, a komórka nie jest NULL (zwracane wyr2) lub wiersz nie istnieje (zwracane wyr3) sales[for month FROM 1 TO 3 INCREMENT 1, 2013] = PRESENTNNV(sales[CURRENTV(), 2012], sales[currentv(), 2012] * 2, 0)

36 Przykład 5 Kwestia opcji: KEEP NAV i IGNORE NAV. Która jest domyślna? Czy zmiana opcji spowoduje efekt? SELECT prod, year, growth, to_char(pct*100,'990.99') ' %' AS pct FROM sales_view WHERE lower(prod) LIKE '%phone%' MODEL RETURN UPDATED ROWS PARTITION BY (prod) DIMENSION BY (country, year) MEASURES (sale sales, 0 growth, 0 pct) (growth['spain', year>1999] = sales[cv(),cv()] Sales[CV(),CV()-1], pct['spain', year>1999] = round(( sales[cv(),cv()] sales[cv(),cv()-1] ) / sales[cv(),cv()-1],2) ) ORDER BY prod, year;

37 Przykład 5 PROD YEAR GROWTH PCT Model C93822D Wireless Phone Battery , % Model C93822D Wireless Phone Battery , % Model C9827B Cordless Phone Battery , % Model C9827B Cordless Phone Battery , % Model K3822L Cordless Phone Battery , % Model K3822L Cordless Phone Battery , % Model K8822S Cordless Phone Battery , % Model K8822S Cordless Phone Battery , % S27273M Extended Use w/l Phone Batt , % S27273M Extended Use w/l Phone Batt , %

38 Przykład 5 Kwestia opcji: KEEP NAV i IGNORE NAV. A gdy zmienimy zakres wymiaru? SELECT prod, year, growth, to_char(pct*100,'990.99') ' %' AS pct FROM sales_view WHERE lower(prod) LIKE '%phone%' MODEL RETURN UPDATED ROWS PARTITION BY (prod) DIMENSION BY (country, year) MEASURES (sale sales, 0 growth, 0 pct) (growth['spain', year IS ANY] = sales[cv(),cv()] Sales[CV(),CV()-1], pct['spain', year IS ANY] = round(( sales[cv(),cv()] sales[cv(),cv()-1] ) / sales[cv(),cv()-1],2) ) ORDER BY prod, year;

39 Przykład 5 PROD YEAR GROWTH PCT Model C93822D Wireless Phone Battery 1999 % Model C93822D Wireless Phone Battery , % Model C93822D Wireless Phone Battery , % Model C9827B Cordless Phone Battery 1998 % Model C9827B Cordless Phone Battery , % Model C9827B Cordless Phone Battery , % Model C9827B Cordless Phone Battery , % Model K3822L Cordless Phone Battery 1998 % Model K3822L Cordless Phone Battery , % Model K3822L Cordless Phone Battery , % Model K3822L Cordless Phone Battery , % Model K8822S Cordless Phone Battery 1998 % Model K8822S Cordless Phone Battery ,39 ###### % Model K8822S Cordless Phone Battery , % Model K8822S Cordless Phone Battery , % S27273M Extended Use w/l Phone Batt % S27273M Extended Use w/l Phone Batt ,53 ###### % S27273M Extended Use w/l Phone Batt , %

40 Przykład 5 Kwestia opcji: KEEP NAV i IGNORE NAV. Przy dowolnym roku, zmiana na IGNORE NAV spowoduje... SELECT prod, year, growth, to_char(pct*100,'990.99') ' %' AS pct FROM sales_view WHERE lower(prod) LIKE '%phone%' MODEL RETURN UPDATED ROWS PARTITION BY (prod) DIMENSION BY (country, year) MEASURES (sale sales, 0 growth, 0 pct) IGNORE NAV (growth['spain', year IS ANY] = sales[cv(),cv()] Sales[CV(),CV()-1], pct['spain', year IS ANY] = round(( sales[cv(),cv()] sales[cv(),cv()-1] ) / sales[cv(),cv()-1],2) ) ORDER BY prod, year;

41 Przykład 5 sales[cv(),cv()-1] ) / sales[cv(),cv()-1],2) ) * BŁĄD w linii 13: ORA-01476: dzielnik jest równy zero

42 Przykład 5 Kwestia opcji: KEEP NAV i IGNORE NAV. Rozwiązaniem jest... SELECT prod, year, growth, to_char(pct*100,'990.99') ' %' AS pct FROM sales_view WHERE lower(prod) LIKE '%phone%' MODEL RETURN UPDATED ROWS PARTITION BY (prod) DIMENSION BY (country, year) MEASURES (sale sales, 0 growth, 0 pct) IGNORE NAV (growth['spain', year IS ANY] = sales[cv(),cv()] Sales[CV(),CV()-1], pct['spain', year IS ANY] = PRESENTV(sales[CV(),CV()-1], round(( sales[cv(),cv()] sales[cv(),cv()-1] ) / sales[cv(),cv()-1],2),1)) ORDER BY prod, year;

43 Przykład 5 PROD YEAR GROWTH PCT Model C93822D Wireless Phone Battery , % Model C93822D Wireless Phone Battery , % Model C93822D Wireless Phone Battery , % Model C9827B Cordless Phone Battery , % Model C9827B Cordless Phone Battery , % Model C9827B Cordless Phone Battery , % Model C9827B Cordless Phone Battery , % Model K3822L Cordless Phone Battery , % Model K3822L Cordless Phone Battery , % Model K3822L Cordless Phone Battery , % Model K3822L Cordless Phone Battery , % Model K8822S Cordless Phone Battery , % Model K8822S Cordless Phone Battery , % Model K8822S Cordless Phone Battery , % Model K8822S Cordless Phone Battery , % S27273M Extended Use w/l Phone Batt , % S27273M Extended Use w/l Phone Batt , % S27273M Extended Use w/l Phone Batt , %

44 Reference Models Klauzula Model może obsługiwać modele referencyjne. Są to zmaterializowane zapytania, które podlegają tylko odczytowi (nie są dla nich generowane nowe dane). MODEL [<reference models>] [MAIN <main-name>] [PARTITION BY (<cols>)] DIMENSION BY (<cols>) MEASURES (<cols>) Wykorzystywane są w modelu głównym (Main Model) jako tabele słownikowe.

45 Reference Models SELECT country, year, sales, dollar_sales FROM sales_view GROUP BY country, year MODEL REFERENCE conv_ref ON (SELECT country, exchange_rate FROM dollar_conv_tbl) DIMENSION BY (country) MEASURES (exchange_rate) IGNORE NAV MAIN conversion RULES DIMENSION BY (country, year) MEASURES (SUM(sale) sales, SUM(sale) dollar_sales) IGNORE NAV (dollar_sales['france', 2003] = sales[cv(country), 2002] * 1.02 * conv_ref.exchange_rate['france'], dollar_sales['poland', 2003] = sales['poland', 2002] * 1.05 * exchange_rate['poland']);

46 Klauzula Model a dane z CSV Klauzula Model może pracować na plikach tekstowych. Plik musi zostać wcześniej podłączony do bazy, za pomocą rozszerzenia external table. Dalsze operacje nie różnią się od przypadku, gdy tabela jest składowana w bazie

47 Klauzula Model a dane z CSV CREATE TABLE sprzedaz2011 ( id NUMBER(4), kwartal NUMBER(2), kategoria VARCHAR2(15), ilosc NUMBER(4) ) ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY data_imp ACCESS PARAMETERS (RECORDS DELIMITED BY NEWLINE BADFILE 'bad' LOGFILE 'log' SKIP 1 FIELDS TERMINATED BY ';' ( id,kwartal,kategoria,ilosc) ) LOCATION ('sprzedaz2011.csv') );

48 Klauzula Model a dane z CSV SELECT kwartal, kategoria, to_char(ile,'999.99') ile FROM sprzedaz2011 MODEL RETURN UPDATED ROWS PARTITION BY (kwartal) DIMENSION BY (kategoria) MEASURES (ilosc ile) RULES ( ile[kategoria IS ANY] = ile[cv()]*1.25 ) ORDER BY kwartal, kategoria ;

49 Klauzula Model a dane z CSV KWARTAL KATEGORIA TO_CHAR RTV AGD komputery telefony RTV AGD komputery telefony RTV AGD komputery telefony RTV AGD komputery telefony

50 Klauzula Model a dane z CSV KWARTAL KATEGORIA ILE AGD komputery RTV telefony AGD komputery RTV telefony AGD komputery RTV telefony AGD komputery RTV telefony

51 Typowe problemy Umieszczenie na liście SELECT kolumny niedozwolonej (nie będącej partycją, wymiarem lub miarą): ORA-32614: niedozwolone wyrażenie MODEL SELECT Podanie klauzuli ORDER BY przed MODEL: ORA-00933: polecenie SQL niepoprawnie zakończone

52 Podsumowanie Zasady użycia: Miejsce w składni SELECT Mapowanie kolumn Korzyści Wydajność Skalowalność Zarządzanie Funkcjonalności Aktualizacja i/lub generowanie nowych danych Tworzenie reguł z uwzględnieniem kolejności realizacji Obsługa pętli Możliwość ograniczenia prezentowanych wyników

53 Dziękuję za uwagę Zapraszamy wszystkich uczestników na szkolenie Język SQL dla analityków danych w specjalnej cenie zamiast PLN Terminy: Wrocław Warszawa Kraków

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Raportowanie z wykorzystaniem fraz rollup, cube Frazy cube, rollup, grouping sets umożliwiają rozszerzoną

Bardziej szczegółowo

www.comarch.pl/szkolenia Operacja PIVOT w języku SQL w środowisku Oracle 21.11.2012

www.comarch.pl/szkolenia Operacja PIVOT w języku SQL w środowisku Oracle 21.11.2012 Operacja PIVOT w języku SQL w środowisku Oracle 21.11.2012 Zakres Wprowadzenie Idea przestawiania danych Możliwe zastosowania Przestawianie danych bez klauzuli PIVOT Konstrukcja klauzuli Korzyści ze stosowania

Bardziej szczegółowo

bazy danych - heterogeniczność producenci funkcjonalność modele danych protokoły komunikacyjne

bazy danych - heterogeniczność producenci funkcjonalność modele danych protokoły komunikacyjne Wczytywanie danych ze źródeł zewnętrznych (1) Źródła zewnętrzne bazy danych - heterogeniczność producenci funkcjonalność modele danych protokoły komunikacyjne pliki tekstowe, HTML, XML arkusze kalkulacyjne

Bardziej szczegółowo

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL

ORACLE. System Zarządzania Bazą Danych Oracle. Oracle Advanced SQL ORACLE System Zarządzania Bazą Danych Oracle Oracle Advanced SQL wersja 1.0 Politechnika Śląska 2008 Plan laboratorium Frazy SQL: group by, rollup, cube, grouping sets funkcje analityczne, budowa modeli

Bardziej szczegółowo

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

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

Bardziej szczegółowo

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, 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

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

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

Bardziej szczegółowo

Laboratorium 3. Odkrywanie reguł asocjacyjnych.

Laboratorium 3. Odkrywanie reguł asocjacyjnych. Laboratorium 3 Odkrywanie reguł asocjacyjnych. 1. Uruchom narzędzie Oracle Data Miner i połącz się z serwerem bazy danych. 2. Z menu głównego wybierz Tools SQL Worksheet. W górnym oknie wprowadź i wykonaj

Bardziej szczegółowo

OLAP i hurtownie danych c.d.

OLAP i hurtownie danych c.d. OLAP i hurtownie danych c.d. Przypomnienie OLAP -narzędzia analizy danych Hurtownie danych -duże bazy danych zorientowane tematycznie, nieulotne, zmienne w czasie, wspierjące procesy podejmowania decyzji

Bardziej szczegółowo

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych Plan wykładu BAZY DANYCH II WYKŁAD 3 Zasięg zmiennych Zmienne powiązane Instrukcje warunkowe Pętle Pobieranie danych SQL w PL/SQL Rekordy dr inż. Agnieszka Bołtuć Zasięg zmiennych Zmienna jest dostępna

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

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

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

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

Bardziej szczegółowo

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

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.

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

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?

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

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

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

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.

Bardziej szczegółowo

SQL (ang. Structured Query Language)

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

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

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,

Bardziej szczegółowo

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

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.

Bardziej szczegółowo

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel SQL, LIKE, IN, CASE, EXISTS Marcin Orchel Spis treści 1 LIKE 2 2 BETWEEN 4 3 IN 5 4 EXISTS 6 5 WYRAŻENIA CASE 7 6 Zadania 9 1 Rozdział 1 LIKE Predykat LIKE jest testem dopasowującym wzorzec łańcucha. Składnia

Bardziej szczegółowo

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

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,

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

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

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

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 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

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

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

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

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

Bardziej szczegółowo

Klasyczna Analiza Danych

Klasyczna Analiza Danych Klasyczna Analiza Danych Mechanizmy języka SQL dla agregacji danych Rozszerzenia PIVOT i UNPIVOT Wyszukiwanie danych wg zadanego wzorca Materiały wykładowe Bartosz Bębel Politechnika Poznańska, Instytut

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB1, DB2: TEMAT: Wprowadzenie do SQL. Praca z pojedyncza

Bardziej szczegółowo

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

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

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Przydatne sztuczki - sql. Na przykładzie postgres a.

Przydatne sztuczki - sql. Na przykładzie postgres a. Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

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

Bardziej szczegółowo

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Wprowadzenie do języka SQL

Wprowadzenie do języka SQL Wprowadzenie do języka SQL język dostępu do bazy danych grupy poleceń języka: DQL (ang( ang.. Data Query Language) DML (ang( ang.. Data Manipulation Language) DDL (ang( ang.. Data Definition Language)

Bardziej szczegółowo

Procedury i funkcje składowane

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

Bardziej szczegółowo

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

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

Bardziej szczegółowo

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 10. Partycjonowanie tabel i indeksów 1 Partycjonowanie tabel i indeksów w Oracle W celu poprawienia efektywności dostępu do danych oraz ułatwieniu zarządzania bardzo dużymi zbiorami

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

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

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Rozszerzenia grupowania

Rozszerzenia grupowania Rozszerzenia grupowania 226 Plan rozdziału 227 Wprowadzenie ROLLUP CUBE GROUPING SETS GROUPING Rozszerzenia grupowania danych 228 W złożonych magazynach danych oprócz tabel faktów i wymiarów istnieje dodatkowo

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

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, 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

Bardziej szczegółowo

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków... Plan wykładu Spis treści 1 Kursory 1 2 Wyjątki 4 2.1 Wyjątki predefiniowane............................. 4 2.2 Wyjątki niezdefiniowane wcześniej....................... 5 2.3 Definiowanie własnych wyjątków........................

Bardziej szczegółowo

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

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

Bardziej szczegółowo

PODZAPYTANIE (SUBSELECT)

PODZAPYTANIE (SUBSELECT) 2. Podzapytania PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT W instrukcji SELECT, podzapytanie może być umieszczone

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

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

Bardziej szczegółowo

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty PL/SQL, c.d. 1 / 37 SQL to za mało SQL brakuje możliwości dostępnych w językach proceduralnych.

Bardziej szczegółowo

Kostki OLAP i język MDX

Kostki OLAP i język MDX Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

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

Bardziej szczegółowo

Składowane procedury i funkcje

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.

Bardziej szczegółowo

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych Łukasz Przywarty 171018 Wrocław, 05.12.2012 r. Grupa: CZW/N 10:00-13:00 Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych Część 1: OLAP Prowadzący: dr inż. Henryk Maciejewski

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

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

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Technologie baz danych WYKŁAD 7: Wyjątki

Technologie baz danych WYKŁAD 7: Wyjątki Wydział Informatyki Politechnika Białostocka Obsługa wyjątków Technologie baz danych WYKŁAD 7: Wyjątki [] [] Agnieszka Oniśko, Małgorzata Krętowska TBD-wyjątki 1 TBD-wyjątki 2 Sposoby powstania sytuacji

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

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

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

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

Bardziej szczegółowo

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe Funkcje Rozdział 3a Funkcje wierszowe Funkcje wierszowe (funkcje znakowe, funkcje liczbowe, funkcje operujące na datach, funkcje konwersji, funkcje polimorficzne) Przekształcają dane, pobrane przez polecenie

Bardziej szczegółowo

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych. Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych. 1 polecenie CREATE TABLE CREATE TABLE nazwa_relacji Tworzenie

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

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

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Wprowadzenie Tworzenie i wykonywanie procedur i funkcji Instrukcja RETURN Parametry procedur i funkcji oraz ich przesyłanie Metadane

Bardziej szczegółowo

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE Modele danych - wykład V Paweł Skrobanek, C-3 pok. 321 pawel.skrobanek@pwr.wroc.pl oprac. Wrocław 2006 Zagadnienia 1. Wprowadzenie 2. MOLAP modele danych 3. modele danych 4. Podsumowanie 5. Zadanie fajne

Bardziej szczegółowo

Bazy danych 6. Klucze obce. P. F. Góra

Bazy danych 6. Klucze obce. P. F. Góra Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

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 3 Podstawy programowania w T-SQL Zmienne i operatory Instrukcje sterujące Komunikaty Format daty

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z

Bardziej szczegółowo

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1 Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor

Bardziej szczegółowo

Język SQL podstawy zapytań

Język SQL podstawy zapytań Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania

Bardziej szczegółowo

Język SQL. Rozdział 3. Funkcje wierszowe

Język SQL. Rozdział 3. Funkcje wierszowe Język SQL. Rozdział 3. Funkcje wierszowe Funkcje wierszowe (funkcje znakowe, funkcje liczbowe, funkcje operujące na datach, funkcje konwersji, funkcje polimorficzne). 1 Funkcje Przekształcają dane, pobrane

Bardziej szczegółowo

Modelowanie wymiarów

Modelowanie wymiarów Wymiar Modelowanie wymiarów struktura umożliwiająca grupowanie danych z tabeli faktów implementowana jako obiekt bazy danych DIMENSION wykorzystanie DIMENSION zaawansowane przepisywanie zapytań (ang. query

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

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

Bardziej szczegółowo

Modele danych - wykład V

Modele danych - wykład V Modele danych - wykład V Paweł Skrobanek, C-3 pok. 323 pawel.skrobanek@pwr.wroc.pl oprac. Wrocław 2006 Zagadnienia 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie

Bardziej szczegółowo

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. 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ą

Bardziej szczegółowo

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

Bardziej szczegółowo

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2. Bazy Danych i Systemy informacyjne Wykład 2 Piotr Syga 16.10.2017 Dodawanie, usuwanie i zmienianie rekordów Wstawianie rekordu wstawianie do tabeli INSERT INTO A VALUES ( fioletowy, okrągły, słodko-kwaśny

Bardziej szczegółowo

Wprowadzenie do hurtowni danych

Wprowadzenie do hurtowni danych Wprowadzenie do hurtowni danych przygotował: Paweł Kasprowski Kostka Kostka (cube) to podstawowy element hurtowni Kostka jest wielowymiarowa (od 1 do N wymiarów) Kostka składa się z: faktów wektora wartości

Bardziej szczegółowo

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji

Bardziej szczegółowo

Deklarowanie kursora

Deklarowanie kursora Kursory i wyjątki Kursory i praca z kursorami, kursory jawne i niejawne, otwieranie kursora, pobieranie z kursora, zamykanie kursora, wyjątki systemowe i użytkownika, zgłaszanie i obsługa wyjątków 1 Kursor

Bardziej szczegółowo

Bazy danych wykład trzeci. Konrad Zdanowski

Bazy danych wykład trzeci. Konrad Zdanowski SQL - przypomnienie Podstawowa forma kwerendy SQL: select A1,..., Ak from R1,..., Rn where ; Odpowiada jej w algebrze relacji operacja π A1,...,Ak (σ (R1 Rn)) SQL semantyka select R.

Bardziej szczegółowo

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

Bardziej szczegółowo

Język PL/SQL. Rozdział 2. Kursory

Język PL/SQL. Rozdział 2. Kursory Język PL/SQL. Rozdział 2. Kursory Deklarowanie kursora, otwieranie kursora, pobieranie z kursora, zamykanie kursora, zmienne kursorowe, wyrażenie CURSOR, kursory niejawne. 1 Kursor jawny Każde zapytanie

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2014 1 / 16 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_danych_i_usługi_sieciowe_-_2014z

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

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.;

Bardziej szczegółowo

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład V Kwerendy Copyrights by Arkadiusz Rzucidło 1 Wprowadzenie Istotą bazy danych jest możliwość efektywnego wyszukiwania informacji Realizację operacji wyszukiwania zapewniają kwerendy

Bardziej szczegółowo