Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę...

40
ORACLE

Transcript of Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę...

Page 1: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

ORACLE

Page 2: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

HISTORIA

W 1977 r. Lawrence Ellison, Robert Miner i Edward Oates założyli firmę SDL (Software Development Labs). Jednym z podmiotów zainteresowanych możliwościami gromadzenia dużej liczby danych i szybkiego ich pobierania było CIA. Firma SDL wygrała przetarg i rozpoczęła pracę nad ściśle tajnym projektem. Nazwa kodowa tego projektu brzmiała Oracle (pl. „wyrocznia”). Po pewnym czasie przerwano pracę, jednak Lawrence Ellison i jego współpracownicy dostrzegli komercyjne możliwości bazy danych. To spostrzeżenie w połączeniu z przeświadczeniem, że plany firmy IBM uwzględniają zastosowanie takiej relacyjnej bazy danych i języka SQL w swoich przyszłych komputerach, doprowadziło do podjęcia przez Ellisona, Minera i Oates’a decyzji o kontynuacji prac nad projektem. W 1978 r. nazwa firmy zmieniła się z SDL na Relational Software Inc. (RSI). W 1979 r. pierwsza komercyjna baza danych trafia na rynek i staje się poważną konkurencją dla IBM. W następnym roku firma RSI zmienia nazwę na Oracle Systems Corporation (a później na Oracle Corporation).System zarządzania bazą danych po raz pierwszy zostaje napisany w C. Przełom lat 1981–1983 to powstanie wersji 3 na komputery typu mainframe i minikomputery. Kolejne trzy lata to zmiana siedziby firmy do Kalifornii. Wkroczenie Oracle w sektor aplikacji (finansowych) i powstanie wersji 5 produktu z możliwościami operacji rozproszonych. Firma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft – 700 mln dol.). W 1988 r. zostaje wydana wersja 6 ze znacznie zmienionym kodem źródłowym. Wprowadzono pakiety oprogramowania finansowego oraz pakiety CASE przeznaczone dla programistów. W latach 1990–1991 wartość firmy przekracza granicę 1 mld. dolarów. Dołączenie w 1992 r. do zespołu firmy Ray Lane`astało się punktem zwrotnym pod wieloma względami.

Page 3: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

Pozyskanie Ray Lane`a spowodowane było koniecznością zatrudnienia doświadczonych, uznanych menedżerów. Firma dostrzega rosnącą rolę działu aplikacji i wprowadza pakiet aplikacji dla wielu głównych sektorów gospodarki w 1993 r. Lata 1994–1995 to powstanie wersji 7 dla komputerów osobistych. W roku 1996 Oracle Corporation wydzielił firmę Network Computer Inc., której zadaniem miało być budowa komputera sieciowego. Projektowany komputer sieciowy miał nie wykorzystywać systemu operacyjnego Windows. Rozpoczęcie działalności firmy Oracle na rynku detalicznym postawiło przedsiębiorstwo przed koniecznością podjęcia konkurencji z takimi firmami jak Sun, IBM i innych producentów komputerowych. W tym samym roku dział aplikacji odnotował wartość sprzedaży na poziomie ponad 500 mln. dol. Ponieważ z każdą aplikacją wiąże się sprzedaż bazy danych, dział aplikacji stał się istotną częścią ogólnej działalności Oracle.Obecnie pakiet Oracle obejmuje: Oracle Financials, Oracle Supply Chain Management, Oracle Manufacturing, Oracle Project Systems, Oracle Human Resources i Oracle Market Management. Również w roku 1996 Oracle wzbogaca się o pakiet narzędzi OLAP, który wykorzystywany jest w zakresie aplikacji obsługujących hurtownie danych. W roku następnym pojawia się Oracle w wersji 8. Po raz kolejny firma podjęła kluczową pod względem strategicznym decyzję techniczną na wczesnym etapie rozwoju produktu, przechodząc na język programowania Java i rezygnując z architektury klient–serwer na rzecz aplikacji działających w Internecie. W 1998 r. wprowadzono obsługę sytemu Linux, a rok później pojawił się pakiet Oracle8i w znacznej części utworzony w języku Java. Firma osiąga wartość sprzedaży na poziomie 10 319 mln. dol. W 2000 r. Lawrence Ellison jeden z głównych założycieli firmy Oracle stał się najbogatszym człowiekiem na świecie. Firma Oracle wprowadza pakiet Oracle9i, który stanowi konkurencje dla takich firm jak m.in.: IBM (DB/2), Microsoft (SQL Server), czy innych. W 2003 r. na rynek trafia najnowsza edycja bazy danych Oracle10g.

