Oracle Database 12c i SQL. Programowanie - ebook
Oracle Database 12c i SQL. Programowanie - ebook
Twój podręcznik użytkownika bazy Oracle!
Baza danych Oracle to jeden z najpopularniejszych systemów bazodanowych, używany w wielu firmach różnej wielkości. Popularność tej bazy sprawiła, że na całym świecie w jej tabelach znajdują się gigantyczne ilości danych — o kluczowym znaczeniu dla działania przedsiębiorstw. Jeżeli chcesz w pełni wykorzystać potencjał bazy danych Oracle, to trafiłeś na doskonałą książkę.
Sięgnij po nią i poznaj możliwości zapytań SQL oraz programów PL/SQL. W kolejnych rozdziałach nauczysz się budować zapytania oraz podzapytania SQL, tworzyć tabele, sekwencje, indeksy oraz widoki, a ponadto korzystać z funkcji wbudowanych w język. Po tym wstępie przejdziesz do zaawansowanych tematów związanych z analizą danych oraz uprawnieniami. W książce znajdziesz też dokładny opis języka PL/SQL, poznasz jego składnię oraz możliwości. Zwróć uwagę na ostatnie rozdziały, poświęcone optymalizacji SQL oraz korzystaniu z XML. To doskonała lektura dla wszystkich użytkowników bazy danych oraz osób przygotowujących się do egzaminów związanych z bazą danych Oracle.
- Wykorzystaj instrukcje SQL by uzyskać dostęp do bazy danych Oracle
- Pracuj z SQL*Plus i SQL Developer
- Pisz programy PL/SQL
- Twórz tabele, sekwencje, indeksy, perspektywy i wyzwalacze
- Projektuj zaawansowane zapytania zawierające złożone obliczenia
- Twórz obiekty bazy danych obsługujące abstrakcyjne dane
- Korzystaj z dat, datowników i interwałów czasowych
- Twórz role użytkowników i nadawaj uprawnienia
- Obsługuj pliki multimedialne za pomocą dużych obiektów
- Optymalizuj instrukcje SQL tak, by wykonywały się szybciej
- Twórz, przetwarzaj i składuj dane XML
Kompendium wiedzy na temat bazy danych Oracle!
Spis treści
1. Wprowadzenie (23)
- Czym jest relacyjna baza danych? (23)
- Wstęp do SQL (24)
- Używanie SQL*Plus (25)
- Uruchamianie SQL*Plus (25)
- Uruchamianie SQL*Plus z wiersza poleceń (26)
- Wykonywanie instrukcji SELECT za pomocą SQL*Plus (26)
- SQL Developer (27)
- Tworzenie schematu bazy danych sklepu (30)
- Zawartość skryptu (30)
- Uruchamianie skryptu (31)
- Instrukcje DDL używane do tworzenia schematu bazy danych sklepu (32)
- Dodawanie, modyfikowanie i usuwanie wierszy (38)
- Dodawanie wiersza do tabeli (38)
- Modyfikowanie istniejącego wiersza w tabeli (39)
- Usuwanie wiersza z tabeli (40)
- Łączenie z bazą danych i rozłączanie (40)
- Kończenie pracy SQL*Plus (40)
- Wprowadzenie do Oracle PL/SQL (41)
- Podsumowanie (41)
2. Pobieranie informacji z tabel bazy danych (43)
- Wykonywanie instrukcji SELECT dla jednej tabeli (43)
- Pobieranie wszystkich kolumn z tabeli (44)
- Wykorzystanie klauzuli WHERE do wskazywania wierszy do pobrania (44)
- Identyfikatory wierszy (44)
- Numery wierszy (45)
- Wykonywanie działań arytmetycznych (45)
- Wykonywanie obliczeń na datach (46)
- Korzystanie z kolumn w obliczeniach (47)
- Kolejność wykonywania działań (48)
- Używanie aliasów kolumn (48)
- Łączenie wartości z kolumn za pomocą konkatenacji (49)
- Wartości null (49)
- Wyświetlanie unikatowych wierszy (50)
- Porównywanie wartości (51)
- Operator <> (51)
- Operator > (52)
- Operator <= (52)
- Operator ANY (52)
- Operator ALL (52)
- Korzystanie z operatorów SQL (53)
- Operator LIKE (53)
- Operator IN (54)
- Operator BETWEEN (55)
- Operatory logiczne (55)
- Operator AND (55)
- Operator OR (56)
- Następstwo operatorów (56)
- Sortowanie wierszy za pomocą klauzuli ORDER BY (57)
- Instrukcje SELECT wykorzystujące dwie tabele (58)
- Używanie aliasów tabel (59)
- Iloczyny kartezjańskie (60)
- Instrukcje SELECT wykorzystujące więcej niż dwie tabele (60)
- Warunki złączenia i typy złączeń (61)
- Nierównozłączenia (61)
- Złączenia zewnętrzne (62)
- Złączenia własne (65)
- Wykonywanie złączeń za pomocą składni SQL/92 (66)
- Wykonywanie złączeń wewnętrznych dwóch tabel z wykorzystaniem składni SQL/92 (66)
- Upraszczanie złączeń za pomocą słowa kluczowego USING (67)
- Wykonywanie złączeń wewnętrznych obejmujących więcej niż dwie tabele (SQL/92) (67)
- Wykonywanie złączeń wewnętrznych z użyciem wielu kolumn (SQL/92) (68)
- Wykonywanie złączeń zewnętrznych z użyciem składni SQL/92 (68)
- Wykonywanie złączeń własnych z użyciem składni SQL/92 (69)
- Wykonywanie złączeń krzyżowych z użyciem składni SQL/92 (70)
- Podsumowanie (70)
3. SQL*Plus (71)
- Przeglądanie struktury tabeli (71)
- Edycja instrukcji SQL (72)
- Zapisywanie, odczytywanie i uruchamianie plików (73)
- Formatowanie kolumn (76)
- Ustawianie rozmiaru strony (77)
- Ustawianie rozmiaru wiersza (78)
- Czyszczenie formatowania kolumny (78)
- Używanie zmiennych (79)
- Zmienne tymczasowe (79)
- Zmienne zdefiniowane (81)
- Tworzenie prostych raportów (83)
- Używanie zmiennych tymczasowych w skrypcie (83)
- Używanie zmiennych zdefiniowanych w skrypcie (84)
- Przesyłanie wartości do zmiennej w skrypcie (84)
- Dodawanie nagłówka i stopki (85)
- Obliczanie sum pośrednich (86)
- Uzyskiwanie pomocy od SQL*Plus (87)
- Automatyczne generowanie instrukcji SQL (88)
- Kończenie połączenia z bazą danych i pracy SQL*Plus (88)
- Podsumowanie (89)
4. Proste funkcje (91)
- Typy funkcji (91)
- Funkcje jednowierszowe (91)
- Funkcje znakowe (92)
- Funkcje numeryczne (98)
- Funkcje konwertujące (103)
- Funkcje wyrażeń regularnych (112)
- Funkcje agregujące (117)
- AVG() (118)
- COUNT() (119)
- MAX() i MIN() (119)
- STDDEV() (120)
- SUM() (120)
- VARIANCE() (120)
- Grupowanie wierszy (120)
- Grupowanie wierszy za pomocą klauzuli GROUP BY (120)
- Nieprawidłowe użycie funkcji agregujących (123)
- Filtrowanie grup wierszy za pomocą klauzuli HAVING (124)
- Jednoczesne używanie klauzul WHERE i GROUP BY (124)
- Jednoczesne używanie klauzul WHERE, GROUP BY i HAVING (125)
- Podsumowanie (125)
5. Składowanie oraz przetwarzanie dat i czasu (127)
- Proste przykłady składowania i pobierania dat (127)
- Konwertowanie typów DataGodzina za pomocą funkcji TO_CHAR() i TO_DATE() (128)
- Konwersja daty i czasu na napis za pomocą funkcji TO_CHAR() (128)
- Konwersja napisu na wyrażenie DataGodzina za pomocą funkcji TO_DATE() (132)
- Ustawianie domyślnego formatu daty (134)
- Jak Oracle interpretuje lata dwucyfrowe? (135)
- Użycie formatu YY (135)
- Użycie formatu RR (136)
- Funkcje operujące na datach i godzinach (137)
- ADD_MONTHS() (138)
- LAST_DAY() (138)
- MONTHS_BETWEEN() (138)
- NEXT_DAY() (139)
- ROUND() (139)
- SYSDATE (140)
- TRUNC() (140)
- Strefy czasowe (140)
- Funkcje operujące na strefach czasowych (141)
- Strefa czasowa bazy danych i strefa czasowa sesji (141)
- Uzyskiwanie przesunięć strefy czasowej (142)
- Uzyskiwanie nazw stref czasowych (143)
- Konwertowanie wyrażenia DataGodzina z jednej strefy czasowej na inną (143)
- Datowniki (znaczniki czasu) (143)
- Typy datowników (144)
- Funkcje operujące na znacznikach czasu (147)
- Interwały czasowe (151)
- Typ INTERVAL YEAR TO MONTH (152)
- Typ INTERVAL DAY TO SECOND (153)
- Funkcje operujące na interwałach (155)
- Podsumowanie (156)
6. Podzapytania (157)
- Rodzaje podzapytań (157)
- Pisanie podzapytań jednowierszowych (157)
- Podzapytania w klauzuli WHERE (157)
- Użycie innych operatorów jednowierszowych (158)
- Podzapytania w klauzuli HAVING (159)
- Podzapytania w klauzuli FROM (widoki wbudowane) (160)
- Błędy, które można napotkać (160)
- Pisanie podzapytań wielowierszowych (161)
- Użycie operatora IN z podzapytaniem wielowierszowym (161)
- Użycie operatora ANY z podzapytaniem wielowierszowym (162)
- Użycie operatora ALL z podzapytaniem wielowierszowym (163)
- Pisanie podzapytań wielokolumnowych (163)
- Pisanie podzapytań skorelowanych (163)
- Przykład podzapytania skorelowanego (163)
- Użycie operatorów EXISTS i NOT EXISTS z podzapytaniem skorelowanym (164)
- Pisanie zagnieżdżonych podzapytań (166)
- Pisanie instrukcji UPDATE i DELETE zawierających podzapytania (167)
- Pisanie instrukcji UPDATE zawierającej podzapytanie (167)
- Pisanie instrukcji DELETE zawierającej podzapytanie (168)
- Przygotowywanie podzapytań (168)
- Podsumowanie (169)
7. Zapytania zaawansowane (171)
- Operatory zestawu (171)
- Przykładowe tabele (171)
- Operator UNION ALL (172)
- Operator UNION (173)
- Operator INTERSECT (174)
- Operator MINUS (174)
- Łączenie operatorów zestawu (175)
- Użycie funkcji TRANSLATE() (176)
- Użycie funkcji DECODE() (177)
- Użycie wyrażenia CASE (178)
- Proste wyrażenia CASE (179)
- Przeszukiwane wyrażenia CASE (179)
- Zapytania hierarchiczne (181)
- Przykładowe dane (181)
- Zastosowanie klauzul CONNECT BY i START WITH (182)
- Użycie pseudokolumny LEVEL (183)
- Formatowanie wyników zapytania hierarchicznego (183)
- Rozpoczynanie od węzła innego niż główny (184)
- Użycie podzapytania w klauzuli START WITH (185)
- Poruszanie się po drzewie w górę (185)
- Eliminowanie węzłów i gałęzi z zapytania hierarchicznego (185)
- Umieszczanie innych warunków w zapytaniu hierarchicznym (186)
- Zapytania hierarchiczne wykorzystujące rekurencyjne podzapytania przygotowywane (187)
- Klauzule ROLLUP i CUBE (190)
- Przykładowe tabele (190)
- Użycie klauzuli ROLLUP (192)
- Klauzula CUBE (194)
- Funkcja GROUPING() (195)
- Klauzula GROUPING SETS (197)
- Użycie funkcji GROUPING_ID() (198)
- Kilkukrotne użycie kolumny w klauzuli GROUP BY (199)
- Użycie funkcji GROUP_ID() (200)
- Użycie CROSS APPLY i OUTER APPLY (201)
- CROSS APPLY (201)
- OUTER APPLY (202)
- LATERAL (202)
- Podsumowanie (203)
8. Analiza danych (205)
- Funkcje analityczne (205)
- Przykładowa tabela (205)
- Użycie funkcji klasyfikujących (206)
- Użycie odwrotnych funkcji rankingowych (212)
- Użycie funkcji okna (212)
- Funkcje raportujące (218)
- Użycie funkcji LAG() i LEAD() (220)
- Użycie funkcji FIRST i LAST (221)
- Użycie funkcji regresji liniowej (221)
- Użycie funkcji hipotetycznego rankingu i rozkładu (222)
- Użycie klauzuli MODEL (223)
- Przykład zastosowania klauzuli MODEL (223)
- Dostęp do komórek za pomocą zapisu pozycyjnego i symbolicznego (224)
- Uzyskiwanie dostępu do zakresu komórek za pomocą BETWEEN i AND (225)
- Sięganie do wszystkich komórek za pomocą ANY i IS ANY (225)
- Pobieranie bieżącej wartości wymiaru za pomocą funkcji CURRENTV() (226)
- Uzyskiwanie dostępu do komórek za pomocą pętli FOR (227)
- Obsługa wartości NULL i brakujących (227)
- Modyfikowanie istniejących komórek (229)
- Użycie klauzul PIVOT i UNPIVOT (230)
- Prosty przykład klauzuli PIVOT (230)
- Przestawianie w oparciu o wiele kolumn (231)
- Użycie kilku funkcji agregujących w przestawieniu (232)
- Użycie klauzuli UNPIVOT (233)
- Zapytania o określoną liczbę wierszy (234)
- Użycie klauzuli FETCH FIRST (234)
- Użycie klauzuli OFFSET (235)
- Użycie klauzuli PERCENT (236)
- Użycie klauzuli WITH TIES (236)
- Odnajdywanie wzorców w danych (237)
- Odnajdywanie wzorców formacji typu V w danych z tabeli all_sales2 (237)
- Odnajdywanie formacji typu W w danych z tabeli all_sales3 (240)
- Odnajdywanie formacji typu V w tabeli all_sales3 (241)
- Podsumowanie (242)
9. Zmienianie zawartości tabeli (243)
- Wstawianie wierszy za pomocą instrukcji INSERT (243)
- Pomijanie listy kolumn (244)
- Określanie wartości NULL dla kolumny (244)
- Umieszczanie pojedynczych i podwójnych cudzysłowów w wartościach kolumn (245)
- Kopiowanie wierszy z jednej tabeli do innej (245)
- Modyfikowanie wierszy za pomocą instrukcji UPDATE (245)
- Klauzula RETURNING (246)
- Usuwanie wierszy za pomocą instrukcji DELETE (246)
- Integralność bazy danych (247)
- Wymuszanie więzów klucza głównego (247)
- Wymuszanie więzów kluczy obcych (247)
- Użycie wartości domyślnych (248)
- Scalanie wierszy za pomocą instrukcji MERGE (249)
- Transakcje bazodanowe (251)
- Zatwierdzanie i wycofywanie transakcji (251)
- Rozpoczynanie i kończenie transakcji (252)
- Punkty zachowania (252)
- ACID - właściwości transakcji (254)
- Transakcje współbieżne (254)
- Blokowanie transakcji (255)
- Poziomy izolacji transakcji (256)
- Przykład transakcji SERIALIZABLE (256)
- Zapytania retrospektywne (257)
- Przyznawanie uprawnień do używania zapytań retrospektywnych (257)
- Zapytania retrospektywne w oparciu o czas (258)
- Zapytania retrospektywne z użyciem SCN (259)
- Podsumowanie (260)
10. Użytkownicy, uprawnienia i role (261)
- Bardzo krótkie wprowadzenie do przechowywania danych (261)
- Użytkownicy (262)
- Tworzenie konta użytkownika (262)
- Zmienianie hasła użytkownika (263)
- Usuwanie konta użytkownika (263)
- Uprawnienia systemowe (263)
- Przyznawanie uprawnień systemowych użytkownikowi (263)
- Sprawdzanie uprawnień systemowych przyznanych użytkownikowi (264)
- Zastosowanie uprawnień systemowych (265)
- Odbieranie uprawnień systemowych (265)
- Uprawnienia obiektowe (266)
- Przyznawanie użytkownikowi uprawnień obiektowych (266)
- Sprawdzanie przekazanych uprawnień (267)
- Sprawdzanie otrzymanych uprawnień obiektowych (268)
- Zastosowanie uprawnień obiektowych (269)
- Synonimy (270)
- Synonimy publiczne (270)
- Odbieranie uprawnień obiektowych (271)
- Role (271)
- Tworzenie ról (271)
- Przyznawanie uprawnień roli (272)
- Przyznawanie roli użytkownikowi (272)
- Sprawdzanie ról przyznanych użytkownikowi (272)
- Sprawdzanie uprawnień systemowych przyznanych roli (273)
- Sprawdzanie uprawnień obiektowych przyznanych roli (274)
- Zastosowanie uprawnień przyznanych roli (275)
- Aktywacja i deaktywacja ról (276)
- Odbieranie roli (276)
- Odbieranie uprawnień roli (276)
- Usuwanie roli (277)
- Obserwacja (277)
- Uprawnienia wymagane do przeprowadzania obserwacji (277)
- Przykłady obserwacji (277)
- Perspektywy zapisu obserwacji (279)
- Podsumowanie (279)
11. Tworzenie tabel, sekwencji, indeksów i perspektyw (281)
- Tabele (281)
- Tworzenie tabeli (281)
- Pobieranie informacji o tabelach (282)
- Uzyskiwanie informacji o kolumnach w tabeli (283)
- Zmienianie tabeli (284)
- Zmienianie nazwy tabeli (291)
- Dodawanie komentarza do tabeli (291)
- Obcinanie tabeli (292)
- Usuwanie tabeli (292)
- Typy BINARY_FLOAT i BINARY_DOUBLE (292)
- Użycie kolumn DEFAULT ON NULL (293)
- Kolumny niewidoczne (294)
- Sekwencje (296)
- Tworzenie sekwencji (296)
- Pobieranie informacji o sekwencjach (298)
- Używanie sekwencji (298)
- Wypełnianie klucza głównego z użyciem sekwencji (300)
- Określanie domyślnej wartości kolumny za pomocą sekwencji (300)
- Kolumny typu IDENTITY (301)
- Modyfikowanie sekwencji (301)
- Usuwanie sekwencji (302)
- Indeksy (302)
- Tworzenie indeksu typu B-drzewo (303)
- Tworzenie indeksów opartych na funkcjach (303)
- Pobieranie informacji o indeksach (304)
- Pobieranie informacji o indeksach kolumny (304)
- Modyfikowanie indeksu (305)
- Usuwanie indeksu (305)
- Tworzenie indeksu bitmapowego (305)
- Perspektywy (306)
- Tworzenie i używanie perspektyw (307)
- Modyfikowanie perspektywy (313)
- Usuwanie perspektywy (313)
- Używanie niewidocznych kolumn w perspektywach (313)
- Archiwa migawek (314)
- Podsumowanie (316)
12. Wprowadzenie do programowania w PL/SQL (317)
- Bloki (317)
- Zmienne i typy (319)
- Logika warunkowa (319)
- Pętle (320)
- Proste pętle (320)
- Pętle WHILE (321)
- Pętle FOR (321)
- Kursory (322)
- Krok 1. - deklarowanie zmiennych przechowujących wartości kolumn (322)
- Krok 2. - deklaracja kursora (322)
- Krok 3. - otwarcie kursora (323)
- Krok 4. - pobieranie wierszy z kursora (323)
- Krok 5. - zamknięcie kursora (323)
- Pełny przykład - product_cursor.sql (324)
- Kursory i pętle FOR (325)
- Instrukcja OPEN-FOR (325)
- Kursory bez ograniczenia (327)
- Wyjątki (328)
- Wyjątek ZERO_DIVIDE (330)
- Wyjątek DUP_VAL_ON_INDEX (330)
- Wyjątek INVALID_NUMBER (330)
- Wyjątek OTHERS (331)
- Procedury (331)
- Tworzenie procedury (332)
- Wywoływanie procedury (333)
- Uzyskiwanie informacji o procedurach (334)
- Usuwanie procedury (335)
- Przeglądanie błędów w procedurze (335)
- Funkcje (335)
- Tworzenie funkcji (336)
- Wywoływanie funkcji (336)
- Uzyskiwanie informacji o funkcjach (337)
- Usuwanie funkcji (337)
- Pakiety (337)
- Tworzenie specyfikacji pakietu (338)
- Tworzenie treści pakietu (338)
- Wywoływanie funkcji i procedur z pakietu (339)
- Uzyskiwanie informacji o funkcjach i procedurach w pakiecie (340)
- Usuwanie pakietu (340)
- Wyzwalacze (340)
- Kiedy uruchamiany jest wyzwalacz (340)
- Przygotowania do przykładu wyzwalacza (341)
- Tworzenie wyzwalacza (341)
- Uruchamianie wyzwalacza (343)
- Uzyskiwanie informacji o wyzwalaczach (343)
- Włączanie i wyłączanie wyzwalacza (345)
- Usuwanie wyzwalacza (345)
- Rozszerzenia PL/SQL (345)
- Typ SIMPLE_INTEGER (345)
- Sekwencje w PL/SQL (346)
- Generowanie natywnego kodu maszynowego z PL/SQL (347)
- Klauzula WITH (347)
- Podsumowanie (348)
13. Obiekty bazy danych (349)
- Wprowadzenie do obiektów (349)
- Uruchomienie skryptu tworzącego schemat bazy danych object_schema (350)
- Tworzenie typów obiektowych (350)
- Uzyskiwanie informacji o typach obiektowych za pomocą DESCRIBE (351)
- Użycie typów obiektowych w tabelach bazy danych (352)
- Obiekty kolumnowe (352)
- Tabele obiektowe (354)
- Identyfikatory obiektów i odwołania obiektowe (357)
- Porównywanie wartości obiektów (359)
- Użycie obiektów w PL/SQL (361)
- Funkcja get_products() (361)
- Procedura display_product() (362)
- Procedura insert_product() (363)
- Procedura update_product_price() (363)
- Funkcja get_product() (364)
- Procedura update_product() (364)
- Funkcja get_product_ref() (365)
- Procedura delete_product() (365)
- Procedura product_lifecycle() (366)
- Procedura product_lifecycle2() (367)
- Dziedziczenie typów (368)
- Uruchamianie skryptu tworzącego schemat bazy danych object_schema2 (368)
- Dziedziczenie atrybutów (369)
- Użycie podtypu zamiast typu nadrzędnego (370)
- Przykłady SQL (370)
- Przykłady PL/SQL (371)
- Obiekty NOT SUBSTITUTABLE (371)
- Inne przydatne funkcje obiektów (372)
- Funkcja IS OF() (372)
- Funkcja TREAT() (375)
- Funkcja SYS_TYPEID() (378)
- Typy obiektowe NOT INSTANTIABLE (378)
- Konstruktory definiowane przez użytkownika (379)
- Przesłanianie metod (382)
- Uogólnione wywoływanie (384)
- Uruchomienie skryptu tworzącego schemat bazy danych object_schema3 (384)
- Dziedziczenie atrybutów (384)
- Podsumowanie (385)
14. Kolekcje (387)
- Podstawowe informacje o kolekcjach (387)
- Uruchomienie skryptu tworzącego schemat bazy danych collection_schema (387)
- Tworzenie kolekcji (388)
- Tworzenie typu VARRAY (388)
- Tworzenie tabeli zagnieżdżonej (388)
- Użycie kolekcji do definiowania kolumny w tabeli (389)
- Użycie typu VARRAY do zdefiniowania kolumny w tabeli (389)
- Użycie typu tabeli zagnieżdżonej do zdefiniowania kolumny w tabeli (389)
- Uzyskiwanie informacji o kolekcjach (389)
- Uzyskiwanie informacji o tablicy VARRAY (389)
- Uzyskiwanie informacji o tabeli zagnieżdżonej (390)
- Umieszczanie elementów w kolekcji (392)
- Umieszczanie elementów w tablicy VARRAY (392)
- Umieszczanie elementów w tabeli zagnieżdżonej (392)
- Pobieranie elementów z kolekcji (392)
- Pobieranie elementów z tablicy VARRAY (393)
- Pobieranie elementów z tabeli zagnieżdżonej (393)
- Użycie funkcji TABLE() do interpretacji kolekcji jako serii wierszy (394)
- Użycie funkcji TABLE() z typem VARRAY (394)
- Użycie funkcji TABLE() z tabelą zagnieżdżoną (395)
- Modyfikowanie elementów kolekcji (395)
- Modyfikowanie elementów tablicy VARRAY (396)
- Modyfikowanie elementów tabeli zagnieżdżonej (396)
- Użycie metody mapującej do porównywania zawartości tabel zagnieżdżonych (397)
- Użycie funkcji CAST do konwersji kolekcji z jednego typu na inny (399)
- Użycie funkcji CAST() do konwersji tablicy VARRAY na tabelę zagnieżdżoną (399)
- Użycie funkcji CAST() do konwersji tabeli zagnieżdżonej na tablicę VARRAY (400)
- Użycie kolekcji w PL/SQL (400)
- Manipulowanie tablicą VARRAY (400)
- Manipulowanie tabelą zagnieżdżoną (402)
- Metody operujące na kolekcjach w PL/SQL (403)
- Kolekcje wielopoziomowe (411)
- Uruchomienie skryptu tworzącego schemat bazy danych collection_schema2 (412)
- Korzystanie z kolekcji wielopoziomowych (412)
- Rozszerzenia kolekcji wprowadzone w Oracle Database 10g (414)
- Uruchomienie skryptu tworzącego schemat bazy danych collection_schema3 (414)
- Tablice asocjacyjne (415)
- Zmienianie rozmiaru typu elementu (415)
- Zwiększanie liczby elementów w tablicy VARRAY (416)
- Użycie tablic VARRAY w tabelach tymczasowych (416)
- Użycie innej przestrzeni tabel dla tabeli składującej tabelę zagnieżdżoną (416)
- Obsługa tabel zagnieżdżonych w standardzie ANSI (417)
- Podsumowanie (424)
15. Duże obiekty (425)
- Podstawowe informacje o dużych obiektach (LOB) (425)
- Przykładowe pliki (425)
- Rodzaje dużych obiektów (426)
- Tworzenie tabel zawierających duże obiekty (427)
- Użycie dużych obiektów w SQL (428)
- Użycie obiektów CLOB i BLOB (428)
- Użycie obiektów BFILE (430)
- Użycie dużych obiektów w PL/SQL (431)
- APPEND() (433)
- CLOSE() (433)
- COMPARE() (434)
- COPY() (435)
- CREATETEMPORARY() (435)
- ERASE() (436)
- FILECLOSE() (436)
- FILECLOSEALL() (437)
- FILEEXISTS() (437)
- FILEGETNAME() (437)
- FILEISOPEN() (438)
- FILEOPEN() (438)
- FREETEMPORARY() (439)
- GETCHUNKSIZE() (439)
- GETLENGTH() (439)
- GET_STORAGE_LIMIT() (440)
- INSTR() (440)
- ISOPEN() (441)
- ISTEMPORARY() (441)
- LOADFROMFILE() (442)
- LOADBLOBFROMFILE() (443)
- LOADCLOBFROMFILE() (443)
- OPEN() (444)
- READ() (445)
- SUBSTR() (445)
- TRIM() (446)
- WRITE() (447)
- WRITEAPPEND() (447)
- Przykładowe procedury PL/SQL (448)
- Typy LONG i LONG RAW (462)
- Przykładowe tabele (462)
- Wstawianie danych do kolumn typu LONG i LONG RAW (462)
- Przekształcanie kolumn LONG i LONG RAW w duże obiekty (463)
- Nowe właściwości dużych obiektów w Oracle Database 10g (463)
- Niejawna konwersja między obiektami CLOB i NCLOB (464)
- Użycie atrybutu :new, gdy obiekt LOB jest używany w wyzwalaczu (464)
- Nowe właściwości dużych obiektów w Oracle Database 11g (465)
- Szyfrowanie danych LOB (465)
- Kompresja danych LOB (469)
- Usuwanie powtarzających się danych LOB (469)
- Nowe właściwości dużych obiektów w Oracle Database 12c (469)
- Podsumowanie (470)
16. Optymalizacja SQL (471)
- Podstawowe informacje o optymalizacji SQL (471)
- Należy filtrować wiersze za pomocą klauzuli WHERE (471)
- Należy używać złączeń tabel zamiast wielu zapytań (472)
- Wykonując złączenia, należy używać w pełni kwalifikowanych odwołań do kolumn (473)
- Należy używać wyrażeń CASE zamiast wielu zapytań (473)
- Należy dodać indeksy do tabel (474)
- Kiedy tworzyć indeks typu B-drzewo (475)
- Kiedy tworzyć indeks bitmapowy (475)
- Należy stosować klauzulę WHERE zamiast HAVING (475)
- Należy używać UNION ALL zamiast UNION (476)
- Należy używać EXISTS zamiast IN (477)
- Należy używać EXISTS zamiast DISTINCT (477)
- Należy używać GROUPING SETS zamiast CUBE (478)
- Należy stosować zmienne dowiązane (478)
- Nieidentyczne instrukcje SQL (478)
- Identyczne instrukcje SQL korzystające ze zmiennych dowiązanych (478)
- Wypisywanie listy i wartości zmiennych dowiązanych (479)
- Użycie zmiennej dowiązanej do składowania wartości zwróconej przez funkcję PL/SQL (480)
- Użycie zmiennej dowiązanej do składowania wierszy z REFCURSOR (480)
- Porównywanie kosztu wykonania zapytań (480)
- Przeglądanie planów wykonania (481)
- Porównywanie planów wykonania (485)
- Przesyłanie wskazówek do optymalizatora (486)
- Dodatkowe narzędzia optymalizujące (487)
- Oracle Enterprise Manager (487)
- Automatic Database Diagnostic Monitor (488)
- SQL Tuning Advisor (488)
- SQL Access Advisor (488)
- SQL Performance Analyzer (488)
- Database Replay (488)
- Real-Time SQL Monitoring (488)
- SQL Plan Management (489)
- Podsumowanie (489)
17. XML i baza danych Oracle (491)
- Wprowadzenie do XML (491)
- Generowanie XML z danych relacyjnych (492)
- XMLELEMENT() (492)
- XMLATTRIBUTES() (494)
- XMLFOREST() (494)
- XMLAGG() (495)
- XMLCOLATTVAL() (497)
- XMLCONCAT() (498)
- XMLPARSE() (498)
- XMLPI() (499)
- XMLCOMMENT() (499)
- XMLSEQUENCE() (500)
- XMLSERIALIZE() (501)
- Przykład zapisywania danych XML do pliku w PL/SQL (501)
- XMLQUERY() (502)
- Zapisywanie XML w bazie danych (506)
- Przykładowy plik XML (506)
- Tworzenie przykładowego schematu XML (506)
- Pobieranie informacji z przykładowego schematu XML (508)
- Aktualizowanie informacji w przykładowym schemacie XML (511)
- Podsumowanie (514)
A. Typy danych Oracle (515)
- Typy w Oracle SQL (515)
- Typy w Oracle PL/SQL (517)
Skorowidz (519)
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-9953-7 |
Rozmiar pliku: | 3,8 MB |