Oracle Database 11g i SQL. Programowanie - Helion
Tytuł oryginału: Oracle Database 11g SQL (Osborne Oracle Press)
Tłumaczenie: Marcin Rogóż
ISBN: 978-83-246-1879-8
stron: 672, Format: 168x237, okładka: miękka
Data wydania: 2009-06-18
Księgarnia: Helion
Cena książki: 89,00 zł
Opanuj SQL i PL/SQL w Oracle Database i pisz świetne programy!
- Jak tworzyć obiekty baz danych i kolekcje?
- Jak zoptymalizować instrukcje SQL, aby były wykonywane szybciej?
- Jak pisać programy w PL/SQL?
Doskonała baza danych to jeden z podstawowych elementów sprawnego funkcjonowania współczesnych przedsiębiorstw, instytucji i organizacji. Jednak, aby efektywnie korzystać z jej dobrodziejstw, potrzebujesz specjalnego oprogramowania. Znakomitym systemem zarządzania bazą danych jest Oracle. Natomiast SQL -- strukturalny język zapytań -- zapewnia dostęp do systemu zarządzania bazą danych, a więc pobieranie, wstawianie i usuwanie z niej wszelkich informacji. PL/SQL (wywodzący się z SQL) umożliwia pisanie programów zawierających instrukcje SQL.
Książka "Oracle Database 11g. Programowanie w języku SQL" zawiera wyczerpujące informacje, dotyczące pracy z bazą danych Oracle za pośrednictwem instrukcji SQL, a także opis najnowszych właściwości i narzędzi tego języka, technik optymalizacyjnych oraz obsługi Javy i XML. Z tego podręcznika dowiesz się między innymi, w jaki sposób Oracle przetwarza oraz przechowuje daty i czas. Nauczysz się wykorzystywać duże obiekty do obsługi plików multimedialnych zawierających obrazy, muzykę i filmy, a także pisać (w języku Java) programy uzyskujące dostęp do bazy danych Oracle za pośrednictwem JDBC.
- Pobieranie informacji z tabel bazy danych
- SQL*Plus
- Funkcje
- Składowanie oraz przetwarzanie dat i czasu
- Zapytania zaawansowane
- Użytkownicy, uprawnienia i role
- Obiekty baz danych
- Kolekcje
- Praca z SQL w Javie
- Zamknięcie obiektu ResultSet
- Optymalizacja SQL
- XML i bazy danych Oracle
Baza Oracle nie będzie miała przed Tobą tajemnic!
Osoby które kupowały "Oracle Database 11g i SQL. Programowanie", wybierały także:
- PL/SQL. Kurs video. Od podstaw do zagadnień zaawansowanych. Programowanie baz danych 79,00 zł, (31,60 zł -60%)
- Linux Server. Kurs video. Usługi serwerowe, skrypty i środowisko graficzne 69,00 zł, (34,50 zł -50%)
- Tablice informatyczne. SQL. Wydanie III 16,98 zł, (8,49 zł -50%)
- SQL w 24 godziny. Wydanie VI 69,00 zł, (34,50 zł -50%)
- Oracle PL/SQL w mgnieniu oka 44,90 zł, (22,45 zł -50%)
Spis treści
Oracle Database 11g i SQL. Programowanie -- spis treści
O autorze (17)
O redaktorze merytorycznym (19)
Wprowadzenie (21)
Rozdział 1. Wprowadzenie (27)
- Czym jest relacyjna baza danych? (27)
- Wstęp do SQL (28)
- Używanie SQL*Plus (30)
- Uruchamianie SQL*Plus (30)
- Uruchamianie SQL*Plus z wiersza poleceń (31)
- Wykonywanie instrukcji SELECT za pomocą SQL*Plus (32)
- SQL Developer (33)
- Tworzenie schematu bazy danych sklepu (34)
- Uruchamianie skryptu programu SQL*Plus w celu utworzenia schematu bazy danych sklepu (35)
- Instrukcje DDL używane do tworzenia schematu bazy danych sklepu (36)
- Dodawanie, modyfikowanie i usuwanie wierszy (44)
- Dodawanie wiersza do tabeli (44)
- Modyfikowanie istniejącego wiersza w tabeli (46)
- Usuwanie wiersza z tabeli (47)
- Typy BINARY_FLOAT i BINARY_DOUBLE (47)
- Zalety typów BINARY_FLOAT i BINARY_DOUBLE (47)
- Użycie typów BINARY_FLOAT i BINARY_DOUBLE w tabeli (48)
- Wartości specjalne (49)
- Kończenie pracy SQL*Plus (49)
- Wprowadzenie do Oracle PL/SQL (50)
- Podsumowanie (51)
Rozdział 2. Pobieranie informacji z tabel bazy danych (53)
- Wykonywanie instrukcji SELECT dla jednej tabeli (53)
- Pobieranie wszystkich kolumn z tabeli (54)
- Wykorzystanie klauzuli WHERE do wskazywania wierszy do pobrania (55)
- Identyfikatory wierszy (55)
- Numery wierszy (56)
- Wykonywanie działań arytmetycznych (56)
- Wykonywanie obliczeń na datach (57)
- Korzystanie z kolumn w obliczeniach (58)
- Używanie aliasów kolumn (59)
- Łączenie wartości z kolumn za pomocą konkatenacji (60)
- Wartości null (61)
- Wyświetlanie odrębnych wierszy (62)
- Porównywanie wartości (63)
- Korzystanie z operatorów SQL (65)
- Operator LIKE (65)
- Operator IN (67)
- Operator BETWEEN (67)
- Operatory logiczne (68)
- Następstwo operatorów (69)
- Sortowanie wierszy za pomocą klauzuli ORDER BY (70)
- Instrukcje SELECT wykorzystujące dwie tabele (71)
- Używanie aliasów tabel (73)
- Iloczyny kartezjańskie (74)
- Instrukcje SELECT wykorzystujące więcej niż dwie tabele (74)
- Warunki złączenia i typy złączeń (76)
- Nierównozłączenia (76)
- Złączenia rozszerzone (77)
- Złączenia własne (81)
- Wykonywanie złączeń za pomocą składni SQL/92 (82)
- Wykonywanie złączeń wewnętrznych dwóch tabel z wykorzystaniem składni SQL/92 (82)
- Upraszczanie złączeń za pomocą słowa kluczowego USING (83)
- Wykonywanie złączeń wewnętrznych obejmujących więcej niż dwie tabele (SQL/92) (84)
- Wykonywanie złączeń wewnętrznych z użyciem wielu kolumn (SQL/92) (84)
- Wykonywanie złączeń rozszerzonych z użyciem składni SQL/92 (85)
- Wykonywanie złączeń własnych z użyciem składni SQL/92 (86)
- Wykonywanie złączeń krzyżowych z użyciem składni SQL/92 (87)
- Podsumowanie (87)
Rozdział 3. SQL*Plus (89)
- Przeglądanie struktury tabeli (89)
- Edycja instrukcji SQL (90)
- Zapisywanie, odczytywanie i uruchamianie plików (92)
- Formatowanie kolumn (95)
- Ustawianie rozmiaru strony (97)
- Ustawianie rozmiaru wiersza (97)
- Czyszczenie formatowania kolumny (98)
- Używanie zmiennych (98)
- Zmienne tymczasowe (99)
- Zmienne zdefiniowane (101)
- Tworzenie prostych raportów (104)
- Używanie zmiennych tymczasowych w skrypcie (104)
- Używanie zmiennych zdefiniowanych w skrypcie (105)
- Przesyłanie wartości do zmiennej w skrypcie (105)
- Dodawanie nagłówka i stopki (106)
- Obliczanie sum pośrednich (108)
- Uzyskiwanie pomocy od SQL*Plus (109)
- Automatyczne generowanie instrukcji SQL (110)
- Kończenie połączenia z bazą danych i pracy SQL*Plus (111)
- Podsumowanie (111)
Rozdział 4. Proste funkcje (113)
- Funkcje jednowierszowe (113)
- Funkcje znakowe (114)
- Funkcje numeryczne (121)
- Funkcje konwertujące (125)
- Funkcje wyrażeń regularnych (131)
- Funkcje agregujące (138)
- AVG() (138)
- COUNT() (139)
- MAX() i MIN() (140)
- STDDEV() (140)
- SUM() (141)
- VARIANCE() (141)
- Grupowanie wierszy (141)
- Grupowanie wierszy za pomocą klauzuli GROUP BY (142)
- Nieprawidłowe użycie funkcji agregujących (145)
- Filtrowanie grup wierszy za pomocą klauzuli HAVING (146)
- Jednoczesne używanie klauzul WHERE i GROUP BY (147)
- Jednoczesne używanie klauzul WHERE, GROUP BY i HAVING (147)
- Podsumowanie (148)
Rozdział 5. Składowanie oraz przetwarzanie dat i czasu (149)
- Proste przykłady składowania i pobierania dat (149)
- Konwertowanie typów DataGodzina za pomocą funkcji TO_CHAR() i TO_DATE() (151)
- Konwersja daty i czasu na napis za pomocą funkcji TO_CHAR() (151)
- Konwersja napisu na wyrażenie DataGodzina za pomocą funkcji TO_DATE() (155)
- Ustawianie domyślnego formatu daty (158)
- Jak Oracle interpretuje lata dwucyfrowe? (159)
- Użycie formatu YY (159)
- Użycie formatu RR (160)
- Funkcje operujące na datach i godzinach (161)
- ADD_MONTHS() (161)
- LAST_DAY() (163)
- MONTHS_BETWEEN() (163)
- NEXT_DAY() (163)
- ROUND() (164)
- SYSDATE (164)
- TRUNC() (165)
- Strefy czasowe (165)
- Funkcje operujące na strefach czasowych (166)
- Strefa czasowa bazy danych i strefa czasowa sesji (167)
- Uzyskiwanie przesunięć strefy czasowej (168)
- Uzyskiwanie nazw stref czasowych (168)
- Konwertowanie wyrażenia DataGodzina z jednej strefy czasowej na inną (169)
- Datowniki (znaczniki czasu) (169)
- Typy datowników (169)
- Funkcje operujące na znacznikach czasu (173)
- Interwały czasowe (178)
- Typ INTERVAL YEAR TO MONTH (179)
- Typ INTERVAL DAY TO SECOND (181)
- Funkcje operujące na interwałach (183)
- Podsumowanie (184)
Rozdział 6. Podzapytania (187)
- Rodzaje podzapytań (187)
- Pisanie podzapytań jednowierszowych (188)
- Podzapytania w klauzuli WHERE (188)
- Użycie innych operatorów jednowierszowych (189)
- Podzapytania w klauzuli HAVING (189)
- Podzapytania w klauzuli FROM (widoki wbudowane) (191)
- Błędy, które można napotkać (191)
- Pisanie podzapytań wielowierszowych (192)
- Użycie operatora IN z podzapytaniem wielowierszowym (193)
- Użycie operatora ANY z podzapytaniem wielowierszowym (194)
- Użycie operatora ALL z podzapytaniem wielowierszowym (194)
- Pisanie podzapytań wielokolumnowych (195)
- Pisanie podzapytań skorelowanych (195)
- Przykład podzapytania skorelowanego (195)
- Użycie operatorów EXISTS i NOT EXISTS z podzapytaniem skorelowanym (196)
- Pisanie zagnieżdżonych podzapytań (199)
- Pisanie instrukcji UPDATE i DELETE zawierających podzapytania (200)
- Pisanie instrukcji UPDATE zawierającej podzapytanie (200)
- Pisanie instrukcji DELETE zawierającej podzapytanie (201)
- Podsumowanie (201)
Rozdział 7. Zapytania zaawansowane (203)
- Operatory zestawu (203)
- Przykładowe tabele (204)
- Operator UNION ALL (205)
- Operator UNION (206)
- Operator INTERSECT (207)
- Operator MINUS (207)
- Łączenie operatorów zestawu (207)
- Użycie funkcji TRANSLATE() (209)
- Użycie funkcji DECODE() (210)
- Użycie wyrażenia CASE (212)
- Proste wyrażenia CASE (212)
- Przeszukiwane wyrażenia CASE (213)
- Zapytania hierarchiczne (215)
- Przykładowe dane (215)
- Zastosowanie klauzul CONNECT BY i START WITH (216)
- Użycie pseudokolumny LEVEL (217)
- Formatowanie wyników zapytania hierarchicznego (218)
- Rozpoczynanie od węzła innego niż główny (219)
- Użycie podzapytania w klauzuli START WITH (219)
- Poruszanie się po drzewie w górę (220)
- Eliminowanie węzłów i gałęzi z zapytania hierarchicznego (220)
- Umieszczanie innych warunków w zapytaniu hierarchicznym (221)
- Rozszerzone klauzule GROUP BY (222)
- Przykładowe tabele (222)
- Użycie klauzuli ROLLUP (224)
- Klauzula CUBE (226)
- Funkcja GROUPING() (227)
- Klauzula GROUPING SETS (230)
- Użycie funkcji GROUPING_ID() (231)
- Kilkukrotne użycie kolumny w klauzuli GROUP BY (233)
- Użycie funkcji GROUP_ID() (233)
- Funkcje analityczne (235)
- Przykładowa tabela (235)
- Użycie funkcji klasyfikujących (236)
- Użycie odwrotnych funkcji rankingowych (243)
- Użycie funkcji okna (243)
- Funkcje raportujące (249)
- Użycie funkcji LAG() i LEAD() (251)
- Użycie funkcji FIRST i LAST (252)
- Użycie funkcji regresji liniowej (252)
- Użycie funkcji hipotetycznego rankingu i rozkładu (253)
- Użycie klauzuli MODEL (254)
- Przykład zastosowania klauzuli MODEL (255)
- Dostęp do komórek za pomocą zapisu pozycyjnego i symbolicznego (256)
- Uzyskiwanie dostępu do zakresu komórek za pomocą BETWEEN i AND (257)
- Sięganie do wszystkich komórek za pomocą ANY i IS ANY (257)
- Pobieranie bieżącej wartości wymiaru za pomocą funkcji CURRENTV() (258)
- Uzyskiwanie dostępu do komórek za pomocą pętli FOR (259)
- Obsługa wartości NULL i brakujących (260)
- Modyfikowanie istniejących komórek (262)
- Użycie klauzul PIVOT i UNPIVOT (263)
- Prosty przykład klauzuli PIVOT (263)
- Przestawianie w oparciu o wiele kolumn (265)
- Użycie kilku funkcji agregujących w przestawieniu (266)
- Użycie klauzuli UNPIVOT (267)
- Podsumowanie (268)
Rozdział 8. Zmienianie zawartości tabeli (269)
- Wstawianie wierszy za pomocą instrukcji INSERT (269)
- Pomijanie listy kolumn (270)
- Określanie wartości NULL dla kolumny (271)
- Umieszczanie pojedynczych i podwójnych cudzysłowów w wartościach kolumn (271)
- Kopiowanie wierszy z jednej tabeli do innej (271)
- Modyfikowanie wierszy za pomocą instrukcji UPDATE (272)
- Klauzula RETURNING (273)
- Usuwanie wierszy za pomocą instrukcji DELETE (274)
- Integralność bazy danych (274)
- Wymuszanie więzów klucza głównego (274)
- Wymuszanie więzów kluczy obcych (275)
- Użycie wartości domyślnych (276)
- Scalanie wierszy za pomocą instrukcji MERGE (277)
- Transakcje bazodanowe (279)
- Zatwierdzanie i wycofywanie transakcji (280)
- Rozpoczynanie i kończenie transakcji (281)
- Punkty zachowania (281)
- ACID - właściwości transakcji (283)
- Transakcje współbieżne (283)
- Blokowanie transakcji (284)
- Poziomy izolacji transakcji (285)
- Przykład transakcji SERIALIZABLE (286)
- Zapytania retrospektywne (287)
- Przyznawanie uprawnień do używania zapytań retrospektywnych (288)
- Zapytania retrospektywne w oparciu o czas (288)
- Zapytania retrospektywne z użyciem SCN (290)
- Podsumowanie (291)
Rozdział 9. Użytkownicy, uprawnienia i role (293)
- Użytkownicy (293)
- Tworzenie konta użytkownika (294)
- Zmienianie hasła użytkownika (295)
- Usuwanie konta użytkownika (295)
- Uprawnienia systemowe (296)
- Przyznawanie uprawnień systemowych użytkownikowi (296)
- Sprawdzanie uprawnień systemowych przyznanych użytkownikowi (297)
- Zastosowanie uprawnień systemowych (298)
- Odbieranie uprawnień systemowych (298)
- Uprawnienia obiektowe (299)
- Przyznawanie użytkownikowi uprawnień obiektowych (299)
- Sprawdzanie przekazanych uprawnień (300)
- Sprawdzanie otrzymanych uprawnień obiektowych (301)
- Zastosowanie uprawnień obiektowych (303)
- Synonimy (303)
- Synonimy publiczne (304)
- Odbieranie uprawnień obiektowych (305)
- Role (305)
- Tworzenie ról (306)
- Przyznawanie uprawnień roli (306)
- Przyznawanie roli użytkownikowi (307)
- Sprawdzanie ról przyznanych użytkownikowi (307)
- Sprawdzanie uprawnień systemowych przyznanych roli (308)
- Sprawdzanie uprawnień obiektowych przyznanych roli (308)
- Zastosowanie uprawnień przyznanych roli (310)
- Role domyślne (310)
- Odbieranie roli (311)
- Odbieranie uprawnień roli (311)
- Usuwanie roli (311)
- Obserwacja (311)
- Uprawnienia wymagane do przeprowadzania obserwacji (312)
- Przykłady obserwacji (312)
- Perspektywy zapisu obserwacji (314)
- Podsumowanie (314)
Rozdział 10. Tworzenie tabel, sekwencji, indeksów i perspektyw (315)
- Tabele (315)
- Tworzenie tabeli (315)
- Pobieranie informacji o tabelach (317)
- Uzyskiwanie informacji o kolumnach w tabeli (318)
- Zmienianie tabeli (319)
- Zmienianie nazwy tabeli (328)
- Dodawanie komentarza do tabeli (328)
- Obcinanie tabeli (329)
- Usuwanie tabeli (329)
- Sekwencje (329)
- Tworzenie sekwencji (329)
- Pobieranie informacji o sekwencjach (331)
- Używanie sekwencji (332)
- Wypełnianie klucza głównego z użyciem sekwencji (334)
- Modyfikowanie sekwencji (334)
- Usuwanie sekwencji (335)
- Indeksy (335)
- Tworzenie indeksu typu B-drzewo (336)
- Tworzenie indeksów opartych na funkcjach (337)
- Pobieranie informacji o indeksach (338)
- Pobieranie informacji o indeksach kolumny (338)
- Modyfikowanie indeksu (339)
- Usuwanie indeksu (339)
- Tworzenie indeksu bitmapowego (339)
- Perspektywy (340)
- Tworzenie i używanie perspektyw (341)
- Modyfikowanie perspektywy (348)
- Usuwanie perspektywy (349)
- Archiwa migawek (349)
- Podsumowanie (352)
Rozdział 11. Wprowadzenie do programowania w PL/SQL (353)
- Bloki (354)
- Zmienne i typy (355)
- Logika warunkowa (356)
- Pętle (356)
- Proste pętle (357)
- Pętle WHILE (358)
- Pętle FOR (358)
- Kursory (359)
- Krok 1. - deklarowanie zmiennych przechowujących wartości kolumn (359)
- Krok 2. - deklaracja kursora (360)
- Krok 3. - otwarcie kursora (360)
- Krok 4. - pobieranie wierszy z kursora (360)
- Krok 5. - zamknięcie kursora (361)
- Pełny przykład - product_cursor.sql (361)
- Kursory i pętle FOR (363)
- Instrukcja OPEN-FOR (363)
- Kursory bez ograniczenia (365)
- Wyjątki (367)
- Wyjątek ZERO_DIVIDE (368)
- Wyjątek DUP_VAL_ON_INDEX (369)
- Wyjątek INVALID_NUMBER (370)
- Wyjątek OTHERS (370)
- Procedury (371)
- Tworzenie procedury (371)
- Wywoływanie procedury (373)
- Uzyskiwanie informacji o procedurach (374)
- Usuwanie procedury (375)
- Przeglądanie błędów w procedurze (375)
- Funkcje (376)
- Tworzenie funkcji (376)
- Wywoływanie funkcji (377)
- Uzyskiwanie informacji o funkcjach (378)
- Usuwanie funkcji (378)
- Pakiety (378)
- Tworzenie specyfikacji pakietu (379)
- Tworzenie treści pakietu (379)
- Wywoływanie funkcji i procedur z pakietu (381)
- Uzyskiwanie informacji o funkcjach i procedurach w pakiecie (381)
- Usuwanie pakietu (382)
- Wyzwalacze (382)
- Kiedy uruchamiany jest wyzwalacz (382)
- Przygotowania do przykładu wyzwalacza (382)
- Tworzenie wyzwalacza (383)
- Uruchamianie wyzwalacza (385)
- Uzyskiwanie informacji o wyzwalaczach (386)
- Włączanie i wyłączanie wyzwalacza (387)
- Usuwanie wyzwalacza (387)
- Rozszerzenia PL/SQL wprowadzone w Oracle Database 11g (388)
- Typ SIMPLE_INTEGER (388)
- Sekwencje w PL/SQL (389)
- Generowanie natywnego kodu maszynowego z PL/SQL (390)
- Podsumowanie (390)
Rozdział 12. Obiekty bazy danych (393)
- Wprowadzenie do obiektów (393)
- Tworzenie typów obiektowych (394)
- Uzyskiwanie informacji o typach obiektowych za pomocą DESCRIBE (395)
- Użycie typów obiektowych w tabelach bazy danych (397)
- Obiekty kolumnowe (397)
- Tabele obiektowe (399)
- Identyfikatory obiektów i odwołania obiektowe (403)
- Porównywanie wartości obiektów (405)
- Użycie obiektów w PL/SQL (407)
- Funkcja get_products() (408)
- Procedura display_product() (409)
- Procedura insert_product() (410)
- Procedura update_product_price() (410)
- Funkcja get_product() (411)
- Procedura update_product() (412)
- Funkcja get_product_ref() (412)
- Procedura delete_product() (413)
- Procedura product_lifecycle() (413)
- Procedura product_lifecycle2() (414)
- Dziedziczenie typów (416)
- Użycie podtypu zamiast typu nadrzędnego (418)
- Przykłady SQL (418)
- Przykłady PL/SQL (419)
- Obiekty NOT SUBSTITUTABLE (420)
- Inne przydatne funkcje obiektów (421)
- Funkcja IS OF() (421)
- Funkcja TREAT() (424)
- Funkcja SYS_TYPEID() (427)
- Typy obiektowe NOT INSTANTIABLE (428)
- Konstruktory definiowane przez użytkownika (430)
- Przesłanianie metod (433)
- Uogólnione wywoływanie (435)
- Podsumowanie (437)
Rozdział 13. Kolekcje (439)
- Podstawowe informacje o kolekcjach (439)
- Tworzenie kolekcji (440)
- Tworzenie typu VARRAY (440)
- Tworzenie tabeli zagnieżdżonej (441)
- Użycie kolekcji do definiowania kolumny w tabeli (441)
- Użycie typu VARRAY do zdefiniowania kolumny w tabeli (441)
- Użycie typu tabeli zagnieżdżonej do zdefiniowania kolumny w tabeli (442)
- Uzyskiwanie informacji o kolekcjach (442)
- Uzyskiwanie informacji o tablicy VARRAY (442)
- Uzyskiwanie informacji o tabeli zagnieżdżonej (443)
- Umieszczanie elementów w kolekcji (445)
- Umieszczanie elementów w tablicy VARRAY (445)
- Umieszczanie elementów w tabeli zagnieżdżonej (446)
- Pobieranie elementów z kolekcji (446)
- Pobieranie elementów z tablicy VARRAY (446)
- Pobieranie elementów z tabeli zagnieżdżonej (447)
- Użycie funkcji TABLE() do interpretacji kolekcji jako serii wierszy (448)
- Użycie funkcji TABLE() z typem VARRAY (448)
- Użycie funkcji TABLE() z tabelą zagnieżdżoną (449)
- Modyfikowanie elementów kolekcji (450)
- Modyfikowanie elementów tablicy VARRAY (450)
- Modyfikowanie elementów tabeli zagnieżdżonej (450)
- Użycie metody mapującej do porównywania zawartości tabel zagnieżdżonych (451)
- Użycie funkcji CAST do konwersji kolekcji z jednego typu na inny (454)
- Użycie funkcji CAST() do konwersji tablicy VARRAY na tabelę zagnieżdżoną (454)
- Użycie funkcji CAST() do konwersji tabeli zagnieżdżonej na tablicę VARRAY (455)
- Użycie kolekcji w PL/SQL (455)
- Manipulowanie tablicą VARRAY (456)
- Manipulowanie tabelą zagnieżdżoną (457)
- Metody operujące na kolekcjach w PL/SQL (459)
- Kolekcje wielopoziomowe (469)
- Rozszerzenia kolekcji wprowadzone w Oracle Database 10g (472)
- Tablice asocjacyjne (472)
- Zmienianie rozmiaru typu elementu (473)
- Zwiększanie liczby elementów w tablicy VARRAY (474)
- Użycie tablic VARRAY w tabelach tymczasowych (474)
- Użycie innej przestrzeni tabel dla tabeli składującej tabelę zagnieżdżoną (474)
- Obsługa tabel zagnieżdżonych w ANSI (475)
- Podsumowanie (483)
Rozdział 14. Duże obiekty (485)
- Podstawowe informacje o dużych obiektach (LOB) (485)
- Przykładowe pliki (486)
- Rodzaje dużych obiektów (486)
- Tworzenie tabel zawierających duże obiekty (487)
- Użycie dużych obiektów w SQL (488)
- Użycie obiektów CLOB i BLOB (488)
- Użycie obiektów BFILE (490)
- Użycie dużych obiektów w PL/SQL (492)
- APPEND() (494)
- CLOSE() (495)
- COMPARE() (495)
- COPY() (496)
- CREATETEMPORARY() (497)
- ERASE() (498)
- FILECLOSE() (499)
- FILECLOSEALL() (499)
- FILEEXISTS() (499)
- FILEGETNAME() (500)
- FILEISOPEN() (500)
- FILEOPEN() (501)
- FREETEMPORARY() (501)
- GETCHUNKSIZE() (502)
- GET_STORAGE_LIMIT() (502)
- GETLENGTH() (502)
- INSTR() (503)
- ISOPEN() (504)
- ISTEMPORARY() (505)
- LOADFROMFILE() (505)
- LOADBLOBFROMFILE() (506)
- LOADCLOBFROMFILE() (507)
- OPEN() (508)
- READ() (509)
- SUBSTR() (510)
- TRIM() (511)
- WRITE() (512)
- WRITEAPPEND() (512)
- Przykładowe procedury PL/SQL (513)
- Typy LONG i LONG RAW (529)
- Przykładowe tabele (530)
- Wstawianie danych do kolumn typu LONG i LONG RAW (530)
- Przekształcanie kolumn LONG i LONG RAW w duże obiekty (531)
- Nowe właściwości dużych obiektów w Oracle Database 10g (531)
- Niejawna konwersja między obiektami CLOB i NCLOB (532)
- Użycie atrybutu :new, gdy obiekt LOB jest używany w wyzwalaczu (533)
- Nowe właściwości dużych obiektów w Oracle Database 11g (533)
- Szyfrowanie danych LOB (534)
- Kompresja danych LOB (537)
- Usuwanie powtarzających się danych LOB (538)
- Podsumowanie (538)
Rozdział 15. Praca z SQL w Javie (541)
- Zaczynamy (541)
- Konfigurowanie komputera (542)
- Ustawianie zmiennej środowiska ORACLE_HOME (542)
- Ustawianie zmiennej środowiska JAVA_HOME (543)
- Ustawianie zmiennej środowiska PATH (543)
- Ustawianie zmiennej środowiska CLASSPATH (544)
- Ustawianie zmiennej środowiska LD_LIBRARY_PATH (544)
- Sterowniki Oracle JDBC (545)
- Sterownik Thin (545)
- Sterownik OCI (545)
- Sterownik wewnętrzny po stronie serwera (546)
- Sterownik Thin po stronie serwera (546)
- Importowanie pakietów JDBC (546)
- Rejestrowanie sterowników Oracle JDBC (547)
- Otwieranie połączenia z bazą danych (547)
- Połączenie z bazą danych za pomocą getConnection() (547)
- URL bazy danych (548)
- Połączenie z bazą danych za pomocą źródła danych Oracle (549)
- Tworzenie obiektu JDBC Statement (552)
- Pobieranie wierszy z bazy danych (553)
- Krok 1: Tworzenie obiektu ResultSet i umieszczanie w nim danych (553)
- Krok 2: Odczyt wartości kolumn z obiektu ResultSet (554)
- Krok 3: Zamknięcie obiektu ResultSet (556)
- Wstawianie wierszy do bazy danych (557)
- Modyfikowanie wierszy w bazie danych (558)
- Usuwanie wierszy z bazy danych (558)
- Obsługa liczb (559)
- Obsługa wartości NULL z bazy danych (560)
- Sterowanie transakcjami bazy danych (562)
- Wykonywanie instrukcji Data Definition Language (563)
- Obsługa wyjątków (563)
- Zamykanie obiektów JDBC (565)
- Przykładowy program: BasicExample1.java (566)
- Kompilacja BasicExample1 (570)
- Uruchamianie programu BasicExample1 (570)
- Przygotowane instrukcje SQL (572)
- Przykładowy program: BasicExample2.java (574)
- Rozszerzenia Oracle JDBC (576)
- Pakiet oracle.sql (577)
- Pakiet oracle.jdbc (580)
- Przykładowy program: BasicExample3.java (584)
- Podsumowanie (586)
Rozdział 16. Optymalizacja SQL (587)
- Podstawowe informacje o optymalizacji SQL (587)
- Należy filtrować wiersze za pomocą klauzuli WHERE (587)
- Należy używać złączeń tabel zamiast wielu zapytań (588)
- Wykonując złączenia, należy używać w pełni kwalifikowanych odwołań do kolumn (589)
- Należy używać wyrażeń CASE zamiast wielu zapytań (590)
- Należy dodać indeksy do tabel (591)
- Należy stosować klauzulę WHERE zamiast HAVING (592)
- Należy używać UNION ALL zamiast UNION (593)
- Należy używać EXISTS zamiast IN (594)
- Należy używać EXISTS zamiast DISTINCT (595)
- Należy używać GROUPING SETS zamiast CUBE (596)
- Należy stosować zmienne dowiązane (596)
- Nieidentyczne instrukcje SQL (596)
- Identyczne instrukcje SQL korzystające ze zmiennych dowiązanych (597)
- Wypisywanie listy i wartości zmiennych dowiązanych (598)
- Użycie zmiennej dowiązanej do składowania wartości zwróconej przez funkcję PL/SQL (598)
- Użycie zmiennej dowiązanej do składowania wierszy z REFCURSOR (598)
- Porównywanie kosztu wykonania zapytań (599)
- Przeglądanie planów wykonania (600)
- Porównywanie planów wykonania (605)
- Przesyłanie wskazówek do optymalizatora (606)
- Dodatkowe narzędzia optymalizujące (608)
- Oracle Enterprise Manager Diagnostics Pack (608)
- Automatic Database Diagnostic Monitor (608)
- Podsumowanie (609)
Rozdział 17. XML i baza danych Oracle (611)
- Wprowadzenie do XML (611)
- Generowanie XML z danych relacyjnych (612)
- XMLELEMENT() (612)
- XMLATTRIBUTES() (615)
- XMLFOREST() (615)
- XMLAGG() (617)
- XMLCOLATVAL() (619)
- XMLCONCAT() (620)
- XMLPARSE() (620)
- XMLPI() (621)
- XMLCOMMENT() (621)
- XMLSEQUENCE() (622)
- XMLSERIALIZE() (623)
- Przykład zapisywania danych XML do pliku w PL/SQL (623)
- XMLQUERY() (625)
- Zapisywanie XML w bazie danych (629)
- Przykładowy plik XML (629)
- Tworzenie przykładowego schematu XML (630)
- Pobieranie informacji z przykładowego schematu XML (632)
- Aktualizowanie informacji w przykładowym schemacie XML (636)
- Podsumowanie (639)
Dodatek A: Typy danych Oracle (641)
- Typy w Oracle SQL (641)
- Typy w Oracle PL/SQL (643)
Skorowidz (645)