... historia toczy się dalej:1. Oracle wydało już wersje 11g, 12c.2. W 2009 roku Sun przejął MySQL.3. W 2010 roku Oracle przejął Sun i tym samym MySQL.

Page 4: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft
Page 5: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

SYSTEM ORACLE

• Relacyjna baza danych Oracle posługuje się standardowym językiem zapytań SQL oraz posiada wbudowany wewnętrzny język tworzenia procedur składowanych PL/SQL – będący proceduralnie obudowanym językiem SQL. Jako języka tworzenia procedur składowanych w bazach danych Oracle (od wersji 8i) można używać również języka Java.

Page 6: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

BUDOWA ORACLE

System bazy danych Oracle składa się z:

• instancji – struktur pamięciowych i procesów systemu operacyjnego obsługujących bazę danych. W skład typowego procesu wchodzi PMON (process monitor) i SMON (system monitor).

• struktur przechowywania danych

Page 7: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

LOGICZNY I FIZYCZNY PODZIAŁ BAZY DANYCH

Page 8: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

WYJAŚNIENIE

• Ekstent - składa się ze spójnego ciągu bloków alokowanych jako całość.

• Segment - reprezentuje obszar dysku przeznaczony do zapisu jednego obiektu.

• Przestrzeń tabel - to struktura pośrednia między strukturą logiczną (tabelami, indeksami) a fizyczną (plikami danych).

• Baza danych - Oracle zawiera co najmniej jedną przestrzeń tabel o nazwie SYSTEM

• Podstawowe właściwości strukturalne przestrzeni tabel:

Każda przestrzeń tabel składa się z jednego lub więcej segmentów.

Każdy segment składa się z jednego lub więcej ekstentów.

Każdy ekstent składa się ze spójnego ciągu bloków alokowanych jako całość.

Page 9: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

STRUKTURA INSTANCJI

• SCHEMA – Schemat jest to zbiór obiektów należących do użytkownika.

• Większość instalacji bazy Oracle posiada domyślną schema o nazwie SCOTT. Po tym jak w procesie instalacji zostaną utworzone przykładowe tabele, użytkownik (user) może zalogować się do systemu bazy danych podając nazwę użytkownika: scott i domyślne hasło: tiger. Nazwa schemy SCOTT pochodzi od jednego z pierwszych pracowników Oracle Corp. (Bruce Scott), którego kot wabił się Tiger.

Inne domyślne schemy zawierają:

• SYS (podstawowe struktury bazy danych i narzędzia)

• SYSTEM (dodatkowe struktury bazy danych i narzędzia oraz konto uprzywilejowane)

• OUTLN (wykorzystywana do przechowywania metadanych dla query-optimizera).

• BI, IX, HR, OE, PM, SH (rozszerzone przykładowe schemy zawierające więcej danych i struktur niż oryginalna schema SCOTT)

Page 10: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

STRUKTURA PAMIĘCI

• Instancja bazy danych Oracle składa się ze współdzielonych struktur pamięciowych (do których dostęp mają wszystkie procesy obsługujące instancję) oraz ze struktur prywatnych, dostępnych tylko dla procesów, które te struktury zaalokowały. Podstawową strukturą pamięciową jest SGA, czyli System Global Area w skład SGA wchodzą:

• Shared Pool – pula współdzielona

• Library Cache

• Shared SQL Area – przestrzeń przechowująca sparsowane zapytania SQL i programy PL/SQL

• PL/SQL Area – przestrzeń kodu PL/SQL

• SQL Area – przestrzeń ostatnio wykonywanych zapytań SQL

• Data Dictionary Cache – bufor słowników bazy danych

• Database Buffer Cache – obszar bufora danych zorganizowany w listy LRU

Page 11: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

• Redo Log Buffer Cache – obszar bufora rekordów powtórzeń, stanowiącego log transakcyjny bazy danych

• Large Pool (struktura opcjonalna) – służy między innymi do komunikacji pomiędzy procesami równoległymi

• Java Pool (struktura opcjonalna) – przestrzeń przeznaczona do wykorzystania przez procedury składowane napisane w języku Java

• Do struktur współdzielonych należy również Software Code Area będący strukturą przechowującą kod wykonywalny procesów Oracle. Występowanie tego obszaru jest zależne od systemu operacyjnego.

