Grupowanie i funkcje agregacji

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

Download "Grupowanie i funkcje agregacji"

Transkrypt

1 Grupowanie i funkcje agregacji Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula GROUP BY Grupowanie polega na podzieleniu zbioru wierszy na grupy, które mają pewną wspólną cechę. Grupowania dokonuje się w celu zastosowania funkcji agregujących nie w stosunku do całego zbioru wierszy, ale do poszczególnych grup wierszy. W celu zgrupowania rekordów należy dodać klauzulę GROUP BY oraz kolumny lub wyrażenia, według których mają być pogrupowane wiersze. Na liście klauzuli SELECT mogą się znaleźć tylko kolumny i wyrażenia, według których zapytanie jest grupowane, oraz wywołania funkcji agregujących.

2 Grupowanie z użyciem rollup Dodanie słowa kluczowego rollup do group by spowoduje wyświetlenie podsumowań dla każdej grupy. SELECT department_id,manager_id, SUM(salary) FROM employees GROUP BY ROLLUP(department_id, manager_id); W tym przykładzie wyświetlamy sumy zarobków pracowników podległych pod każdego managera, ale równocześnie wyświetlamy podsumowanie zarobków pracowników każdego działu, jak również sumę zarobków wszystkich pracowników. Uwaga. W wierszach zawierających podsumowania dla działów w kolumnie manager_id mamy NULL. Podobnie w wierszu zawierającym podsumowanie całej tabeli występuje NULL w kolumnach manager_id i department_id.

3 Grupowanie z użyciem cube Dodanie słowa kluczowego cube do group by spowoduje wyświetlenie podsumowań dla wszystkich możliwych kombinacji wybranych kolumn. SELECT department_id,manager_id, SUM(salary) FROM employees GROUP BY CUBE(department_id, manager_id); W tym przykładzie wyświetlamy sumy zarobków pracowników podległych pod każdego managera, ale równocześnie wyświetlamy podsumowanie zarobków pracowników każdego działu, pracowników podległych pod każdego managera, jak również sumę zarobków wszystkich pracowników.

4 Użycie klauzuli GROUPING Przy użyciu opcji rollup lub cube w zapytaniu z klauzulą GROUP BY występuje NULL w wierszu podsumowania. Jeżeli dana kolumna także zawiera wartości puste, powstaje problem z identyfikacją, które wiersze zawierają podsumowanie, a które zawierają wartość pustą z danej kolumny. Rozwiązaniem jest użycie klauzuli GROUPING. Rozważmy przykładowe zapytanie: select department_id, manager_id, count(*), round(avg(salary)) from employees group by rollup(department_id,manager_id); W wierszach podsumowania występuje NULL w kolumnie manager_id, ale NULL występuje w tej kolumnie także w innych wierszach, odpowiadających sytuacji, gdy nie manager nie jest określony.

5 Użycie klauzuli GROUPING Przy użyciu opcji rollup lub cube w zapytaniu z klauzulą GROUP BY występuje NULL w wierszu podsumowania. Jeżeli dana kolumna także zawiera wartości puste, powstaje problem z identyfikacją, które wiersze zawierają podsumowanie, a które zawierają wartość pustą z danej kolumny. Rozwiązaniem jest użycie klauzuli GROUPING. Zapytanie z użyciem GROUPING. select grouping(department_id), grouping(manager_id), department_id, manager_id, count(*), round(avg(salary)) from employees group by rollup(department_id,manager_id); Klauzula GROUPING zwróci nam wartość 1 lub 0 w zależności, czy dany wiersz zawiera podsumowanie, czy nie. Stosujemy do kolumn, wzgl. których grupujemy.

6 Operatory zbiorowe: UNION, INTERSECT, MINUS Operatory zbiorowe stosują algebrę zbiorów do operacji na wynikach dwóch lub więcej zapytań. Podstawowe zasady działania operatorów: Zapytania muszą zwracać tą samą liczbę kolumn. Kolumny na tych samych pozycjach muszą być tego samego typu. Nazwy kolumn w wyniku pobierane są z pierwszego zapytania. Sortować można tylko wynik całości

7 Operatory zbiorowe: UNION, INTERSECT, MINUS UNION: wyświetla sumę zbiorów wierszy z dwóch lub więcej zapytań, jeżeli były wiersze, które się powtarzały (w różnych lub w tym samym zapytaniu), to takie wiersze będą uwzględnione tylko raz. UNION domyślnie sortuje wynik rosnąco.

