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
|
|
- Kazimierz Nowicki
- 7 lat temu
- Przeglądów:
Transkrypt
1 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( ola, ala ) from dual; Uwaga: dual: specjalna tablica w Oracle, z jednym wierszem i jedna kolumna, używamy jej w przypadku pisania zapytań, które nie odwołuja się do danych z żadnej tablicy (widoku). Lpad(text,n,znak) Funkcja uzupełniająca z lewej strony znakami podanymi jako trzeci argument w taki sposób by wynik 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. np. select Lpad(job_code,5, x) from employees; Rpad(text,n,znak) Funkcja uzupełniająca z prawej strony wynik znakami podanymi jako trzeci argument w taki sposób, by wynik 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.
2 Funkcje znakowe RTrim(text,text2), LTrim(text,text2) Funkcje te usuwają z prawej lub lewej strony napisu text znaki zawarte w text2. Jeśli nie podamy wartości text2, usunięte zostaną spacje (i w praktyce do tego tych funkcji używa się najczęściej). Replace (text, text1 [,text2]) Funkcja zamienia wszystkie wystąpienia ciągu text1 w ciągu text na text2. W przypadku braku ciągu text2 z ciągu text usuwane są wszystkie wystąpienia ciągu text1. translate (text, text1,text2) Funkcja działa podobnie jak funkcja replace, tylko że zamienia w ciagu text wszystkie wystąpienia pojedynczych liter z ciągu text1 na odpowiednie litery z ciągu text2. np. select translate(last_name, ąćęłńóśźż, acelnoszz ) from employees; length (text) Zwraca długość ciągu text, jeśli text ma wartość NULL funkcja zwraca NULL. np. select length(last_name) from employees;
3 Funkcje znakowe Substr(text, m [,n]): Funkcja wycina z ciągu text n znaków począwszy od pozycji m. Jeżeli n nie jest podane, to wycina wszystkie znaki od pozycji m do końca ciągu text. Jeżeli m jest ujemne, to znaki są odliczane od końca ciągu text. Przykłady: (1) Wyświetlenie pierwszych czterech znaków nazwiska. select substr(last_name,1,4) from employees; (2) Funkcja substr z użyciem dwóch parametrów zwróci ciąg znaków zaczynając od drugiego znaku, do końca (czyli usunie pierwszy znak). select substr(last_name,2) from employees; (3) Substr z m ujemnym. Parametr n najbezpieczniej w takiej sytuacji jest podać większy niż długość najdłuższego wyrazu (jeżeli n jest większa niż długość, zwraca null). select substr(last_name, -2, 20) from employees; //ostatnie dwa znaki z nazwiska
4 Funkcje znakowe to_char Funkcja ta ma kilka zastosowań. Jedno z nich odnosi się do zamiany liczb na postać znakową. Inne formy to_char zostaną omówione później. to_char (liczba [,wzorzec]) zamienia liczbę na postać znakową według podanego wzorca. np. Chcemy wyświetlić roczne wynagrodzenie pracowników podzielone przez 12, otrzymaliśmy mało czytelny wynik: select last_name, salary/12 as "miesięczne zarobki" from employees; Stosując funkcję to_char możemy zamienić go na odpowiadający nam format: select last_name, to_char((salary/12), ) as "miesięczne zarobki" from employees;
5 Wzorzec w funkcji to_char jest napisem, który może zawierać następujące elementy: Element Opis Przykład Wynik 9 Cyfra (liczba dziewiątek określa szerokość pola) Wyświetl wiodące zera $ Ruchomy znak dolara $ $1234 L Ruchomy znak lokalnej waluty L zł1234. Kropka dziesiętna na wskazanej pozycji , Przecinek na wskazanej pozycji 999,999 1,234 MI Znak minus z prawej strony (przy wartościach ujemnych) 9999MI PR Liczby ujemne w nawiasach 9999PR <1234> EEEE Notacja inżynierska (w formacie muszą być cztery E) 9.9EEEE 1.2E+03 V Pomnóż przez 10 n razy (n to liczba dziewiątek po V) 9999V
6 Funkcje znakowe to_number (text [,wzorzec]) Funkcja zamienia ciąg znaków na liczbę według wzorca zbudowanego podobnie dla funkcji to_char (jak powyżej). Funkcja ta jest przydatna, gdy w naszej bazie liczby przechowywane są w postaci tekstowej. SELECT To_Number(postal_code, 99999) FROM locations WHERE country_id= US ;
7 Funkcje numeryczne ROUND (x,[,y]) Zaokrągla x z dokładnością do y miejsc po przecinku. Jeśli y nie zostało podane, jest domyślnie ustawiane jako 0. (Uwaga! 1.5 zaokrągla do 2!) select round(15.75, 1) from dual; -> 15.8 TRUNC (x,[,y]) Ucina x z dokładnością do y miejsc po przecinku. Jeśli y nie zostało podane, jest domyślnie ustawiane jako 0. POWER (x,y) > x y. SQRT(x) > x. SIGN(x) Zwraca wartość 0, 1 lub -1 w zależności od znaku liczby x. ABS(x) Wartość bezwzględna liczby x. MOD(x,y) Reszta z dzielenia x przez y. Jeśli y = 0 zwraca x. SIN(x), COS(x), TAN(x) Funkcje trygonometryczne, x jest podawane w radianach.
8 Daty Aktualna data jest przechowywana w zmiennej systemowej SYSDATE. select sysdate from dual; Daty można również od siebie odjać. Wynikiem będzie liczba dni pomiędzy datami. Do daty możemy również dodać liczbę całkowita i jako wynik uzyskamy datę za podaną ilość dni. MONTHS_BETWEEN(date1,date2) Zwraca ilość miesięcy pomiędzy datami. ADD_MONTHS(date,n) Dodaje do podanej daty n miesięcy, np. SELECT Add_Months(SYSDATE,3) FROM dual; LAST_DAY(date) Zwraca datę ostatniego dnia miesiąca zawierającego podaną datę.
9 Daty ROUND(date[,p]) Funkcja zaokrągla datę do północy, jeśli jest przed południem lub do północy dnia następnego, jeśli jest po południu. W przypadku podania dodatkowego parametru p zaokrągla datę do pełnego miesiąca (p= month ) lub roku (p= year ), np. zaokrąglenie do pełnego miesiąca: SELECT Round(SYSDATE, month ) FROM dual; TRUNC(date[,p]) Ucina daty. Parametr p działa analogicznie, jak dla round.
10 Daty to_date (text [,text1]) Funkcja zamienia ciąg znaków text na datę według wzorca zawartego w text1. Wzorzec pozwala poprawnie zinterpretować znaki zawarte w ciągu text. Używamy najczęściej przy wstawianiu dat do bazy. SELECT To_date( , yyyymmdd ) FROM dual; SELECT To_date( , yyyy-mm-dd ) FROM dual; SELECT To_date( 2001 V 09 18:34, yyyy rm dd hh24:mi ) FROM dual; SELECT To_date( January 15, 1989, Month dd, YYYY, NLS_DATE_LANGUAGE = English ) FROM dual;
11 Formaty dla funkcji to_date: Parametr Opis Komentarz YYYY Czterocyfrowy rok YYY YY Y Ostatnie 3, 2 lub 1 cyfra roku. RRRR Przyjmuje dwucyfrowy rok, a zwraca w czterocyfrowej notacji. Wartości z zakresu 0-49 zwróci jako lata 20 wieku. Wartości z zakresu zwróci jako lata 19 wieku. MM Miesiąc (01-12). MON Trzyliterowa nazwa miesiąca. sty, lut, mar,... MONTH Nazwa miesiąca. styczeń, luty, itp. RM Rok w notacji rzymskiej. I-XII DD Dzień w miesiącu (1-31). DDD Dzień w roku (1-366). HH Godzina w dobie (1-12). HH24 Godzina w dobie (0-23). MI Minuta (0-59). SS Sekunda (0-59).
12 Funkcja to_char dla dat to_char (date [,text1]) Zamienia datę na postać znakową według wzorca zawartego w ciągu text1. Funkcję to_char można wykorzystać do przetwarzania dat wg wzorca. Od omawianej wcześniej odmiany to_char różni się rodzajem parametrów. Tutaj przyjmuje daty, wcześniej były to liczby. Dla funkcji to_char stosuje się te same wzorce dat jak dla funkcji to_date. Można też użyć poniższych. Parametr Opis YEAR Rok, słownie Q Kwartał roku (1, 2, 3, 4). WW Tydzień w roku. W Tydzień w miesiącu. D Dzień w tygodniu (1-7). DAY Nazwa dnia tygodnia.
13 Funkcja EXTRACT EXTRACT(part from datetime) zwraca wartość odpowiedniego pola z daty lub godziny. Funkcji możemy użyć, aby wybrać rok (YEAR), miesiąc (MONTH) lub dzień (DAY) z daty, albo godzinę (HOUR), minutę (MINUTE) lub sekundę (SECOND) z pola typu timestamp. Wybierzmy wszystkich pracowników zatrudnionych od 2005 roku: SELECT * FROM employees WHERE EXTRACT(YEAR FROM hire_date)>=2005; Poniższa instrukcja wybiera godzinę, minutę i sekundę z daty i godziny systemowej: SELECT EXTRACT(HOUR FROM SYSTIMESTAMP), EXTRACT(MINUTE FROM SYSTIMESTAMP), EXTRACT(SECOND FROM SYSTIMESTAMP) FROM DUAL;
14 Funkcja decode Select decode (nazwa_kolumny,wartość, zamiennik, wartość2, zamiennik2,wartość domyślna) [alias] from nazwa_tabeli; Funkcja testuje wartość w podanej kolumnie i w zależności od wartości mieszczącej się w pierwszym argumencie zwraca wartość podaną w drugim argumencie. Jeśli nie znajdzie odpowiedniej wartości w podanych warunkach, wyświetli wartość domyślną podaną jaką ostatni warunek.
15 Funkcje NVL, NULLIF, COALESCE Funkcja NVL(wyrażenie, wartość zastępcza) - jeżeli wartością wyrażenia jest NULL, zwraca wartość zastępczą. SELECT city, nvl(state_province, brak ) from locations;
16 Funkcje NVL, NULLIF, COALESCE Funkcja NVL(wyrażenie, wartość zastępcza) - jeżeli wartością wyrażenia jest NULL, zwraca wartość zastępczą. SELECT city, nvl(state_province, brak ) from locations; COALESCE(wartość1, wartość2, wartość3,...) - służy do wyświetlania z ciągu wartości pierwszej, która nie jest NULL. Należy zachować zgodność typów wartości na liście. SELECT city, COALESCE(state,shortcut, brak ) FROM locations;
17 Funkcje NVL, NULLIF, COALESCE Funkcja NVL(wyrażenie, wartość zastępcza) - jeżeli wartością wyrażenia jest NULL, zwraca wartość zastępczą. SELECT city, nvl(state_province, brak ) from locations; COALESCE(wartość1, wartość2, wartość3,...) - służy do wyświetlania z ciągu wartości pierwszej, która nie jest NULL. Należy zachować zgodność typów wartości na liście. SELECT city, COALESCE(state,shortcut, brak ) FROM locations; Funkcja NULLIF(wartość1, wartość2) - służy do sprawdzenia czy dwie wartości są równe. Jeśli wartość1=wartość2, to zwraca NULL, przeciwnie - zwraca pierwszą z podanych wartości. SELECT e.last_name, e.job_id, NULLIF(j.job_id, e.job_id) AS "old job id" FROM employees e, job_history j WHERE e.employee_id = j.employee_id;
18 Wyrażenie CASE Wyrażenie CASE można stosować w dwojaki sposób: CASE wartość WHEN wartość1 THEN wyrażenie1 WHEN wartość2 THEN wyrażenie2... WHEN wartość_n THEN wyrażenie_n ELSE wartość domyślna END Powyższa forma odpowiada zaprezentowanej wcześniej funkcji DECODE (klauzula ELSE... nie jest wymagana).
19 Wyrażenie CASE Wyrażenie CASE można stosować w dwojaki sposób: CASE wartość WHEN wartość1 THEN wyrażenie1 WHEN wartość2 THEN wyrażenie2... WHEN wartość_n THEN wyrażenie_n ELSE wartość domyślna END Przykład: SELECT last_name, salary, CASE job_id WHEN AD_PRESS THEN salary*0.2 WHEN AD_VP THEN salary*0.15 WHEN FI_MGR THEN salary *0.1 ELSE 0 END AS premia from employees;
20 Wyrażenie CASE W drugiej formie można stosować CASE jako instrukcję warunkową: CASE WHEN warunek1 THEN wyrażenie1 WHEN warunek2 THEN wyrażenie2... ELSE wyrażenie_else END Powyższa konstrukcja zwróci wartość wyrażenia1, jeżeli warunek1 będzie prawdziwy, wyrażenia2, jeżeli warunek2 będzie spełniony, itd., jeżeli żaden warunek nie będzie spełniony, zwróci wartość wyrażenia_else. Klauzula ELSE nie jest wymagana. Warunki są sprawdzane zgodnie z ich kolejnością, tzn. wartość zostanie zwrócona dla pierwszego prawdziwego warunku, a dalsze warunki nie są wtedy sprawdzane.
21 Wyrażenie CASE SELECT last_name, department_id, CASE WHEN department_id IN (60, 210, 230) THEN IT WHEN department_id =20 THEN Marketing WHEN department_id =30 THEN Sprzedaż ELSE inni END AS "dział" FROM employees ORDER BY 2;
22 Wyrażenie CASE Przykład niewłaściwej kolejności warunków w CASE: SELECT last_name, salary, CASE WHEN salary >5000 THEN ok WHEN salary > THEN super ELSE kiepsko END FROM employees; Drugi warunek salary > nigdy nie będzie sprawdzany!
23 Wyrażenie CASE Przykład niewłaściwej kolejności warunków w CASE: SELECT last_name, salary, CASE WHEN salary >5000 THEN ok WHEN salary > THEN super ELSE kiepsko END FROM employees; Drugi warunek salary > nigdy nie będzie sprawdzany! Poprawnie powinno być: SELECT last_name, salary, CASE WHEN salary >10000 THEN super WHEN salary > 5000 THEN ok ELSE kiepsko END FROM employees;
24 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 GROUB 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.
25 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.
26 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.
27 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.
28 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.
29 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
30 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.
31 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 ;
32 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 ;
33 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;
34 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;
35 Operatory zbiorowe: UNION, INTERSECT, MINUS INTERSECT: zwraca część wspólną zbiorów wierszy z dwóch lub więcej zapytań.
36 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;
37 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;
38 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;
39 Operatory zbiorowe: UNION, INTERSECT, MINUS MINUS: tworzy różnicę zbiorów wierszy z dwóch zapytań.
40 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
41 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 )
42 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.
43 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.
44 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.
45 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;
46 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;
47 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);
48 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
49 Złaczenia
50 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.
51 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.
52 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.
53 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;
54 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;
55 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);
56 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.
57 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).
58 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).
59 Zapytania hierarchiczne Aby skonstruować drzewo tej hierarchii, używamy polecenia CONNECT BY PRIOR: SELECT (LPad(,5*(LEVEL-1))) last_name first_name FROM employees START WITH manager_id IS NULL CONNECT BY PRIOR employee_id=manager_id;
60 Zapytania hierarchiczne Aby skonstruować drzewo tej hierarchii, używamy polecenia CONNECT BY PRIOR: 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).
61 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.
62 Zapytania hierarchiczne Sortowanie oraz grupowanie zaburza wyniki zapytania hierarchicznego. 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 sprawdza, czy dany wiersz (rekord) jest liściem (tzn. nie ma już wierszy podrzędnych); 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.
Grupowanie i funkcje agregacji
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
Bardziej szczegółowoosiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy niż zadeklarowana długość, zostaje ucięty z prawej strony.
Funkcje jednowierszowe. Upper: Zamienia wszystkie litery na wielkie. Lower: Zamienia wszystkie litery na małe. Initcap: Zwiększa pierwsze litery wszystkich wyrazów. np.select initcap( ola, ala ) from dual;
Bardziej szczegółowoGrupowanie 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ółowoBazy danych 2. Anna Fiedorowicz Wydział Matematyki, Informatyki i Ekonometrii
Bazy danych 2 Anna Fiedorowicz Wydział Matematyki, Informatyki i Ekonometrii 24.02.2016 Literatura 1. S. Urman, R. Hardman, M. McLaughlin, Oracle Database 10g. Programowanie w języku PL/SQL, Helion, 2007.
Bardziej szczegółowoAliasy 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ółowoPL/SQL. Funkcje wbudowane
Slajd 1 PL/SQL Opis funkcji SQL PL/SQL(funkcje SQL) M. Rakowski - WSISiZ 1 Slajd 2 Funkcje wbudowane Funkcje wbudowane mają za zadanie umożliwić bardziej zaawansowane operowanie danymi. Funkcje operacji
Bardziej szczegółowoJę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ółowoFunkcje. 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ółowoBazy danych w aplikacjach internetowych
Literatura Bazy danych w aplikacjach internetowych Anna Fiedorowicz Wydział Matematyki, Informatyki i Ekonometrii 10.10.2016 1. S. Urman, R. Hardman, M. McLaughlin, Oracle Database 10g. Programowanie w
Bardziej szczegółowo3. 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ółowoWybó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ółowoSzkolenie 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ółowoAutor: 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ółowo1 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ółowoWstę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ółowoJęzyk SQL. Rozdział 3. Zaawansowana selekcja danych
Język SQL. Rozdział 3. Zaawansowana selekcja danych Selekcja wg wartości elementów czasowych, ciągów znaków i liczb. Konstrukcja warunkowa. 1 Funkcje Przekształcają dane, pobrane przez polecenie SQL, lub
Bardziej szczegółowoWykł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ółowoFunkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe
Funkcje Rozdział 3 Funkcje Funkcje wierszowe (funkcje znakowe, funkcje liczbowe, funkcje operujące na datach, funkcje konwersji, funkcje polimorficzne), funkcje grupowe, podział relacji na grupy, klauzule
Bardziej szczegółowoPODZAPYTANIE (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ółowoZarzadzanie 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ółowoPL/SQL. Część 1 Oracle SQL. Piotr Medoń
PL/SQL Część 1 Oracle SQL Piotr Medoń Cele Różnice w budowie zapytań bazodanowych pomiędzy bazami SQL Server oraz Oracle Standardowe funkcje Oracle SQL 2 Wprowadzenie do SQL SQL (Structured Query Language)
Bardziej szczegółowoSELECT * 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ółowoTechnologie 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ółowoSQL (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ółowoZłą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ółowoPodstawy 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ółowoMarek 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ółowoWykład 8 Implementacja języka SQL w systemach baz danych Oracle specyficzne konstrukcje i funkcje Oracle SQL, funkcje numeryczne, znakowe, daty i
Wykład 8 Implementacja języka SQL w systemach baz danych Oracle specyficzne konstrukcje i funkcje Oracle SQL, funkcje numeryczne, znakowe, daty i czasu, parametryzacja zapytao. I. Wybrane specyficzne funkcje
Bardziej szczegółowoJę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ółowoZagadnienia podstawowe
Zagadnienia podstawowe Każdy wiersz w tabeli jest unikalnie identyfikowany przez klucz główny (PK). Możesz logicznie powiązać dane z wielu tabel za pomocą klucza obcego (FK). Nazwa Tabeli: PRACOWNICY Nazwa
Bardziej szczegółowoPodzapytania. 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ółowoOracle11g: 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ółowoLista 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ółowoPodzapytania. 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ółowoLaboratorium 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ółowoPodstawy 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ółowoBAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza
BAZY DANYCH Microsoft Access JĘZYK ZAPYTAŃ BAZ DANYCH SQL Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii
Bardziej szczegółowoPrzestrzenne 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ółowoSQL - 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ółowoWprowadzenie 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ółowoInformatyka 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ółowoPodstawy 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ółowoMicrosoft 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ółowoopisuje 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ółowoPodzapytania. 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ółowoWykł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ółowoSQL i PL/SQL podstawy
O Oracle ludzkim głosem SQL i PL/SQL podstawy Andrzej Klusiewicz \ Podstawy SQL i PL/SQL. Bezpłatny e-book wersja: 1.1 06-05-2013 www.jsystems.pl str. 1/140 Spis treści O Oracle ludzkim głosem...1 Licencja
Bardziej szczegółowoPrzydatne 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ółowoSystemy 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ółowoZł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ółowoSQL 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Ć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ółowoMarek 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ółowoBazy danych SQL Server 2005
Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może
Bardziej szczegółowoWprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2
Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone
Bardziej szczegółowoPaweł 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ółowoWspół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ółowoZadania 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ółowoWstę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ółowoWspół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ółowoBazy 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ółowoSQL - 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ółowoKwerendy (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ółowoTechnologie 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ółowoSQL 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ółowoSQL, 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ółowoOLAP 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ółowoSpis treści. 1 Kraj/region i język Ustawienia regionalne Liczby Waluta Czas i data Inne...
2 Spis treści 1 Kraj/region i język 4 1.1 Ustawienia regionalne................................... 4 1.2 Liczby............................................ 4 1.3 Waluta............................................
Bardziej szczegółowoKonstruowanie 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ółowoRelacyjne 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ółowoa) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)
Ćwiczenia MS Access/SQL I. Zadania podstawowe 1. Wyświetlanie zawartości tabeli a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty). ; b) Polecenie: Wyświetl dane (wszystkie
Bardziej szczegółowoBazy 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ółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może
Bardziej szczegółowoPrzykł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ółowo1. 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ółowoBazy 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ółowoGrupowanie 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ółowoBazy 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ółowoWstę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ółowoJę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ółowoIntegralność 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ółowoZadania 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ółowoPodstawy 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ółowoLaboratorium 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ółowoOracle 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 1 Wprowadzenie Dostęp do bazy danych Program SQL*Plus Podstawy PL/SQL - 2 - Wprowadzenie Dlaczego warto uczyć się o Oracle u? Oracle
Bardziej szczegółowoRelacyjne 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ółowoKiedy i czy konieczne?
Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle
Bardziej szczegółowoLaboratorium 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ółowoPodstawy 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ółowoBazy 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ółowoPodstawowe 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ółowoBazy 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ółowo1 Wprowadzenie do funkcji
Materiały do laboratoriów z przedmiotu Bazy danych 1 1 Wprowadzenie do funkcji Podział funkcji ze względu na liczbę wierszy: jednowierszowe (operujące na ciągach znaków, matematyczne, operujące na datach,
Bardziej szczegółowoPodzapytania. 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ółowoRef. 7 - Język SQL - polecenia DDL i DML
Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość
Bardziej szczegółowoJę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ółowoWprowadzenie do SQL Użycie kwerend i SQL
Wprowadzenie do SQL Język SQL w programie Access. Kwerenda wybierająca w języku SQL. Typy danych w języku SQL. Wprowadzenie do SQL Użycie kwerend i SQL Funkcjonowanie współczesnych systemów relacyjnych
Bardziej szczegółowoJę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