• Poza strukturami współdzielonymi dostępna jest przestrzeń PGA czyli Program Global Area. PGA jest dostępne tylko dla jednego procesu, który je stworzy i zawiera:

Przestrzeń Stosu (Stack Space)

Informacje o Procesie

Sort Area – obszar sortowania

Page 12: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

PROCESY Procesy drugoplanowe wchodzące w skład instancji Oracle:

• Database Writer (DBWn) – proces "przeglądający" bufor bazy i zapisujący zmienione bloki na dyski

• Log Writer (LGWR) – proces zapisujący historię transakcji do plików dzienników powtórzeń

• Checkpoint (CKPT) – proces realizujący wykonanie punktów kontrolnych

• System Monitor (SMON) – monitoruje działanie instancji bazy danych

• Process Monitor (PMON) – monitoruje działanie procesów użytkownika i wykonuje "sprzątanie" po nieprawidłowo zakończonych procesach użytkowników

• Archiver (ARCn) – proces kopiujący zapełnione pliki dzienników powtórzeń

• Recovery (RECO) – proces odpowiedzialny za odtworzenie rozproszonych transakcji, które uległy awarii w trakcie wykonywania protokołu 2PC

• Lock (LCKn) – istnieje tylko w konfiguracji RAC i służy do synchronizowania dostępu do zasobów

• Queue Monitor (QMNn) – monitoruje kolejki komunikatów

Page 13: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft
Page 14: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

PRZECHOWYWANIE DANYCH

W skład bazy danych Oracle wchodzą:

• plik parametrów – plik opisujący parametry instancji bazy danych Oracle oraz ścieżki do plików kontrolnych

• pliki kontrolne – przechowują zmultiplikowaną informację na temat struktury bazy danych (informacje o plikach danych, historie backupów, numery SCN, informacje na temat archiwalnych dzienników powtórzeń, trybu pracy bazy danych)

• dzienniki powtórzeń – przechowują powtórzoną informację na temat przeprowadzonych w systemie transakcji i mają charakter dookolny – po zapełnieniu informacja jest nadpisywana

• archiwalne dzienniki powtórzeń – kopie dzienników powtórzeń wykonywane po ich zapełnieniu

• pliki danych – w których przechowywane są wszystkie gromadzone w systemie dane oraz struktury wspomagające (np. indeksy).

Page 15: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

WERSJE ORACLE

W tej chwili dostępne są:

• Oracle Enterprise Edition jest sztandarowym i najbardziej rozbudowanym produktem firmy Oracle i może być dodatkowo rozszerzany o opcje np. takie jak: RAC, zaawansowane bezpieczeństwo itp.

• Oracle Standard Edition tańsza edycja bazy danych Oracle pozbawiona możliwości rozbudowy o opcje, nie posiadająca wszystkich możliwości edycji Enterprise (brak np. mechanizmu DataGuard) oraz ograniczona ilością procesorów na jakiej można ją uruchomić.

• Oracle Standard Edition One pierwszy raz ukazała się wraz z wersją 10g. Jest to tania edycja bazy danych Oracle nie różniąca się niczym w stosunku do Oracle Standard Edition poza ograniczeniami licencyjnymi takimi między innymi jak: brak możliwości uruchomienia w konfiguracji klastrowej, ograniczenie na pracę w maszynach mających możliwość instalacji maksymalnie dwóch procesorów.

Page 16: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

• Oracle Express Edition (nie należy jej mylić z wielowymiarową bazą danych Oracle Express) jest darmową, ale bardzo ograniczoną (między innymi wykorzystanie jednego rdzenia procesora, wykorzystanie maksymalnie 1 GB RAM, obsługa maksymalnie 4 GB danych użytkownika) edycją SZBD Oracle. Oracle Express Edition jest prezentowana po raz pierwszy w wersji 10gR2.

• Oracle Personal jest edycją w pełni funkcjonalną, kompatybilną z dowolną wersją rodziny relacyjnych baz danych Oracle, przeznaczoną do użytku indywidualnego.

• Oracle Lite jest systemem zarządzania bazą danych przeznaczonym do zastosowań mobilnych.

Page 17: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

ORACLE-SZCZEGÓŁY IMPLEMENTACJI

Page 18: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

HISTORIA