8 Operatory zbiorowe: UNION, INTERSECT, MINUS UNION: wyświetla sumę zbiorów wierszy z dwóch lub więcej zapytań, jeżeli były wiersze, które się powtarzały (w różnych lub w tym samym zapytaniu), to takie wiersze będą uwzględnione tylko raz. UNION domyślnie sortuje wynik rosnąco. SELECT city, state_province AS "CITY" FROM locations WHERE country_id= US UNION SELECT city FROM locations WHERE country_id<> US ;

9 Operatory zbiorowe: UNION, INTERSECT, MINUS UNION: wyświetla sumę zbiorów wierszy z dwóch lub więcej zapytań, jeżeli były wiersze, które się powtarzały (w różnych lub w tym samym zapytaniu), to takie wiersze będą uwzględnione tylko raz. UNION domyślnie sortuje wynik rosnąco. SELECT city, state_province AS "CITY" FROM locations WHERE country_id= US UNION SELECT city FROM locations WHERE country_id<> US ;

10 Operatory zbiorowe: UNION, INTERSECT, MINUS UNION ALL: zwraca sumę zbiorów wierszy z dwóch lub więcej zapytań, uwzględnia wszystkie powtórzenia wierszy. UNION ALL nie sortuje wierszy. SELECT employee_id AS id, first_name AS imie, last_name AS nazwisko, manager_id AS szef, department_id AS "DZIAŁ" FROM employees WHERE manager_id=101 UNION ALL SELECT employee_id, first_name, last_name, manager_id, department_id FROM employees WHERE department_id=100;

11 Operatory zbiorowe: UNION, INTERSECT, MINUS UNION ALL: zwraca sumę zbiorów wierszy z dwóch lub więcej zapytań, uwzględnia wszystkie powtórzenia wierszy. UNION ALL nie sortuje wierszy. SELECT employee_id AS id, first_name AS imie, last_name AS nazwisko, manager_id AS szef, department_id AS "DZIAŁ" FROM employees WHERE manager_id=101 UNION ALL SELECT employee_id, first_name, last_name, manager_id, department_id FROM employees WHERE department_id=100;

12 Operatory zbiorowe: UNION, INTERSECT, MINUS INTERSECT: zwraca część wspólną zbiorów wierszy z dwóch lub więcej zapytań.

13 Operatory zbiorowe: UNION, INTERSECT, MINUS INTERSECT: zwraca część wspólną zbiorów wierszy z dwóch lub więcej zapytań. SELECT employee_id AS id, first_name AS imie, last_name AS nazwisko, manager_id AS szef, department_id AS "DZIAŁ" FROM employees WHERE manager_id=101 INTERSECT SELECT employee_id, first_name, last_name, manager_id, department_id FROM employees WHERE department_id=100;

14 Operatory zbiorowe: UNION, INTERSECT, MINUS INTERSECT: zwraca część wspólną zbiorów wierszy z dwóch lub więcej zapytań. SELECT employee_id AS id, first_name AS imie, last_name AS nazwisko, manager_id AS szef, department_id AS "DZIAŁ" FROM employees WHERE manager_id=101 INTERSECT SELECT employee_id, first_name, last_name, manager_id, department_id FROM employees WHERE department_id=100;

15 Operatory zbiorowe: UNION, INTERSECT, MINUS INTERSECT: zwraca część wspólną zbiorów wierszy z dwóch lub więcej zapytań. SELECT employee_id AS id, first_name AS imie, last_name AS nazwisko, manager_id AS szef, department_id AS "DZIAŁ" FROM employees WHERE manager_id=101 INTERSECT SELECT employee_id, first_name, last_name, manager_id, department_id FROM employees WHERE department_id=100; Poprzednie zapytanie można zapisać jako: SELECT employee_id AS id, first_name AS imie, last_name AS nazwisko, manager_id AS szef, department_id AS "DZIAŁ" FROM employees WHERE manager_id=101 AND department_id=100;

16 Operatory zbiorowe: UNION, INTERSECT, MINUS MINUS: tworzy różnicę zbiorów wierszy z dwóch zapytań.

17 Operatory zbiorowe: UNION, INTERSECT, MINUS MINUS: tworzy różnicę zbiorów wierszy z dwóch zapytań. SELECT * FROM employees WHERE salary >= MINUS SELECT * FROM employees WHERE job_id = SA_MAN

18 Operatory zbiorowe: UNION, INTERSECT, MINUS MINUS: tworzy różnicę zbiorów wierszy z dwóch zapytań. SELECT * FROM employees WHERE salary >= MINUS SELECT * FROM employees WHERE job_id = SA_MAN Powyższe jest równoważne zapytaniu: SELECT * FROM employees WHERE salary >= AND NOT(job_id = SA_MAN )

