620 likes | 794 Views
„Relacyjne Bazy Danych (Oracle) ” Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt.
E N D
„Relacyjne Bazy Danych (Oracle)” Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. „Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych” Prezentacja dystrybuowana jest bezpłatnie Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 www.kapitalludzki.p.lodz.pl
SELECT Projection Selection Table 1 Table 1 Join Table 2 Table 1
SELECT Kwerenda SELECT służy do pobierania informacji z bazy danych spełniających podane kryteria SELECT ename,sal FROM emp ename,sal – lista kolumn * - wszystkie kolumny emp – nazwa tabeli
Kwerendy Kwerenda SELECT
Ograniczanie wierszy SELECT *FROM ProductWHERE category=‘Gadgets’
Ograniczanie wierszy SELECT PName, Price, ManufacturerFROM ProductWHERE Price > 100
Ograniczanie wierszy Klauzula WHERE pozwala na ograniczanie wyników zapytania do wierszy spełniających kryteria SELECT * FROM emp WHERE empno>7700
Ograniczanie wierszy Klauzula WHERE Klauzulę umieszczamy po klauzuli FROM Warunek w klauzuli WHERE może składać się z wielu części SELECT * FROM emp WHERE empno>7700 AND empno<7900
Wyrażenia arytmetyczne SELECT last_name, salary, salary + 300FROM employees;
Wyrażenia arytmetyczne SELECT last_name, 12*salary*commission_pctFROM employees;
Ograniczanie wierszy Warunki można grupować używając nawiasów SELECT * FROM emp WHERE (empno>7700 AND empno<7900) OR empno=7934;
Ograniczanie wierszy Podstawowe operatory algebraiczne „=” równy „>” większy niż „<” mniejszy niż „>=” większy bądź równy „<=” mniejszy bądź równy „<>” różny
Ograniczanie wierszy Inne operatory BETWEEN – analogicznie do „>” AND „<” SELECT * FROM emp WHERE sal BETWEEN 1500 AND 2000
Ograniczanie wierszy Operator IN SELECT * FROM emp WHERE sal IN (1500,1600,3000,950);
Ograniczanie wierszy Operator LIKE Pozwala sprawdzić wzorzec wartości: „%” oznacza dowolny ciąg znaków, „_” oznacza jeden znak SELECT * FROM emp WHERE ename LIKE '%R'
Ograniczanie wierszy Operator LIKE – przykłady ename like '%ER' ename LIKE '%E%' ename LIKE '%E_'
Ograniczanie wierszy Warunek wykorzystany po klauzuli WHERE jest ewaluowany przez bazę danych, zwrócone zostaną wiersze, dla których dany warunek jest prawdziwy Warunek nie musi zawierać nazw kolumn np: SELECT * FROM emp WHERE 1=1 Warunek zawsze prawdziwy
Tabela DUAL DUAL – metatabela w bazie danych Oracle służąca do wykonywania prostych operacji SELECT 2+2 FROM DUAL
Wartość specjalna NULL NULL w danej kolumnie oznacza brak wartości Wartość NULL nie oznacza ani pustego ciągu znaków dla kolumn tekstowych ani wartości zero dla kolumn liczbowych NULL <> NULL
Ograniczanie kolumn Listę zwróconych kolumn można ograniczyć wpisując odpowiednie nazwy po słowie kluczowym SELECT SELECT ename,job,sal FROM emp WHERE empno>7700;
Ograniczanie wyników Operatory logiczne – pozwalają na łączenie wyników wielu warunków AND – oba warunki muszą być spełnione OR – jeden z warunków musi być spełniony NOT – operator jednoargumentowy – negowanie listy wyników
SELECT DISTINCT Klauzula DISTINCT pozwala na wybranie tylko wierszy zawierających unikatową wartość jednej lub więcej kolumn SELECT DISTINCT job FROM emp;
SELECT DISTINCT Klauzula DISTINCT zastosowana do wielu kolumn SELECT DISTINCT job,sal FROM emp;
Użycie operatora IS NULL SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL;
Aliasy SELECT last_name "Name" , salary*12 AS "Annual Salary”FROM employees;
Funkcje Funkcje pozwalają na zmianę sposobu prezentacji wyniku, lub wykonanie operacji na jednej lub więcej kolumnach przed prezentacją wyniku SELECT ename, LENGTH(job) FROM emp;
Funkcje Funkcje można stosować do kolumn, większość funkcji występuje tylko dla kolumn danego typu Wywołanie funkcji na typie danych, dla którego nie została ona określona powoduje błąd
Funkcje Wybrane funkcje zdefiniowane dla ciągów znaków CONCAT (wartość1, wartość2) SUBSTR(wartość, początek, koniec) LENGTH(wartość) LPAD(wartość,długość,znak)/RPAD(wartość,długość,znak) UPPER(wartość)/LOWER(wartość) REVERSE(wartość) INITCAP(wartość)
Funkcje SELECT last_name ||' is a '||job_id AS "Employee Details”FROM employees;
Funkcje Wybrane funkcje dla wartości liczbowych ROUND(wartość,liczba_znaków) TRUNC(wartość,liczba_znaków) MOD(wartość,dzielnik) SIN(wartość)/COS(wartość)/SINH(wartość)/COSH(wartość) POWER(wartość,potega)
Funkcje round(125.315) = 125 round(125.315, 0) = 125 round(125.315, 1) =125.3 round(125.315, 2) =125.32 round(125.315, 3) =125.315 round(-125.315, 2) =-125.32
Funkcje Wykorzystanie funkcji przy klauzuli WHERE SELECT * FROM emp WHERE MOD(sal,200)=0;
Sortowanie wyników Klauzula ORDER BY Klauzulę umieszczamy po klauzuli WHERE
Sortowanie wyników Można wykorzystać kilka kolumn do sortowania Można sortować rosnąco lub malejąco (ASC/DESC) SELECT * FROM emp WHERE sal>2000 ORDER BY sal ASC,ename DESC;
Agregacje Agregowanie wyników pozwala na analizę wybranych kolumn z tabeli oraz zaprezentowanie wyniku danej funkcji w postaci jednej kolumny Proste agregacje pozwalają np. na: Obliczenie średniej wartości danej kolumny Obliczenie wartości minimalnej/maksymalnej Policzenie liczby wierszy Funkcje grupujące ignorująwartości null w kolumnie.
COUNT(*) Agregacja COUNT(*) zwraca liczbę wierszy pasujących do danego zapytania Agregacja ta może skanować daną tabelę, bądź indeks, jej wykorzystanie na dużych tabelach może być powolne SELECT COUNT(*) FROM emp WHERE sal>2000;
MIN(), MAX(), AVG() Korzystając z agregacji MIN,MAX lub AVG można policzyć minimalną, maksymalną bądź średnią wartość danej kolumny pasującej do zapytania
Grupowanie danych SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column];
Grupowanie danych SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ;
Grupowanie danych SELECT department_id dept_id, job_id, AVG(salary) FROM employees GROUP BY department_id, job_id ;
Grupowanie danych Działanie HAVING odrzuca grup niespełniające warunku 1. Wiersze są grupowane. 2. Funkcja grupująca jest zastosowana. Grupy spełniające warunek z klauzuli HAVING są wyświetlane. SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column];
Grupowanie danych SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVING MAX(salary)>10000 ;
Funkcja NVL Konwertuje null do wartości podanej Dane mogą być liczbami, tekstem lub datami. NVL(commission_pct,0) NVL(job_id,‘Bez pracy')
Funkcja NVL SELECT ename, sal, NVL(comm, 0), (sal*12) + (sal*12*NVL(comm, 0)) AN_SALFROM emp;
Użycie wyrażenia CASE Dają możliwość użycia konstrukcji typu IF-THEN-ELSE w poleceniu SQL CASE expr WHEN comparison_expr1 THEN return_expr1 [WHEN comparison_expr2 THEN return_expr2 WHENcomparison_exprnTHENreturn_exprn ELSE else_expr] END
Użycie wyrażenia CASE SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary END "REVISED_SALARY" FROM emp;
Uzyskiwanie danych z wielu tabel Product Company