• SQL został opracowany w latach 70. w firmie IBM. Stał się standardem w komunikacji z serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z użytkownikiem SQL, dlatego potocznie mówi się, że korzystanie z relacyjnych baz danych to korzystanie z SQL-a.

• Pierwszą firmą, która włączyła SQL do swojego produktu komercyjnego, był Oracle.

Page 19: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

SQL CO TO TAKIEGO ??

• SQL (ang. Structured Query Language wym. ) – 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.

Page 20: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

CECHY JĘZYKA SQL

• Jest językiem wysokiego poziomu (językiem czwartej generacji – 4GL), opartym na słownictwie języka angielskiego, jego wyrażenia mają określoną strukturę

• Jest językiem deklaratywnym (nieproceduralnym), zorientowanym na wynik (użytkownik definiuje, co chce otrzymać, ale nie pisze jak), nie potrzebuje zatem podawania dokładnego sposobu przetwarzania danych,

• Jest oparty na algebrze relacji,

• Zawiera logikę trójwartościową,

• Nie posiada instrukcji sterujących wykonywaniem programu,

• Nie dopuszcza rekurencji,

• Umożliwia definiowanie struktur danych, wyszukiwanie danych oraz operacje na danych,

• Działa na zbiorach danych.

Page 21: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

PODZIAŁ ZAPYTAŃ SQL

• SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”),

• SQL DDL (ang. Data Definition Language – „język definicji danych”),

• SQL DCL (ang. Data Control Language – „język kontroli nad danymi”).

• SQL DQL (ang. Data Query Language – „język definiowania zapytań”).

Page 22: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

POLECENIA DO POSZCZEGÓLNYCH ZAPYTAŃ

Page 23: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

WYBRANE SPECYFICZNE FUNKCJE I KONSTRUKCJE ORACLE SQL

• Operatory DISTINCT i ALL - dotyczące całych wierszy

• DISTINCT - w przypadku, gdy wiersz wynikowy zapytania powtarza się, powoduje wyświetlenie go jednokrotnie:

select DISTINCT PENSJA from PRACOWNICY;

• ALL - jest to ustawienie domyślne i dlatego nie wymaga stosowania, powoduje wyświetlenie wszystkich wierszy wynikowych zapytania także wtedy, gdy się powtarzają:

select ALL PENSJA from PRACOWNICY; select PENSJA from PRACOWNICY;

Page 24: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

NULL - WARTOŚĆ PUSTA (BRAK WARTOŚCI) ATRYBUTU LUB WYRAŻANIA.

• Dozwolone konstrukcje: Atrybut lub wyrażenie IS NULL

• Atrybut lub wyrażenie IS NOT NULL

select ID_P, PENSJA from PRACOWNICY where PENSJA is not null;

select ID_P, PENSJA + 2000 from PRACOWNICY where PENSJA is not null;

select ID_P, PENSJA + 2000 from PRACOWNICY where PENSJA + 2000 is not null;

Page 25: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

OPERATOR LIKE