19 Podzapytania Podzapytaniem nazywamy dowolną, ujętą w nawiasy, instrukcję SELECT, zagnieżdżoną wewnątrz innej instrukcji. Podzapytanie możemy umieścić w następujących klauzulach instrukcji SELECT: (1) we FROM, w miejsce tabeli: SELECT... FROM (SELECT...) (2) na liście zwracanych wartości: SELECT..., (SELECT...),... FROM... (3) w klauzuli ORDER BY: SELECT... FROM... ORDER BY (SELECT...); (4) w warunkach w klauzulach WHERE lub HAVING. W sytuacji (2) i (3), podzapytanie zawsze musi zwracać pojedyncz a wartość, w (4) - zależnie od kontekstu.

20 Podzapytania Podzapytania w klauzuli WHERE (HAVING): SELECT * FROM tabela WHERE kolumna OPERATOR (SELECT kolumna FROM tabela); gdzie operator to: IN, lub operator relacji (>=, <=, =), gdy podzapytanie zwraca dokładnie jeden wiersz, lub operator relacji w połączeniu z ALL/ANY, gdy podzapytanie może zwrócić wiele wierszy. W obu sytuacjach, podzapytanie może zwracać tylko jedną kolumnę. SELECT * FROM tabela WHERE [NOT] EXISTS (SELECT kolumna * FROM tabela); Tutaj nie ma znaczenia, czy wartość będzie jednoelementowa (jedna kolumna) i czy będzie zwracany więcej niż jeden wiersz.

21 Podzapytania skorelowane W tego typu podzapytaniach istnieje związek pomiędzy podzapytaniem a zapytaniem zewnętrznym - podzapytanie odwołuje się do zapytania zewnętrznego. Wynik podzapytania jest uzależniony od wartości w wierszach zapytania zewnętrznego. Podzapytanie skorelowane jest wyliczane dla każdego wiersza zapytania zewnętrznego (w przeciwieństwie do podzapytania prostego, które jest wyliczane tylko raz). W podzapytaniu skorelowanym niezbędne jest korzystanie z aliasów. SELECT * FROM employees e WHERE e.salary>(select AVG(salary) FROM employees e1 WHERE e1.department_id=e.department_id); Podzapytania skorelowane często wykorzystuje się razem z EXISTS.

22 Podzapytanie na liście SELECT Podzapytania możemy umieszczać na liście wartości SELECT, ale muszą wtedy zwracać pojedynczą wartość, np. Wybieramy zarobki pracownika i średnie zarobki w jego dziale: SELECT last_name, salary, (SELECT AVG(salary) from employees e1 WHERE e1.department_id=e.department_id) AS srednie FROM employees e;

23 SELECT z podzapytania SELECT... FROM (SELECT...)... Ważne: aby możliwe było odwołanie do wartości z podzapytania, trzeba ją nazwać (czyli nadać jej alias w podzapytaniu). O takich podzapytaniach można myśleć jak o perspektywach zapisanych bezpośrednio w zapytaniu, np. Wybieramy różnicę między zarobkami pracownika, a średnią w jego dziale: SELECT last_name, salary-srednia FROM (SELECT Avg(salary) AS srednia, department_id FROM employees GROUP BY department_id) e1 JOIN employees e2 ON e1.department_id=e2.department_id;

24 SELECT z podzapytania SELECT... FROM (SELECT...)... Ważne: aby możliwe było odwołanie do wartości z podzapytania, trzeba ją nazwać (czyli nadać jej alias w podzapytaniu). O takich podzapytaniach można myśleć jak o perspektywach zapisanych bezpośrednio w zapytaniu, Tego typu podzapytania warto stosować, gdy musimy nałożyć funkcję agregacji na funkcję agregacji, np. Wybieramy średnią liczbę pracowników w dziale: SELECT Avg(ile) FROM (SELECT Count(*) AS ile FROM employees GROUP BY department_id);

25 Złaczenia Dane, które chcemy uzyskać z bazy danych zazwyczaj znajdują się w więcej niż jednej tabeli bazodanowej. W takim przypadku nasze zapytanie musi się odpowiednio odwołać do więcej niż jednej tabeli. Mechanizm ten nazywa się w SQL złączeniami. Rodzaje złączeń: ZŁACZENIE KARTEZJAŃSKIE ZŁACZENIE WEWNETRZNE ZŁACZENIE ZEWNETRZNE (+) Złączenie wewnętrzne z użyciem JOIN ON NATURAL JOIN Złączenie za pomocą JOIN USING() Złączenia zewnętrzne: LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN

26 Złaczenia

