Bazy danych Oracle i język SQL
- Wprowadzenie do baz danych:
- podstawowe pojęcia związane z bazami danych,
- relacyjny model danych,
- transakcyjne bazy danych.
- Kilka słów o Oracle:
- architektura DBMS,
- wersje i licencje,
- narzędzia sqlplus i SQL Developer,
- konfiguracja środowiska pracy.
- Tworzenie prostych zapytań SQL
- wyświetlanie danych pobranych z bazy,
- wybór kolumn (SELECT),
- wyrażenia arytmetyczne, łączenie napisów, wywoływanie wbudowanych funkcji,
- używanie alternatywnych nazw kolumn – aliasy,
- sortowanie wyników (ORDER BY),
- ograniczanie liczby zwróconych wierszy (FETCH i starsze podejścia).
- eliminacja powtarzających się wierszy (DISTINCT).
- Filtrowanie rekordów (WHERE)
- operatory logiczne łączenia i negacji warunków,
- operatory porównań (>, >=, =, <, <=, <>, !=),
- operator zakresu (BETWEEN),
- operator przynależności (IN),
- podstawowe wzorce tekstowe (LIKE).
- Funkcje i operacje na wartościach
- funkcje warunkowe, operatory logiczne (CASE, DECODE),
- wartość NULL i jej obsługa w bazie, logika trójwartościowa,
- funkcje dotyczące NULL: COALESCE, NVL, NVL2, NULLIF,
- operacje związane z datami i czasem,
- operacje na typach znakowych,
- funkcje numeryczne,
- niejawna konwersja typów,
- funkcje związane z konwersją typów: TO_CHAR, TO_DATE, TO_NUMBER,
- użycie funkcji w różnych miejscach kwerendy,
- substytucja zmiennych w czasie wykonania kwerendy.
- Agregacja danych
- funkcje agregujące,
- grupowanie danych i zastosowania (GROUP BY)
- filtrowanie wierszy po agregacji (HAVING),
- klauzule grupowania wielopoziomowego (CUBE, ROLLUP, GROUPING SETS)
- Operacje na zbiorach
- operatory UNION, UNION ALL, MINUS, INTERSECT,
- kontrola kolejności wierszy zwróconych przez operacje na zbiorach.
- Łączenie zbiorów danych:
- dostępne kryteria złączeń, złączenia typu equijoin, theta-join, złączenia naturalne,
- składnia Oracle i ANSI SQL,
- złączenia krzyżowe,
- złączenia zewnętrzne,
- złączenia typu selfjoin,
- złączenia typu antijoin.
- Kwerendy zagnieżdżone (podzapytania)
- zakres stosowania podzapytań,
- podzapytania skalarne,
- podzapytania wielowierszowe,
- podzapytania skorelowane i nieskorelowane.
- Komendy DML (Data Manipulation Language) i transakcje
- wstawianie wierszy,
- usuwanie danych z bazy,
- zmiana danych w bazie,
- zakres działania ograniczeń podczas wykonywania operacji DML
- Zarządzanie transakcjami
- zatwierdzanie, wycofywanie transakcji, punkty zapisu,
- blokady przy współbieżnym wykonywaniu operacji,
- zakleszczenia.
- Komendy DDL (Data Definition Language)
- tworzenie, usuwanie i modyfikacja tabel, typy kolumn,
- ograniczenia, klucze główne i obce,
- tworzenie widoków prostych i złożonych,
- schematy w bazie danych,
- inne obiekty bazodanowe: indeksy, synonimy (publiczne i prywatne), sekwencje.
- Projektowanie baz danych
- podstawowe informacje o normalizacji,
- normalizacja a efektywność,
- dobieranie odpowiednich typów danych,
- dobre praktyki tworzenia i nazewnictwa obiektów,
- użytkownicy, role i uprawnienia – podstawy.
Programowanie w Oracle
- Wprowadzenie do programowania PL/SQL:
- jednostki leksykalne i konwencje,
- bloki anonimowe i programy,
- blok wykonywalny i blok deklaracji,
- uruchamianie bloków anonimowych i programów.
- Definiowanie i obsługa zmiennych:
- deklaracja i zmiana wartości zmiennych,
- wykorzystanie standardowych typów danych w zmiennych,
- atrybuty %TYPE i %ROWTYPE,
- praca z typami złożonymi, własne typy złożone,
- rekordy, tabele i tabele rekordów,
- stałe,
- Programowanie strukturalne:,
- instrukcje sterujące: warunki, pętle.
- Klauzula INTO
- użycie funkcji SQL,
- obsługa wyjątków, typowe wyjątki wbudowane,
- tworzenie własnych wyjątków,
- etykiety, zasięgi widoczności nazw, bloki zagnieżdżone.
- Kursory:
- kursory niejawne i jawne,
- kursory z parametrami,
- blokowanie wierszy (klauzula FOR UPDATE),
- klauzula WHERE CURRENT OF.
- Tworzenie programów:
- procedury składowane,
- tworzenie funkcji z użyciem ich w kodzie SQL,
- parametry w programach ,
- sposoby wywoływania programów.
- Pakiety:
- budowa pakietu i zależności
- uruchamianie pakietów,
- polimorfizm w pakietach (overloading),
- pakiety wbudowane.
- Wyzwalacze (triggers):
- wyzwalacze DML na poziomie polecenia i wiersza ,
- wyzwalacze DML działające na widokach,
- wyzwalacze na poleceniach DDL,
- wyzwalacze na wydarzeniach systemowych.
- Dynamiczny SQL:
- potrzeba użycia dynamicznego SQL-a, przeciwwskazania,
- natywny dynamiczny SQL,
- pakiet DBMS_SQL.