• atrybut lub wyrażenie LIKE wzorzec. Wyświetlenie każdego nazwiska zaczynającego się na 'S' (także składającego się tylko z litery 'S':

select ID_P, NAZWISKO from PRACOWNICY where NAZWISKO LIKE 'S%';

• Wyświetlenie każdego nazwiska zaczynającego się na 'S' i składającego się dokładnie z 3 znaków, z których żaden nie może być spacją:

select ID_P, NAZWISKO from PRACOWNICY where NAZWISKO LIKE 'S_ _';

Page 26: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

FUNKCJA NVL - POZWALA WYŚWIETLIĆ DOWOLNĄ WARTOŚĆ, JEŚLI ATRYBUT LUB WYRAŻENIE POSIADA

WARTOŚCI NULL.

• umożliwia przekonwertowanie wartości NULL na pewną wartość zastępczą NVL(atrybut lub wyrażenie, wartość) Funkcja NVL sprawdza najpierw wyrażenie wyrażenie1. Jeśli nie ma ono wartości NULL, funkcja zwraca jako wartość wyrażenie1. Gdy zaś wyrażenie1 ma wartość NULL, funkcja NVL zwraca jako wartość wyrazenie2.

• Warto zauważyć, że funkcja NVL nie dokonuje zmiany wartości wyrażenie1, gdy nie ma ono wartości NULL, a jedynie zapewnia zastosowanie wartości zastępczej w czasie wykonywania programu w przypadku, gdy przyjmuje NULL.

select ID_P, NVL(PENSJA,0) from PRACOWNICY;

Page 27: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

KONSTRUKCJA BETWEEN … AND ….

• atrybut lub wyrażenie BETWEEN wartość1 AND wartość2

• jest równoważna koniunkcji:

• atrybut lub wyrażenie >= wartość1

• AND atrybut lub wyrażenie <= wartość2

• Dlatego jest używana do sprawdzania warunku, czy wartość atrybutu lub wyrażenia należy do przedziału domkniętego [wartość1 , wartość2]

• Przykład:

select ID_P, NAZWISKO from PRACOWNICY;where PENSJA between 1000 and 3000;

select ID_P, NAZWISKO from PRACOWNICY;where PENSJA >= 1000 and PENSJA <= 3000;

Page 28: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

OPERATOR EXISTS

• Konstrukcja EXISTS zwraca wartość logiczną:

• Podzapytanie zwraca chociaż jeden wiersz wynikowy => TRUE . Podzapytanie nie zwraca żadnego wiersza wynikowe => FALSE

• Znaleźć pracowników, którzy posiadają podwładnych

select ID_P, IMIĘ, NAZWISKO from PRACOWNICY P1 where EXISTS (select ID_P from PRACOWNICY P2 where P2.ID_BP=P1.ID_P);

• Znaleźć pracowników, którzy nie posiadają podwładnych

select ID_P, IMIĘ, NAZWISKO from PRACOWNICY P1 where NOT EXISTS (select ID_P from PRACOWNICY P2 where P2.ID_BP=P1.ID_P);

Page 29: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

INSTRUKCJA WIELOKROTNEGO WYBORU W ORACLE SQL -DECODE

• DECODE (atrybut lub wyrażenie, wartość_spr1, wartość_zwr1 [, wartość_spr2, wartość_zwr2, … , wartość_zwr_domyślnie])

select ID_P, decode(ID_D,12,'Zarząd',11,'Produkcja') from PRACOWNICY;

select ID_P, decode(ID_D, 12,'Zarząd',11,'Produkcja','Administracja) from PRACOWNICY;

Page 30: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

PODSTAWOWE TYPY DANYCH (DZIEDZINY ATRYBUTÓW) W ORACLE'U

• Numeryczne typy danych (NUMBER) :

• NUMBER - liczby zmiennoprzecinkowe,

• maksymalnie 38 cyfr znaczących, maksymalnie 9.99 * 10124

• NUMBER(w) - NUMBER o ilości cyfr znaczących w <= 38

• NUMBER(w,d) - NUMBER(w), gdzie skala d to ilość cyfr po przecinku, d może być ujemne (-84 <= d <= 127)

Page 31: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

• Tekstowe typy danych :

• CHAR(r) - łańcuchy znaków o stałej długości r (1 <= r <= 2000 znaków lub bajtów) uzupełniany spacjami przy porównaniach

• CHAR - domyślnie r=1

• VARCHAR2(r) - łańcuch znaków o zmiennej długości r (1 <= r <= 4000 znaków lub bajtów), rozmiar r musi być podany

• Typ daty i czasu :

• DATE - przechowuje zarówno datę, jak i czas.

Page 32: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

WYBRANE FUNKCJE NUMERYCZNE

Funkcje zaokrąglające:

• CEIL(x) - zaokr. do najmniejszej liczby całkowitej nie mniejszej od x ("do góry")

• FLOOR(x) - zaokr. do największej liczby całkowitej nie większej od x ("do dołu")

• TRUNC(x[,m]) - obcięcie do x do m miejsc po przecinku (domyślnie m=0), m może być ujemne

• ROUND(x[,m]) - zaokrąglenie x do m miejsc po przecinku (domyślnie m=0), m może być ujemne

Page 33: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

FUNKCJE KONWERSJI

Funkcja Zwracana wartość

• TO_CHAR(expr[,fmt]) skonwertuj expr z wartości typu number lub date do wartości znakowej według formatu fmt

• TO_DATE (char[,fmt ]) konwertuje wyrażenie typu char do typu date według formatu fmt

• TO_NUMBER( char[,fmt ]) konwertuje wyrażenie typu char do typu number wed lug formatu fmt

Page 34: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

FUNKCJE KONWERSJI C.D.

Konwersja liczby lub daty i czasu do tekstu

• TO_CHAR(wartość liczbowa lub data i czas[, format konwersji]) => data i czas

• select to_char(SYSDATE,'DD.MM.YYYY HH24:MI:SS') from dual;

Konwersja tekstu do daty i czasu

• TO_DATE(data i czas[, format konwersji]) => data

• select to_date('22.10.2006 21:45:34','DD.MM.YYYY HH24:MI:SS') from dual;

Konwersja tekstu do liczby

• TO_NUMBER(tekst[, format konwersji]) => liczba

• select to_number('1220.35','9,999,999.99');

Page 35: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

FORMATY KONWERSJI WSPÓLNE DLA TO_CHAR I TO_DATE

• MM numer miesiąca, cyframi arabskimi

• MON trzyliterowy skrót nazwy miesiąca, dużymi literami

• MONTH pełna nazwa miesiąca, dużymi literami

• Month j/w, tylko pierwsza litera duża

• DDD numer dnia w roku

• DD numer dnia w miesiącu

• DAY pełna nazwa dnia tygodnia, wszystkie litery duże

• Day j/w, tylko pierwsza litera duża

• day j/w, wszystkie litery małe

• YYYY czterocyfrowy numer roku

Page 36: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

FORMATY KONWERSJI UŻYWANE TYLKO W FUNKCJI TO_CHAR

• "string" wypisywany bez zmian

• fm poprzedza Month lub Day, powoduje, że nazwy miesięcy i dni będą zajmowały tylko tyle znaków, ile występuje w nazwie. Przeciwnym razie wszystkie nazwy będą wyrównywane do tej samej długości

• TH dodane do numeru roku, miesiąca, dnia, godziny, minuty lub sekundy powoduje wypisanie przyrostka 'th', kapitalizacja liter - jak w formacie liczby

• SP dodane do liczby powoduje wypisanie jej wartości słownie

• SPTH jak SP + TH

• THSP jak TH + SP

Page 37: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

OPERACJE NA WARTOŚCIACH TYPU DATE (DATA I CZAS)

Predefiniowany operator bieżącej daty i czasu systemowego: SYSDATE

• select SYSDATE from dual;

Wyświetlanie bieżącej daty i czasu systemowego zgodnych z zadanym formatem:

• select to_char(SYSDATE,'DD.MM.YYYY') from dual;

• select to_char(SYSDATE,'HH24:MI:SS') from dual;

• select to_char(SYSDATE, 'DD.MM.YYYY HH24:MI:SS') from dual;

Zwiększanie oraz zmniejszanie wartości typu DATE

Przykładowo:

SYSDATE + x - zwiększenie bieżącej daty i czasu systemowego o x dni

SYSDATE - x - zmniejszenie bieżącej daty i czasu systemowego o x dni

Page 38: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

OPERACJE NA ŁAŃCUCHACH TEKSTOWYCH

• Konkatenacja (sklejanie) łańcuchów tekstowych

Funkcja concat(tekst1,tekst2)

select concat('Studiuję ','fizykę informatyczną') from dual;

Operator konkatenacji ||

select 'Studiuję ' || 'fizykę informatyczną' from dual;

Page 39: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

INNE WYBRANE FUNKCJE MANIPULACJI NA ŁAŃCUCHACH

• INITCAP(char) zmienia wszystkie pierwsze znaki w słowach na duże litery

• LOWER(char) zmienia wszystkie litery w char na małe

• UPPER(char) zmień wszystkie litery w char na duże litery

• SUBSTR(char,m[,n]) zwraca podłańcuch z char, zaczynający się od znaku o numerze m mający n znaków. Jeżeli n nie wystąpi - podłańcuch zaczynający się od znaku m zawierający wszystkie pozostałe znaki (do końca łańcucha char).

• SUBSTRB(char,m[,n]) jak substr ale numery m oraz n określają bajty, nie znaki (dla niektórych platform sprzętowych to nie jest to samo)

Page 40: Oracle - Urząd Miasta Łodzimath.uni.lodz.pl/~kowalcr/Bazy/Temat3.pdfFirma wkracza na giełdę jeden dzień przed firmą Microsoft jej wartość rynkowa sięga 270 mln dol. (Microsoft

FUNKCJE WSPOMAGAJĄCE OPERACJE NA ŁAŃCUCHACH

• ASCII(char) zwraca kod ASCII znaku char. W systemach w których znaki mają kody wielobajtowe zwraca kod pierwszego bajtu.

• LENGTH(char) zwraca długość łańcucha char liczoną w znakach

• LENGTHB(char) zwraca długość łańcucha char liczoną w bajtach