27 Złaczenia ZŁ ACZENIE KARTEZJAŃSKIE SELECT last_name, department_name FROM employees, departments; Zwraca iloczyn kartezjański wierszy z obu tabel. Złączenia kartezjańskie stosuje się bardzo rzadko, gdyż produkują bardzo dużą ilość wierszy, które nie zawierają logicznie spójnych informacji. W powyższym przykładzie ilość wierszy powstałych w wyniku złączenia kartezjańskiego jest iloczynem ilości wierszy w tabelach employees oraz departments.

28 Złaczenia ZŁACZENIE WEWNETRZNE SELECT last_name, department_name FROM employees e, departments d WHERE e.department_id=d.department_id; Najczęściej, kiedy zadajemy zapytanie do dwu tabel, zależy nam na uzyskaniu tylko takich kombinacji wierszy z obu tabel, które sobie w jakiś sposób odpowiadają. Złączenia zwracające właśnie taki zbiór wierszy z obu tabel nazywamy złączeniami wewnętrznymi. Uwaga: Jeśli nadamy tabeli alias, nie będziemy mogli odnosić się do niej po nazwie.

29 Złaczenia ZŁACZENIE ZEWNETRZNE (+) SELECT last_name, department_name FROM employees e, departments d WHERE e.department_id(+)=d.department_id; W przypadku złączeń wewnętrznych, jeżeli w jednej z tabel istnieje rekord, który nie ma żadnego odpowiednika w drugiej tabeli, to rekord ten jest pomijany w końcowym wyniku. Jeżeli chcemy uwzględnić takie rekordy, to można wyróżnić jedną z tabel i wykonać złączenie zewnętrzne, aby otrzymać z wyróżnionej tabeli wszystkie rekordy, nawet te, które nie mają swojego odpowiednika w drugiej z tabel. Korzystamy z operatora złączenia zewnętrznego (+). Umieszczamy go w warunku złączenia po nazwie kolumny z tej tabeli, która jest uboższa, czyli tam, gdzie brakuje rekordów i musimy jakieś dodać. Powyższe zapytanie uwzględni wszystkie działy, także te, które nie mają pracowników.

30 Złaczenia Złączenie wewnętrzne z użyciem JOIN ON SELECT last_name, department_name FROM employees e JOIN departments d ON e.department_id=d.department_id;

31 Złaczenia Złączenie wewnętrzne z użyciem JOIN ON SELECT last_name, department_name FROM employees e JOIN departments d ON e.department_id=d.department_id; NATURAL JOIN Tabele departments oraz employees posiadają pole o tej samej nazwie, które służy nam do łączenia tych tabel. W takiej sytuacji możemy skorzystać z NATURAL JOIN: SELECT last_name, department_name FROM employees NATURAL JOIN departments;

32 Złaczenia Złączenie za pomocą JOIN USING() Identyczne zastosowanie jak NATURAL JOIN ma JOIN USING. W tym przypadku musimy podać nazwę kolumny, która ma służyć jako złączenie. Powinno się korzystać z tej formy, a nie z NATURAL JOIN, jeśli w dwóch tabelach, które chcemy połączyć, występuje więcej niż jedna kolumna o identycznej nazwie i typie danych. SELECT last_name, department_name FROM employees JOIN departments USING(department_id);

33 Złaczenia Złączenia zewnętrzne: LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN Odpowiednikiem złączenia zewnętrznego za pomocą operatora (+) jest użycie LEFT OUTER JOIN lub RIGHT OUTER JOIN. Konstrukcja: SELECT last_name, department_name FROM departments d LEFT OUTER JOIN employees e ON e.department_id=d.department_id; jest równoważna z konstrukcją: SELECT last_name, department_name FROM departments d, employees e WHERE d.department_id=e.department_id(+) FULL OUTER JOIN jest połączeniem RIGHT OUTER JOIN i LEFT OUTER JOIN. Wyświetla niedopasowane elementy z obu tabel.

34 Zapytania hierarchiczne Przykład: hierarchia zatrudnienia w firmie. każdy pracownik (z wyjątkiem prezesa) podlega pod jakiegoś kierownika (dokładnie jednego); każdy kierownik też jest pracownikiem firmy; prezes jest "najwyższym" przełożonym. Powyższa struktura jest odwzorowana w tabeli employees: numer przełożonego danego pracownika jest zapisany w polu manager_id, jest to numer pracownika będącego przełożonym (czyli wartość pola employee_id dla kierownika).

35 Hierarchia zatrudnienia odwzorowana w tabeli employees: numer przełożonego danego pracownika jest zapisany w polu manager_id, jest to numer pracownika będącego przełożonym (czyli wartość pola employee_id dla kierownika).

