Podobne dokumenty
Wykład 8 Implementacja języka SQL w systemach baz danych Oracle specyficzne konstrukcje i funkcje Oracle SQL, funkcje numeryczne, znakowe, daty i

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Język SQL. Rozdział 2. Proste zapytania

PL/SQL. Funkcje wbudowane

Oracle11g: Wprowadzenie do SQL

Wprowadzenie do języka SQL

Systemy GIS Tworzenie zapytań w bazach danych

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

SZKOLENIE: Administrator baz danych. Cel szkolenia

Spis treści. Przedmowa

Przestrzenne bazy danych Podstawy języka SQL

Projektowanie systemów baz danych

Server Oracle - System Zarządzania Bazą Danych - składa się z instancji Oracle i bazy danych Oracle Instancja Oracle - pewne procesy drugoplanowe i

Wykład I. Wprowadzenie do baz danych

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

(c) Politechnika Poznańska, Instytut Informatyki

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Bazy danych - wykład wstępny

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

P o d s t a w y j ę z y k a S Q L

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Język SQL. Rozdział 3. Funkcje wierszowe

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Microsoft SQL Server Podstawy T-SQL

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Dr Michał Tanaś(

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Archiwizacja i odtwarzanie bazy danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych 2. Wykład 1

Wprowadzenie do baz danych

Administracja bazy danych Oracle 10g

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

PODSTAWY BAZ DANYCH 13. PL/SQL

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Bloki anonimowe w PL/SQL

Język SQL podstawy zapytań

Autor: dr inż. Katarzyna Rudnik

Technologia informacyjna

dziennik Instrukcja obsługi

Oracle Force. Opis narzęzdi bazodanowych. Przemysław Dadel, Adam Kudła, Maciej Rząsa. 20 marca 2009 AGH::KI::INFORMATYKA::BAZY DANYCH II

PL/SQL. Część 1 Oracle SQL. Piotr Medoń

Skąd pomysł na koło naukowe? Dlaczego akurat ORACLE? Co ja z tego będę miał? Czego będę mógł się nauczyć? Kiedy i gdzie będziemy się spotykać?

Oracle Application Express -

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Bazy danych. Dr inż. Paweł Kasprowski

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Przydatne sztuczki - sql. Na przykładzie postgres a.

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

OLAP i hurtownie danych c.d.

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

ZSE - Systemy baz danych 1 SIECIOWE SERWERY BAZ DANYCH

Szkolenie obejmuje zagadnienia związane z tworzeniem i zarządzaniem bazą danych Oracle, jej zasobami i dostępem do danych.

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Oracle Designer. Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera :

Paweł Rajba

SQL Structured Query Language

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Bazy danych i usługi sieciowe

Tworzenie zapytań do Microsoft SQL Server

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH

Pojęcie systemu baz danych

Ref. 7 - Język SQL - polecenia DDL i DML

Bazy danych w aplikacjach internetowych

Bazy danych Wykład zerowy. P. F. Góra

Podstawy programowania. Wprowadzenie

Bazy danych. Polecenia SQL

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Baza danych Oracle 11g Express Edition

Administracja bazy danych Oracle 10g

Program Płatnik Instrukcja instalacji


Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Liczba godzin 1,2 Organizacja zajęć Omówienie programu nauczania 2. Tematyka zajęć

1 Instalowanie i uaktualnianie serwera SQL Server

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Kiedy i czy konieczne?

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

2017/2018 WGGiOS AGH. LibreOffice Base

Block Change Tracking

Wprowadzenie do technologii Business Intelligence i hurtowni danych

Transkrypt:

ORACLE

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`a stało się punktem zwrotnym pod wieloma względami.

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.

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.

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

LOGICZNY I FIZYCZNY PODZIAŁ BAZY DANYCH

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ść.

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)

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

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

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

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).

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.

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.

ORACLE-SZCZEGÓŁY IMPLEMENTACJI

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.

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.

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.

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ń ).

POLECENIA DO POSZCZEGÓLNYCH ZAPYTAŃ

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;

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;

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 ';

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;

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;

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);

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;

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)

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.

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

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

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');

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

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

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

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;

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)

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