36 Zapytania hierarchiczne Aby skonstruować drzewo tej hierarchii, używamy polecenia: SELECT (LPad(,5*(LEVEL-1))) last_name first_name FROM employees START WITH manager_id IS NULL CONNECT BY PRIOR employee_id=manager_id;

37 Zapytania hierarchiczne Aby skonstruować drzewo tej hierarchii, używamy polecenia: SELECT (LPad(,5*(LEVEL-1))) last_name first_name FROM employees START WITH manager_id IS NULL CONNECT BY PRIOR employee_id=manager_id; W klauzuli SELECT zapytania ustawiamy odpowiedni sposób sformatowania wyniku. LEVEL - poziom zagłębienia w strukturze (prezes ma poziom 1). START WITH określa, od którego miejsca mamy budować drzewo. CONNECT BY PRIOR employee_id=manager_id - jak ma być tworzone drzewo, podaje sposób łączenia wierszy. W tym przypadku tak: na kolejnym poziomie będą pracownicy, których manager_id jest równe employee_id z poprzedniego poziomu. PRIOR określa, która z kolumn jest nadrzędna (tutaj - employee_id).

38 Zapytania hierarchiczne Aby zapytanie hierarchiczne było poprawnie zbudowane, zależność określająca sposób łączenia rekordów musi być jednoznacznie określona, tzn. dla każdego wiersza może być tylko jeden wiersz nadrzędny. W poprzednim przykładzie tak jest - związek manager_id=employee_id w sposób jednoznaczny określa, który wiersz jest nadrzędny dla danego, wynika to z faktu, że pole employee_id jest kluczem głównym tabeli employee. Powyższa reguła jest zgodna z logiką: żaden z pracowników nie ma dwóch bezpośrednich przełożonych. W zapytaniu hierarchicznym nie może pojawić się pętla, tzn. taka sytuacja, gdy jeden z wierszy jest jednocześnie przodkiem i potomkiem dla innego. Dostaniemy wówczas błąd.

39 Zapytanie hierarchiczne - konstrukcja klauzuli hierarchicznej CONNECT BY warunek1 [AND warunek2...] START WITH warunek START WITH określa wybór wiersza (lub wierszy) będących korzeniami w hierarchi; nie jest wymagany w zapytaniu; Warunek określony w klauzuli CONNECT BY musi zawierać operator PRIOR, który określa sposób wiązania wierszy potomków z wierszami rodzica. Zazwyczaj warunek ma postać porównania przez równość wartości odpowiednich kolumn, np. CONNECT BY PRIOR employee_id=manager_id employee_id jest kolumną nadrzędną, czyli wskazuje na wiersz rodzica, natomiast manager_id na wiersz potomka.

40 Zapytanie hierarchiczne SELECT employee_id, last_name, first_name, manager_id FROM employees CONNECT BY PRIOR employee_id=manager_id START WITH manager_id IS NULL

41 Zapytanie hierarchiczne SELECT employee_id, last_name, first_name, manager_id FROM employees CONNECT BY PRIOR employee_id=manager_id START WITH manager_id IS NULL Sposób przetwarzania tego zapytania jest następujący: Korzeniami w hierarchii są w tym przypadku wiersze tych pracowników, którzy nie mają nad sobą żadnego managera. Najpierw dla pierwszego wiersza - korzenia są wybierane jego dzieci, potem dzieci tych dzieci, itp. Powtarzane jest to dla każdego kolejnego wiersza będącego korzeniem: wybierany jest korzeń, potem są wybierane wiersze - dzieci, potem dzieci dla tych wierszy, itd.

42 Zapytanie hierarchiczne SELECT employee_id, last_name, first_name, manager_id FROM employees WHERE LEVEL IN(2,3) CONNECT BY PRIOR employee_id=manager_id

43 Zapytanie hierarchiczne SELECT employee_id, last_name, first_name, manager_id FROM employees WHERE LEVEL IN(2,3) CONNECT BY PRIOR employee_id=manager_id Sposób przetwarzania tego zapytania jest następujący: Korzeniami w hierarchii są w tym przypadku wiersze tych pracowników, którzy nie mają nad sobą żadnego managera. Najpierw dla pierwszego wiersza - korzenia są wybierane jego dzieci, potem dzieci tych dzieci, itp. Powtarzane jest to dla każdego kolejnego wiersza będącego korzeniem. Klauzula WHERE jest przetwarzana jako ostatnia, dla każdego z wybranych wcześniej wierszy osobno. Uwaga. Gdyby zapytanie zawierało złączenie, to złączenie byłoby przetwarzane przed ewaluacją klauzuli CONNECT BY.

44 Zapytania hierarchiczne Sortowanie oraz grupowanie zaburza wyniki zapytania hierarchicznego (czyli nie używamy klauzul GROUP BY ani ORDER BY). Można sortować w obrębie poszczególnych gałęzi (czyli w obrębie wierszy podlegających pod ten sam wiersz nadrzędny): ORDER SIBLINGS BY Dodatkowe wartości (funkcje), z których możemy skorzystać przy zapytaniach do obsługi struktur hierarchicznych: CONNECT_BY_ISLEAF określa, czy dany wiersz (rekord) jest liściem (tzn. nie ma już wierszy podrzędnych); 1 odpowiada liść, 0 przeciwnie; LEVEL podaje poziom zagłębienia danego wiersza w wyświetlanej strukturze hierarchicznej; SYS_CONNECT_BY_PATH(wartość, separator)- buduje pełną ścieżkę dla danego rekordu (od rekordu na najwyższym poziomie) na podstawie danego pola.

45 Zapytania hierarchiczne SELECT employee_id, last_name, first_name, manager_id, CONNECT_BY_ISLEAF FROM employees where CONNECT_BY_ISLEAF=1 CONNECT BY PRIOR employee_id=manager_id start with manager_id is null order siblings by last_name;

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup Grupowanie i funkcje agregacji Grupowanie z użyciem rollup Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula

Bardziej szczegółowo

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Dane z kilku tabel Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Łączenie kilku selectów w jeden posortowany wynik 1. UNION suma bez powtórzeń. Powoduje,

Bardziej szczegółowo

niż zadeklarowana długość, zostaje ucięty z prawej strony. osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy

niż zadeklarowana długość, zostaje ucięty z prawej strony. osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy Funkcje jednowierszowe. Funkcje znakowe Upper: Zamienia wszystkie litery na wielkie. Lower: Zamienia wszystkie litery na małe. Initcap: Zwiększa pierwsze litery wszystkich wyrazów. np. select initcap(

Bardziej szczegółowo

3. Podzapytania, łączenie tabel i zapytań

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,

Bardziej szczegółowo

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych

Bardziej szczegółowo

Autor: Joanna Karwowska

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

Bardziej szczegółowo

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

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

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

Wykład 6. SQL praca z tabelami 3

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

Bardziej szczegółowo

Podstawy języka SQL cz. 2

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

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 6: Algebra relacji. SQL - cd Algebra relacji operacje teoriomnogościowe rzutowanie selekcja przemianowanie Małgorzata Krętowska Wydział Informatyki Politechnika

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Bardziej szczegółowo

SQL praca z tabelami 4. Wykład 7

SQL praca z tabelami 4. Wykład 7 SQL praca z tabelami 4 Wykład 7 1 Funkcje agregujące Informacja poszukiwana w bazie danych często musi być wyliczana na podstawie danych znajdujących się w wielu wierszach tabeli. Tak jest gdy chcemy znać

Bardziej szczegółowo

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł!

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

Bardziej szczegółowo

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco: Połączenia krzyżowe Złączenie typu CROSS JOIN Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco: SELECT kolumna1, kolumna2,..., kolumnan FROM tabela1 CROSS

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

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,

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

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

Złaczenia tablic: FROM, WHERE, JOIN

Złaczenia tablic: FROM, WHERE, JOIN JOIN Łączenie tablic 1 Bazy Danych Wykład p.t. Złaczenia tablic: FROM, WHERE, JOIN Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano materiały: http: //www.postgresql.org/docs/8.3/interactive/index.html

Bardziej szczegółowo

Bazy danych - Materiały do laboratoriów IV

Bazy danych - Materiały do laboratoriów IV Bazy danych - Materiały do laboratoriów IV dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 17 marca 2011 roku Pozostałe funkcje wierszowe Oracle:

Bardziej szczegółowo

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

Bardziej szczegółowo

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski Bazy danych Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 5 Strukturalny język zapytań (SQL - Structured Query Language) Algebraiczny rodowód podstawowe działania w przykładach Bazy danych.

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

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

Grupowanie i funkcje agregujące

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,

Bardziej szczegółowo

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 1 Piotr Syga 09.10.2017 Ogólny zarys wykładu Podstawowe zapytania SQL Tworzenie i modyfikacja baz danych Elementy dynamiczne, backup, replikacja, transakcje Algebra

Bardziej szczegółowo

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Ograniczanie rozmiaru zbioru wynikowego, klauzula WITH, zapytania hierarchiczne. 1 Ograniczanie liczności zbioru wynikowego (1) Element standardu

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

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

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

Autor: Joanna Karwowska

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

Bardziej szczegółowo

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

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

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

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL

Bardziej szczegółowo

Podyplomowe Studia Systemy informatyczne w logistyce

Podyplomowe Studia Systemy informatyczne w logistyce MATERIAŁY SZKOLENIOWE Podyplomowe Studia Systemy informatyczne w logistyce Hurtownie danych w informatycznych systemach logistycznych (MS SQL Server 2012) PROWADZĄCY: Marcin Pieleszek Projekt współfinansowany

Bardziej szczegółowo

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

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.

Bardziej szczegółowo

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Bazy danych 2. Wykład 4 Structured Query Language (SQL) Bazy danych 2 Wykład 4 Structured Query Language (SQL) Cechy SQL W standardzie SQL wyróŝnia się dwie części: DDL (Data Definition Language) - język definiowania danych DML (Data Manipulation Language)

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

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6 Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6 Wybieranie danych z wielu tabel polega na użyciu więcej niż jednej tabeli w klauzuli FROM i, najczęściej, kolumn z więcej niż jednej

Bardziej szczegółowo

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

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)

Bardziej szczegółowo

Model relacyjny. Wykład II

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

Bardziej szczegółowo

Lista zadań nr 1. 4. Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

Lista zadań nr 1. 4. Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000. Lista zadań nr 1 Zapytania SQL, SELECT z klauzulą WHERE i ORDER BY 1. Wyświetlić zawartość tablicy z pracownikami (EMPLOYEE). 2. Wyświetlić nazwisko i imię LAST NAME, F IRST NAME dla każdego pracownika.

Bardziej szczegółowo

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *

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

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra Bazy danych 8. Podzapytania i grupowanie P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2009 Podzapytania Podzapytania pozwalaja na tworzenie strukturalnych podzapytań, co umożliwia izolowanie poszczególnych

Bardziej szczegółowo

Laboratorium Bazy danych SQL 3 1

Laboratorium Bazy danych SQL 3 1 Laboratorium Bazy danych SQL 3 1 F U N K C J E operujące na grupach wierszy: avg([distinct all]kol) oblicza średnią arytmetyczną wartości kolumny kol wszystkich wierszy grupy. count([distinct all]wyr)

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

Autor: Joanna Karwowska

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

Bardziej szczegółowo

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING Agregacja w SQL 1 Bazy Danych Wykład p.t. Agregacja i Grupowanie Danych Funkcje Agregacji. Opcje GROUP BY oraz HAVING Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano materiały:

Bardziej szczegółowo

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

SQL - Structured Query Language. strukturalny język zapytań SQL - Structured Query Language strukturalny język zapytań SQL - Structured Query Language - strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

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

Bardziej szczegółowo

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

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

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

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

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

SQL do zaawansowanych analiz danych część 1.

SQL do zaawansowanych analiz danych część 1. SQL do zaawansowanych analiz danych część 1. Mechanizmy języka SQL dla agregacji danych Rozszerzenia PIVOT i UNPIVOT Materiały wykładowe Bartosz Bębel Politechnika Poznańska, Instytut Informatyki Plan

Bardziej szczegółowo

Laboratorium Bazy danych SQL 2

Laboratorium Bazy danych SQL 2 Klauzula order by występuje jako ostatnia klauzula w poleceniu select, powoduje posortowanie wierszy będących wynikiem zapytania według wartości atrybutu w niej wskazanego. Domyślnie sortowanie jest według

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

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania Plan Podzapytania (subqueries) Podzapytania do tabel Podzapytanie jako wyrażenie Podzapytania skorelowane operatory IN, NOT IN operatory EXISTS, NOT EXISTS Podzapytania do tabel W miejscu w którym możemy

Bardziej szczegółowo

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ćwiczenie zapytań języka bazy danych PostgreSQL Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.

Bardziej szczegółowo

Bazy Danych II. Ćwiczenia

Bazy Danych II. Ćwiczenia Bazy Danych II. Ćwiczenia Bartosz Zieliński 16 kwietnia 2011 Spis treści 1 Powtórzenie SQL 3 1.1 Tworzenie i usuwanie tabel........................ 3 1.2 Wstawianie danych do tabel........................

Bardziej szczegółowo

Podzapytania. Podzapytania nieskorelowane i skorelowane

Podzapytania. Podzapytania nieskorelowane i skorelowane Podzapytania w SQL 1 Bazy Danych Wykład p.t. Podzapytania. Zagnieżdżanie zapytań. Podzapytania nieskorelowane i skorelowane Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Bardziej szczegółowo

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra Bazy danych 6. Podzapytania i grupowanie P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Podzapytania Podzapytania pozwalaja na tworzenie strukturalnych podzapytań, co umożliwia izolowanie poszczególnych

Bardziej szczegółowo

Konstruowanie Baz Danych DQL agregacja danych

Konstruowanie Baz Danych DQL agregacja danych 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

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

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek Podzapytania Podzapytanie jest poleceniem SELECT zagnieżdżonym w innym poleceniu SELECT. Podzapytanie może wystąpić wszędzie tam, gdzie system spodziewa się zbioru wartości, czyli w klauzulach SELECT,

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

RBD Relacyjne Bazy Danych

RBD Relacyjne Bazy Danych Wykład 7 RBD Relacyjne Bazy Danych Bazy Danych - A. Dawid 2011 1 Selekcja σ C (R) W wyniku zastosowania operatora selekcji do relacji R powstaje nowa relacja T do której należy pewien podzbiór krotek relacji

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

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

Bardziej szczegółowo

SQL Structured Query Language

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

Bardziej szczegółowo

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

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

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

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

Bardziej szczegółowo

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408 Bazy Danych SQL Podstawy języka II: zapytania Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Konstrukcja select-from-where SQL oparty jest na algebrze relacji z pewnymi modyfikacjami

Bardziej szczegółowo

Zarzadzanie transakcjami. Transakcje

Zarzadzanie transakcjami. Transakcje Transakcje Transakcja: ciąg zawierający jedno lub wiele poleceń SQL, zgrupowanych razem jako jedna logiczna jednostka działań, której nie można podzielić. Logiczna jednostka działań to zbiór logicznych

Bardziej szczegółowo

Model relacyjny. Wykład II

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

Bardziej szczegółowo

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Kwerendy (zapytania) wybierające

Kwerendy (zapytania) wybierające Access 2. Kwerendy (zapytania) wybierające Kwerendy wybierające (nazywane też zapytaniami wybierającymi) są podstawowymi obiektami w MS Access służącymi do wyszukiwania danych w tabelach. W wyniku uruchomienia

Bardziej szczegółowo

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING. Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING. 1 Funkcje grupowe (agregujące) (1) Działają na zbiorach rekordów, nazywanych grupami. Rekordy

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2019 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła 050 SQL ELEMENTY ZAAWANSOWANE Prof. dr hab. Marek Wisła Deklarowanie zmiennych DECLARE @nazwa-zmiennej typ-danych {, @nazwazmiennej typ-danych}; deklaruje nazwy zmiennych lokalnych (definiowanych przez

Bardziej szczegółowo

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE) Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE) W Bazie występują trzy tabele, o następujących schematach: EMP {empno(pk), ename, deptno(fk), mgr(fk), sal, comm, hiredate, job} DEPT {deptno(pk), dname,

Bardziej szczegółowo

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS.

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS. Anonco.pl NORTHWIND dwiczenia praktyczne. NORTHWIND ćwiczenia praktyczne KiK s Tutorials Spis treści Część 1. Wprowadzenie 3 Wprowadzenie do SQL Server 3 Rozpoczynamy pracę z SQL Server 4 Część 2. Typy

Bardziej szczegółowo

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące Funkcje grupujące Funkcja COUNT() Funkcja SUM() Funkcja AVG() Funkcje MIN() i MAX() Funkcja GROUP_CONCAT() Grupowanie danych Operator ROLLUP Klauzula HAVING Kolejność wykonywania klauzuli zapytań Na podstawie:

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

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

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

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

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

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2018 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski BAZY DANYCH algebra relacyjna Opracował: dr inż. Piotr Suchomski Wprowadzenie Algebra relacyjna składa się z prostych, ale mocnych mechanizmów tworzenia nowych relacji na podstawie danych relacji. Hdy

Bardziej szczegółowo

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane.

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane. W tym odcinku poznasz funkcje grupujące i dwie nowe klauzule instrukcji SELECT GROUP BY i HAVING. Nauczysz się też grupować dane, czyli łączyć wiele wierszy w jeden. Grupowanie danych polega na łączeniu

Bardziej szczegółowo

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli 1. Tworzenie tabeli Aby stworzyć tabele w SQL-u należy użyć polecenia CREATE TABLE nazwa_tabeli (nazwa_pola1 właściwości_pola1, nazwa_pola2 właściwości_pola2, itd.) Nazwa_tabeli to wybrana przez nas nazwa

Bardziej szczegółowo

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

Bardziej szczegółowo