Post on 19-Feb-2018
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 1/47
Materiały szkoleniowe
Podstawy języka SQL
Prowadzą cy
Anna Pijanowska - KuśnierzPaweł Żołnierczyk
Podstawy języka SQL
Strona 2
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 2/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 3/47
Podstawy języka SQL
Strona 5
Zawartość tabel wykorzystywanych na kursie
Podstawy języka SQL
Strona 6
Zawartość tabeli DEPT
DEPTNO DNAME LOC---------- -------------- -------------
10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON
Zawartość tabeli EMP
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO--------- ---------- --------- --------- -------- --------- --------- ---------
7839 KING PRESIDENT 81/11/17 5000 107698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107566 JONES MANAGER 7839 81/04/02 2975 207654 MARTIN SALESMAN 7698 81/09/28 1250 1400 307499 ALLEN SALESMAN 7698 81/02/20 1600 300 307844 TURNER SALESMAN 7698 81/09/08 1500 0 307900 JAMES CLERK 7698 81/12/03 950 307521 WARD SALESMAN 7698 81/02/22 1250 500 307902 FORD ANALYST 7566 81/12/03 3000 207369 SMITH CLERK 7902 80/12/17 800 207788 SCOTT ANALYST 7566 82/12/09 3000 207876 ADAMS CLERK 7788 83/01/12 1100 20
7934 MILLER CLERK 7782 82/01/23 1300 10
Zawartość tabeli SALGRADE
GRADE LOSAL HISAL--------- --------- ---------
1 700 12002 1201 14003 1401 20004 2001 30005 3001 9999
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 4/47
Podstawy języka SQL
Strona 7
Budowa tabel wykorzystywanych na kursie
Podczas kursu bę dziemy korzystać z uprzednio utworzonych tabel opisują cychzatrudnionych w pewnej firmie, ich wynagrodzenia i miejsca pracy. Firma dzieli si ę nadepartamenty. Każdy pracownik należy do pewnej grupy zaszeregowania, w zależności odwysokości pensji, którą otrzymuje.
Tabela DEPT — tabela zawierają ca wszystkie departamenty
Kolumna Opis
DEPTNO Departament number — unikalny numer departamentu
DNAME Nazwa departamentu — przechowywana w zapisie dużymi literami
LOC Lokalizacja departamentu (miasto w którym znajduje się departament)
Tabela EMP — wykaz wszystkich pracowników
Kolumna Opis
EMPNO Employee number — unikalny numer pracownika
ENAME Nazwisko pracownika — przechowywane w zapisie dużymi literamiJOB Etat, stanowisko pracy
MGR Identyfikator szefa (czyli EMPNO we wierszu szefa)
HIREDATE Data zatrudnienia
SAL Pensja
COMM Prowizja naliczona od począ tku roku, dotyczy pracownikówzatrudnionych na stanowisku SALESMAN
DEPTNO Numer departamentu w którym zatrudniony jest pracownik. Wartość w tym polu musi odpowiadać jednemu i tylko jednemu wierszowi
w tabeli DEPT
Podstawy języka SQL
Strona 8
Tabela SALGRADE — tabela „widełek” zaszeregowania
Kolumna Opis
GRADE Numer grupy zaszeregowania
LOSAL LOW SALARY — dolna granica widełek płacowych dla stawkizaszeregowania GRADE
HISAL HIGH SALARY — górna granica widełek
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 5/47
Podstawy języka SQL
Strona 9
Relacyjny model danych
Podstawy języka SQL
Strona 10
Relacyjna baza danych jest to zbiór dwuwymiarowych tabel. Z modelem relacyjnympowią zane są nastę pują ce poję cia:
•
tabela,• kolumna,• wiersz,• pole.
Model relacyjny opiera się na poję ciach zaczerpnię tych z algebry. Poję cia te to:
• relacja,• operator działają cy na relacjach i dają cy w wyniku relacje.
Relacje przedstawiane są w postaci tabel, zaś wybieranie danych z tabel to wynik działania
operatorów relacyjnych na tych tabelach.
Operatory relacyjne
Wyróżniamy nastę pują ce operatory relacyjne:
SELEKCJA pobieranie danych z relacji, w wyniku otrzymujemywszystkie wiersze, które spełniają zadany warunek
PROJEKCJA operacja pobrania wszystkich wierszy, ale tylko wskazanych
kolumn z tych wierszyILOCZYN KARTEZJA ŃSKI wynik połą czenia każdy z każdym wierszy z dwóch relacji
ZŁĄCZENIE połą czenie dwóch relacji poprzez pewne kryterium łą czaceniektóre wiersze z obu relacji
SUMA ZBIOROWA wszystkie wiersze z obu relacji
CZĘŚĆ WSPÓLNA wiersze wspólne dla obu relacji
RÓŻNICA ZBIOROWA wiersze, które wystę pują w jednej, a nie wystę pują w drugiejrelacji
Własności relacyjnej bazy danych
Relacyjna baza danych ma nastę pują ce własności:
• baza jest widziana przez użytkownika jako zbiór tabel,• nazwy tabel w bazie muszą być unikalne,• tabele składają się wierszy i kolumn,• ję zykiem służą cym do operowania na bazie danych jest ję zyk nieproceduralny oparty
na algebrze relacji. Obecnie standardem jest SQL.
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 6/47
Podstawy języka SQL
Strona 11
Tabele w relacyjnej bazie danych mają nastę pują ce własności:
• wiersze w tabeli muszą być różne,•
w tabeli nie ma kolumn o tej samej nazwie,• kolejność wierszy jest nieokreślona,• kolejność kolumn jest nieokreślona,• wartości pól powinny być elementarne.
Podstawy języka SQL
Strona 12
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 7/47
Podstawy języka SQL
Strona 13
Przeglą d ję zyka SQL
Podstawy języka SQL
Strona 14
SQL jest oparty na wyrażeniach ję zyka angielskiego. Jest ję zykiem deklaratywnym —podajemy tylko, co należy wykonać, ale nie specyfikujemy w jaki sposób.
Ję zyk SQL służy do nastę pują cych celów:
• specyfikowania zapytań,• operowania danymi — DML (Data Modification Language) — wstawiania,
modyfikowania i usuwania danych z bazy danych,• definiowania danych — DDL (Data Definition Language) — dodawania do bazy
nowych obiektów,• sterowania danymi — DCL (Data Control Language) — określania praw dostę pu do
danych.
Zasady SQL
Zapisywanie poleceń SQL
• Polecenia SQL mogą być rozmieszczone w kilku liniach. Koniec polecenia SQLzaznacza się średnikiem.
• Zaleca się umieszczanie klauzul od nowej linii.• Można używać tabulacji.• Nie wolno dzielić słowa pomię dzy linie.• Oboję tne, czy używamy małych czy wielkich liter, chyba że sprawdzamy zawartość
pola.
Podstawowy blok zapytań SQL
Za pomocą polecenia SELECT uzyskujemy informacje z bazy.
Polecenie SELECT składa się co najmniej z klauzuli SELECT i klauzuli FROM.
W klauzuli SELECT wymieniamy interesują ce nas kolumny.
W klauzuli FROM wskazujemy, ską d pobrać dane.
Aby pobrać nazwiska pracowników oraz ich zawód, napiszemy:
SELECT ENAME, JOBFROM EMP;
ENAME JOB---------- ---------KING PRESIDENTBLAKE MANAGERCLARK MANAGERJONES MANAGER
MARTIN SALESMANALLEN SALESMAN
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 8/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 9/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 10/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 11/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 12/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 13/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 14/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 15/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 16/47
Podstawy języka SQL
Strona 31
Funkcje grupowe
Podstawy języka SQL
Strona 32
Funkcje grupowe służą do działania na grupach wierszy. Wynikiem funkcji grupowej jestpojedyncza wartość dla całej grupy.Jeśli nie wyspecyfikujemy inaczej, wszystkie wiersze tabeli są traktowane jako jednagrupa.
Funkcja Wynik funkcji
AVG ([DDDDISTINCTISTINCTISTINCTISTINCT | ALLALLALLALL] wyrażenie) wartość średnia wyrażeń, NULL nie jestuwzglę dniane
COUNT ([DISTINCTDISTINCTDISTINCTDISTINCT | ALLALLALLALL] wyrażenie) ilość wystą pień wartości wyrażeń różnych odNULL, gwiazdka (*) użyta w miejscuwyrażenia powoduje obliczenia ilościwszystkich wierszy łą cznie z duplikatamii wartościami NULL
MAX ([DISTINCTDISTINCTDISTINCTDISTINCT | ALLALLALLALL] wyrażenie) maksymalna wartość wyrażeniaMIN ([DDDDISTINCTISTINCTISTINCTISTINCT | ALLALLALLALL] wyrażenie) minimalna wartość wyrażenia
STDDEV ([DISTINCTDISTINCTDISTINCTDISTINCT | ALLALLALLALL] wyrażenie) odchylenie standardowe wyrażeń, bezuwzglę dniania wartości NULL
SUM ([DISTINCTDISTINCTDISTINCTDISTINCT | ALLALLALLALL] wyrażenie) suma wartości wyrażeń, bez uwzglę dnianiawartości NULL
VARIANCE ([DISTINCTDISTINCTDISTINCTDISTINCT | ALLALLALLALL]wyrażenie)
wariancja wyrażeń, bez uwzglę dniania wartościNULL
Kwalifikator DISTINCTDISTINCTDISTINCTDISTINCT ogranicza działanie funkcji grupowych do różnych wartościargumentów.
KwalifikatorALLALLALLALL jest domyślny — funkcje grupowe nie eliminują duplikatów.
Argumentami funkcji grupowych są liczby, a w przypadku funkcji MAX, MIN i COUNTtakże daty, znaki i cią gi znaków.
Wszystkie funkcje grupowe, za wyją tkiem COUNT(*) ignorują wartości NULL.
Stosowanie funkcji grupowych
Aby obliczyć średni zarobek w firmie, napiszemy:
SELECT AVG(SAL)FROM EMP;
AVG(SAL)----------2073,21429
Zwróćmy uwagę , że została zwrócona jedna wartość dla wszystkich wierszy. Cała firma jest tu traktowana jako jedna grupa.
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 17/47
Podstawy języka SQL
Strona 33
Można nałożyć na to polecenie warunek w klauzuli WHERE, np. aby znaleźć minimalnyzarobek na stanowisku 'MANAGER', napiszemy:
SELECT MIN(SAL)FROM EMPWHERE JOB='MANAGER';
MIN(SAL)----------
2450
Aby znaleźć, ilu pracowników pracuje w departamencie 10, napiszemy:
SELECT COUNT(*)FROM EMPWHERE DEPTNO=10;
COUNT(*)----------
3
Klauzula GROUP BY
Do podzielenia wierszy tablicy na grupy używamy klauzuli GROUP BY. Pojedynczą grupę stanowią wszystkie wiersze, dla których wartości podane w klauzuli GROUP BY są identyczne.
Aby obliczyć średnie zarobki w każdym departamencie, napiszemy:SELECT DEPTNO, AVG(SAL)FROM EMPGROUP BY DEPTNO;
DEPTNO AVG(SAL)---------- ----------
10 2916,6666720 217530 1566,66667
Przed grupowaniem możemy wyeliminować pewne wiersze za pomocą klauzuli WHERE:
SELECT JOB, MAX(SAL)FROM EMPWHERE JOB<>'CLERK'GROUP BY JOB;
JOB MAX(SAL)--------- ----------ANALYST 3000MANAGER 2975PRESIDENT 5000SALESMAN 1600
W klauzuli GROUP BY można podać kilka wyrażeń, wtedy wiersze bę dą grupowanew mniejszych grupach.
Podstawy języka SQL
Strona 34
Aby obliczyć minimalny zarobek w każdym departamencie w podziałem na stanowiska,napiszemy:
SELECT DEPTNO, JOB, MIN(SAL)FROM EMPGROUP BY DEPTNO, JOB;
DEPTNO JOB MIN(SAL)---------- --------- ----------
10 CLERK 130010 MANAGER 245010 PRESIDENT 500020 ANALYST 300020 CLERK 80020 MANAGER 297530 CLERK 95030 MANAGER 2850
30 SALESMAN 1250
Wybierane wyrażenia a funkcje grupowe
Poniższe polecenie spowoduje obliczenie średnich zarobków w departamentach. Niebę dzie jednak zbyt użyteczne, bo nie bę dzie widoczne, która średnia odpowiada któremudepartamentowi.
SELECT AVG(SAL)FROM EMP
GROUP BY DEPTNO;
AVG(SAL)----------2916,66667
21751566,66667
Aby poprawić to polecenie, umieśćmy na liście wyboru klauzuli SELECT także numerdepartamentu:
SELECT DEPTNO, AVG(SAL)FROM EMPGROUP BY DEPTNO;
DEPTNO AVG(SAL)---------- ----------
10 2916,6666720 217530 1566,66667
Na liście wyboru klauzuli SELECT mogą wystę pować tylko i wyłą cznienazwy kolumn, które są przedmiotem działania klauzuli GROUP BY, chyba,że wystę pują one jako argument funkcji grupują cej.
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 18/47
Podstawy języka SQL
Strona 35
Klauzula HAVING
Do wybierania interesują cych nas grup służy klauzula HAVING. W klauzuli HAVING umieszczamy warunek wyrażony za pomocą funkcji grupowej.
Aby wybrać średnie zarobki dla grup zawodowych, gdzie maksymalne zarobki są wyższeniż 2000, napiszemy:
SELECT JOB, AVG(SAL)FROM EMPGROUP BY JOBHAVING MAX(SAL)>2000;
JOB AVG(SAL)--------- ----------ANALYST 3000MANAGER 2758,33333PRESIDENT 5000
Klauzula HAVING może poprzedzać klauzulę GROUP BY lub odwrotnie.
Czasami to samo kryterium można wyrazić zarówno za pomocą klauzuli HAVING jaki klauzuli WHERE.
SELECT JOB, AVG(SAL)FROM EMPHAVING JOB<>'CLERK'GROUP BY JOB;
JOB AVG(SAL)--------- ----------
ANALYST 3000MANAGER 2758,33333PRESIDENT 5000SALESMAN 1400
lub
SELECT JOB, AVG(SAL)FROM EMPWHERE JOB<>'CLERK'GROUP BY JOB;
JOB AVG(SAL)--------- ----------
ANALYST 3000MANAGER 2758,33333PRESIDENT 5000SALESMAN 1400
W takiej sytuacji bardziej efektywne jest umieszczenie warunku w klauzuli WHERE.
Podstawy języka SQL
Strona 36
Kolejność wystę powania klauzul
Wymagany porzą dek klauzul jest nastę pują cy:
1. SELECT lista wyrażeń
2. FROM tabela
3. WHERE warunek selekcji wierszy
4. HAVING warunek selekcji grup
5. ORDER BY wyrażenia6. ;
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 19/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 20/47
Podstawy języka SQL
Strona 39
Wybieranie danych z wielu tabel
Podstawy języka SQL
Strona 40
Złą czenie równościowe
Chcemy uzyskać nastę pują cą informację : dla każdego pracownika znaleźć jego nazwisko,zawód (tabela EMP) i nazwę departamentu, w którym pracuje (tabela DEPT).
W obu tych tabelach wystę puje kolumna DEPTNO, określają ca numer departamentui zawierają ca takie same wartości, mówią ce o zwią zku pomię dzy tymi tabelami.
Zwią zek oparty o relację równości nazywamy zwią zkiem równościowym (equi-join).
Warunek równości zapisuje się jak zwykły warunek, z tym, że wartości do porównania są pobierane z różnych tabel.
Aby powią zać ze sobą logicznie tabele EMP i DEPT, napiszemy:
SELECT ENAME, JOB, DNAMEFROM EMP, DEPTWHERE EMP.DEPTNO=DEPT.DEPTNO;
ENAME JOB DNAME---------- --------- --------------KING PRESIDENT ACCOUNTINGBLAKE MANAGER SALESCLARK MANAGER ACCOUNTINGJONES MANAGER RESEARCHMARTIN SALESMAN SALESALLEN SALESMAN SALESTURNER SALESMAN SALESJAMES CLERK SALES
WARD SALESMAN SALESFORD ANALYST RESEARCHSMITH CLERK RESEARCHSCOTT ANALYST RESEARCHADAMS CLERK RESEARCHMILLER CLERK ACCOUNTING
Razem z informacjami pobranymi z tablicy EMP otrzymujemy nazwy departamentówpobrane z tablicy DEPT. Wiersze tabeli EMP są łą czone z takimi wierszami tabeli DEPT,dla których wartość EMP.DEPTNO pokrywa się z DEPT.DEPTNO.
Poprzedzenie nazwy kolumny nazwą tabeli jest wymagane tylko wtedy, gdy w tabelachwymienionych w klauzuli FROM wystę puje kolumna o tej samej nazwie (DEPTNO).Podanie samej nazwy kolumny byłoby niejednoznaczne. Chociaż wartość tego pola dlaobu tabeli jest taka sama, to ze wzglę dów składniowych wymagane jest wskazanie tabeliz której bę dzie pobrana wartość.
W poniższym przykładzie w klauzuli SELECT jest wymagane odwołanie do tablicyDEPT:
SELECT DEPT.DEPTNO, ENAME, JOB, DNAMEFROM EMP, DEPTWHERE EMP.DEPTNO=DEPT.DEPTNOORDER BY DEPT.DEPTNO;
DEPTNO ENAME JOB DNAME---------- ---------- --------- --------------
10 KING PRESIDENT ACCOUNTING10 CLARK MANAGER ACCOUNTING
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 21/47
Podstawy języka SQL
Strona 41
10 MILLER CLERK ACCOUNTING20 JONES MANAGER RESEARCH20 SCOTT ANALYST RESEARCH20 ADAMS CLERK RESEARCH20 SMITH CLERK RESEARCH20 FORD ANALYST RESEARCH30 BLAKE MANAGER SALES30 MARTIN SALESMAN SALES30 ALLEN SALESMAN SALES30 TURNER SALESMAN SALES30 JAMES CLERK SALES30 WARD SALESMAN SALES
Aliasy tabel
Aliasy, czyli nazwy zastę pcze, ułatwiają pisanie zapytań. Aliasy definiuje się w klauzuli
FROM. Obowią zują one jedynie w zapytaniu, w którym są zdefiniowane. Należy używać aliasów także w klauzuli SELECT, mimo iż tekstowo wystę puje ona wcześniej niż klauzula FROM.
Przykład użycia aliasów:
SELECT D.DEPTNO, ENAME, DNAMEFROM EMP E, DEPT DWHERE E.DEPTNO=D.DEPTNOORDER BY D.DEPTNO;
Jeśli alias zostanie zdefiniowany dla tabeli, to oryginalnej nazwy tabeli nie wolno ju ż
używać w tym zapytaniu.
Złą czenia nierównościowe
Złą czenia nierównościowe (non-equi-join) nie są oparte o relację równości. Zwią zekpomię dzy wierszami dwóch tabel określa się poprzez zastosowanie innego operatora niż równość.
Na przykład zwią zek pomię dzy tabelami EMP i SALGRADE jest oparty na nastę pują cychzasadach: określenie stawki zaszeregowania pracownika polega na wskazaniu do jakiego
przedziału (LOSAL, HISAL) należą jego zarobki.Do utworzenia tego warunku zastosujemy operator BETWEEN…ANDBETWEEN…ANDBETWEEN…ANDBETWEEN…AND.
SELECT ENAME, SAL, S.GRADEFROM EMP E, SALGRADE SWHERE SAL BETWEEN LOSAL AND HISAL;
ENAME SAL GRADE---------- ---------- ----------JAMES 950 1SMITH 800 1ADAMS 1100 1MARTIN 1250 2WARD 1250 2
MILLER 1300 2ALLEN 1600 3
Podstawy języka SQL
Strona 42
TURNER 1500 3BLAKE 2850 4CLARK 2450 4JONES 2975 4FORD 3000 4SCOTT 3000 4KING 5000 5
Reguły łą czenia tabel
Ogólna zasada łą czenia tabel:
Minimalna liczba warunków łą czą cych = liczba tabel —1
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 22/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 23/47
Podstawy języka SQL
Strona 45
8. Przygotuj nastę pują ce dane o wszystkich pracownikach osią gają cych dochody do$36000 (włą cznie) oraz tych, którzy pracują na stanowisku „CLERK”.
ENAME JOB ANNUAL_SAL DEPTNO DNAME GRADE
---------- --------- ---------- --------- -------------- ---------JAMES CLERK 11400 30 SALES 1SMITH CLERK 9600 20 RESEARCH 1ADAMS CLERK 13200 20 RESEARCH 1MILLER CLERK 15600 10 ACCOUNTING 2FORD ANALYST 36000 20 RESEARCH 4SCOTT ANALYST 36000 20 RESEARCH 4KING PRESIDENT 60000 10 ACCOUNTING 5
Podstawy języka SQL
Strona 46
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 24/47
Podstawy języka SQL
Strona 47
Inne metody łą czenia tabel
Podstawy języka SQL
Strona 48
Złą czenia zewnę trzne
Podczas łą czenia tabel wiersz w tabeli nie mają cy swojego odpowiednika w drugiej tabelinie zostanie wybrany. Np. w przykładzie łą czenia tabeli EMP i DEPT poprzez kolumnę DEPNO nie został wybrany wiersz tabeli DEPT, gdzie DEPTNO=40 (departamentOPERATIONS), ponieważ nikt nie pracuje w tym departamencie.
Spróbujmy poprawić to złą czenie tak, aby został również wybrany departament 40.Uczynimy to za pomocą złą czenia zewnę trznego (outer-join), gdzie wiersz w tabeli DEPT,który nie ma swojego odpowiednika w tabeli EMP zostanie poł ą czony z wierszem tabeliEMP zawierają cym same wartości NULL (mimo, że wiersz taki w rzeczywistości nieistnieje).
Złą czenie zewnę trzne oznaczamy znakiem (+) po tej stronie równości, która dotyczy tabeliz niepełną informacją .
SELECT ENAME, D.DEPTNO, DNAMEFROM EMP E, DEPT DWHERE E.DEPTNO(+)=D.DEPTNO;
ENAME DEPTNO DNAME---------- ---------- --------------KING 10 ACCOUNTINGCLARK 10 ACCOUNTINGMILLER 10 ACCOUNTINGJONES 20 RESEARCHSCOTT 20 RESEARCH
ADAMS 20 RESEARCHSMITH 20 RESEARCHFORD 20 RESEARCHBLAKE 30 SALESMARTIN 30 SALESALLEN 30 SALESTURNER 30 SALESJAMES 30 SALESWARD 30 SALES
40 OPERATIONS
Operator złą czenia zewnę trznego może wystę pować tylko po jednej stronie równości.
Połą czenie tabeli samej ze sobą
Dzię ki aliasom możemy połą czyć tabelę samą ze sobą . Rozpatrzmy nastę pują cy przykład— chcemy wybrać pracowników, którzy zarabiają mniej od swoich kierowników:
SELECT E.ENAME NAZW_PR,E.SAL PENS_PR,M.ENAME NAZW_SZ,M.SAL PENS_SZ
FROM EMP E, EMP MWHERE E.MGR=M.EMPNO
AND E.SAL<M.SAL;
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 25/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 26/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 27/47
Podstawy języka SQL
Strona 53
5. Znajdź tych pracowników, którzy zostali zatrudnieniu przed przyję ciem do pracy ichkierowników.
EMPLOYEE HIREDATE MANAGER HIREDATE---------- --------- ---------- ---------BLAKE 01-MAY-81 KING 17-NOV-81CLARK 09-JUN-81 KING 17-NOV-81JONES 02-APR-81 KING 17-NOV-81ALLEN 20-FEB-81 BLAKE 01-MAY-81WARD 22-FEB-81 BLAKE 01-MAY-81SMITH 17-DEC-80 FORD 03-DEC-81
6. Podaj inny sposób rozwią zania zadania 1.
DEPTNO DNAME--------- --------------
40 OPERATIONS
Podstawy języka SQL
Strona 54
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 28/47
Podstawy języka SQL
Strona 55
Podzapytania
Podstawy języka SQL
Strona 56
Podzapytania zagnieżdżone
Podzapytanie to polecenie SELECT zagnieżdżone w innym poleceniu SELECT.
SELECTSELECTSELECTSELECT kolumna_1, kolumna_2, …
FROMFROMFROMFROM tabela
WHEREWHEREWHEREWHERE kolumna = (SELECTSELECTSELECTSELECT kolumna
FROMFROMFROMFROM tabela
WHEREWHEREWHEREWHERE warunek);
Podzapytanie to wewnę trzny SELECT wykonywany w pierwszej kolejności, po to, aby jego wynik został użyty do wykonania zapytania zewnę trznego.
Podzapytania zwracają ce jeden wiersz
Podzapytania zwracają ce pojedynczą wartość można traktować jak zwykłe wyrażenie.
Aby znaleźć pracowników zarabiają cych powyżej średniej, możemy postą pić nastę pują co:
1. znaleźć średnią pensję :
SELECT AVG(SAL)FROM EMP;
AVG(SAL)----------2073,21429
2. znaleźć pracowników, których pensja jest wyższa niż obliczona w poprzednimzapytaniu pensja średnia.
SELECT ENAME, JOB, SAL
FROM EMPWHERE SAL>(wynik zapytania z punktu 1)
Powyższe dwa rozkazy można połą czyć w jeden:
SELECT ENAME, JOB, SALFROM EMPWHERE SAL>(SELECT AVG(SAL)
FROM EMP);
ENAME JOB SAL---------- --------- ----------KING PRESIDENT 5000BLAKE MANAGER 2850CLARK MANAGER 2450JONES MANAGER 2975
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 29/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 30/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 31/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 32/47
Podstawy języka SQL
Strona 63
Ję zyk definiowania danych
Podstawy języka SQL
Strona 64
Struktury danych ORACLE
• Nowe tabele mogą być tworzone także podczas pracy użytkowników z bazą danych.• Pamięć dla tabel jest przydzielana w miarę potrzeb. Pamięć dla bazy danych jako
całości przydzielana jest z góry, ale możliwe jest rozszerzanie jej rozmiarów przyzastosowaniu odpowiednich opcji.
• Struktury danych mogą być modyfikowane w trakcie pracy systemu (chyba, żeakurat na nich dokonywane są zmiany przez użytkowników).
• Użytkownicy mogą zakładać własne, prywatne struktury.
Tworzenie tabelNazwa tabeli musi być zgodna regułami nazewnictwa obiektów bazy danych Oracle:
• nazwa obiektu musi zaczynać się od litery;• nazwa może zawierać litery, cyfry oraz znak podkreślenia. Możliwe, ale nie
zalecanie jest używanie znaków $ i #;• małe i duże litery są równoważne;• długość nazwy nie może przekraczać 30 znaków;• w obrę bie bazy danych nie mogą istnieć dwa obiekty o tej samej nazwie — nazwa
musi być unikalna;•
nazwa nie może być nazwą zastrzeżoną dla ję zyka;• jeśli nazwa nie spełnia tych zaleceń to musi być otoczona podwójnymi
cudzysłowami. Wtedy rozróżniane są małe i wielkie litery.
Definiują c tabelę musimy podać listę kolumn opisywaną przez nazwę kolumny, jej typi czasami długość przechowywanej wartości.
Typy kolumn
Każda kolumna musi mieć określony typ danych:
CHAR (n) cią g dowolnych znaków stałej długości, parametr n wskazujemaksymalną długość cią gu
VARCHAR2 (n)
VARCHAR (n)
cią g znaków zmiennej długości, parametr n wskazuje maksymalną długość cią gu
NUMBER (p,s) liczba o precyzji p i skali s, precyzja (liczba cyfr znaczą cych) możeprzyjmować wartości od 1 do 38, skala (liczba cyfr po przecinku)wartości od -84 do 127
DATE daty w przedziale mię dzy 1 stycznia 4712 roku a 31 grudnia 4712naszej ery, w dacie przechowywany jest tez składnik czasu
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 33/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 34/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 35/47
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 36/47
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 37/47
y ję y Q
Strona 73
Usuwanie tabel
Do usuwania tabel służy polecenie DROP TABLE.
DROPDROPDROPDROP TABLETABLETABLETABLE nazwa;
Usunię cie tabeli powoduje:
• utratę wszystkich danych w niej zawartych i wszystkich indeksów zwią zanychz tabelą ,
• wszystkie perspektywy i synonimy oparte na tabeli tracą sens,• polecenie jest automatycznie zatwierdzane (nieodwracalne),• jeśli istnieją tablice, których klucze obce są powią zane z usuwaną tabela to usuwanie
się nie powiedzie, chyba że dodamy na końcu klauzulę CASCADECONSTRAINTS,
• tabelę usunąć może właściciel tabeli lub administrator bazy.
Zmiana nazwy tabeli
Nazwę tabeli zmieniamy poleceniem RENAME TABLE:
RENAME TRENAME TRENAME TRENAME TABLEABLEABLEABLE stara_nazwa TOTOTOTO nowa_nazwa;
y ję y Q
Strona 74
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 38/47
y ję y
Strona 75
Ję zyk manipulowania danymi
Strona 76
Wstawianie wierszy
Polecenie INSERT
Polecenie INSERT służy do wstawiania nowych wierszy do tabeli:
INSERTINSERTINSERTINSERT INTOINTOINTOINTO nazwa_tabeli [(lista_kolumn)]
VALUESVALUESVALUESVALUES (lista_wartości);
Przy wstawianiu do wszystkich kolumn tabeli nie musimy podawać listy kolumn, alewtedy musimy wartości wprowadzać w takiej kolejności, jaka była wyspecyfikowanapodczas polecenia CREATE TABLE. Z tego wzglę du, aby uniezależnić się odpóźniejszych modyfikacji tabeli bezpieczniej jest podawać listę kolumn w klauzuliINSERT INTO.
Przykład
INSERT INTO dept (deptno, dname, loc)VALUES (50, 'SERVICE', 'NEW YORK');
W każdym poleceniu INSERT można wstawić tylko jeden wiersz.
W poleceniu INSERT dopuszczalne są funkcje SQL dotyczą ce pojedynczych wierszy, niewolno natomiast używać podzapytań.
Wstawianie wierszy wybranych w podzapytaniu
Możemy wstawić do tabeli wiersze, które są wynikiem zapytania SELECT.
INSERTINSERTINSERTINSERT INTOINTOINTOINTO nazwa_tabeli [lista_kolumn]
SELECTSELECTSELECTSELECT lista_wyrażeń
FROMFROMFROMFROM ...
W ten sposób możemy za pomocą pojedynczego polecenia INSERT wstawić wielewierszy.
Przykład
Aby skopiować do tabeli MANAGER wszystkich pracowników pracują cych nastanowisku MANAGER napiszemy:
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 39/47
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 40/47
Strona 79
Wykonanie jakiegokolwiek polecenia DDL spowoduje taki sam efekt, jak wykonaniepolecenia COMMIT.
Polecenie ROLLBACK
Służy do jawnego wycofywania transakcji.
ROLLBACKROLLBACKROLLBACKROLLBACK [WORKWORKWORKWORK];
Polecenie ROLBACK powoduje:
• zakończenie transakcji,• wycofanie wszystkich zmian dokonanych w sesji od począ tku transakcji,• usunię cie wszystkich blokad i wszystkich punktów zachowania.
Punkty zachowania
Punkty zachowania stosuje się , aby podzielić transakcje na mniejsze części.
SAVEPOINTSAVEPOINTSAVEPOINTSAVEPOINT nazwa_punktu_zachowania;
Wprowadzenie punktu zachowania pozwala wycofać transakcję do określonego punktuzachowania, nie tracą c przy tym zmian wprowadzonych wcześniej.
Do wycofania zmian do ostatniego punktu zachowania służy nastę pują ce polecenie:
ROLLBACKROLLBACKROLLBACKROLLBACK [WORKWORKWORKWORK] TOTOTOTO [SAVEPOINTSAVEPOINTSAVEPOINTSAVEPOINT] nazwa_punktu_zachowania;
Polecenie to:
• wycofuje część transakcji do podanego punktu zachowania,• zachowuje ten punkt zachowania, ale powoduje utartę wszystkich późniejszych,• zwalnia blokady założone przez polecenia wydane po tym punkcie zachowania.
Niejawne wycofanie
Niejawne całkowite wycofanie transakcji ma miejsce w przypadku np. przerwania sesjiużytkownika, awarii komputera, braku zasilania itp.
Niejawne częściowe wycofanie transakcji ma miejsce w przypadku błę du wykonaniapolecenia. Wycofywane są wtedy zmiany dokonane przez ten błę dny rozkaz.
Strona 80
Automatyczny COMMIT
W SQL*Plus możemy wymusić automatyczne zatwierdzanie transakcji po każdym
poleceniu INSERT, UPDATE i DELETE.
SETSETSETSET AUTOAUTOAUTOAUTO [COMMITCOMMITCOMMITCOMMIT] ONONONON
Dyrektywę odwołujemy poleceniem:
SETSETSETSET AUTOAUTOAUTOAUTO [COMMITCOMMITCOMMITCOMMIT] OFFOFFOFFOFF
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 41/47
Strona 81
Perspektywy
Strona 82
Perspektywy
Perspektywa (view) posiada nastę pują ce cechy:
• jest definiowana w oparciu o tabelę bazową lub inną perspektywę ,.• jest przechowywana w postaci definiują cego ją rozkazu SELECT,• nie przechowuje danych — operuje danymi zgromadzonymi w tabelach bazowych.
Perspektyw używamy, aby:
• ograniczyć dostę p do wszystkich danych z tabeli,• ułatwić użytkownikom pobieranie rezultatów skomplikowanych zapytań,• aby zwolnić użytkowników od wnikania w struktury danych,•
aby udostę pnić użytkownikom dane bazowe sformatowane i przedstawionew czytelny sposób.
Tworzenie perspektyw
Polecenie CREATE VIEW
Perspektywę tworzy się za pomocą poleceniaCREATE VIEW
:CREATECREATECREATECREATE [OROROROR REPLACEREPLACEREPLACEREPLACE] VIEWVIEWVIEWVIEW nazwa_perspektywy
[(lista_kolumn)]
ASASASAS
SELECTSELECTSELECTSELECT …
Lista_kolumn to lista nazw kolumn perspektywy, muszą one odpowiadać pozycjomwyboru z listy SELECT.
Jeśli perspektywa o danej nazwie już istnieje, to aby utworzyć na jej miejsce nową musimy
usunąć
starą lub u
żyć opcji
OROROROR REPLACEREPLACEREPLACEREPLACE
.Przykład
Aby utworzyć perspektywę zawierają ca niektóre dane o pracownikach zatrudnionych nastanowisku 'MANAGER', napiszemy:
CREATE VIEW Emp_ManagerASSELECT empno, ename, sal, deptnoFROM empWHERE job='MANAGER';
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 42/47
Strona 83
Perspektywy używa się jak zwykłej tabeli:
SELECT *FROM Emp_ManagerORDER BY ename;
W definicji perspektywy nie może wystę pować klauzula ORDER BY.
Użycie perspektyw
Perspektywy mogą służyć także do modyfikacji danych w tabeli bazowej.
Jeśli poprzez perspektywę zmodyfikujemy dane tabeli bazowej, może się okazać, że po
modyfikacji bę dą one niedostę pne poprzez tą perspektywę . Aby uniknąć tego możemynałożyć opcję CHECKCHECKCHECKCHECK OPTIONOPTIONOPTIONOPTION, tak aby nie były dozwolone takie modyfikacje wierszy,które spowodują ich wyrzucenie poza perspektywę .
Przykład
CREATE VIEW Emp_ManagerASSELECT empno, ename, sal, job, deptnoFROM empWHERE job='MANAGER'WITH CHECK OPTION;
System nie pozwoli teraz zmienić w wierszu pola job z MANAGER na inną wartość.
Usuwanie perspektywy
Perspektywę usuwa się poleceniem DROP VIEW:
DROPDROPDROPDROP VIEWVIEWVIEWVIEW nazwa_perspektywy;
Perspektywa może być usunię ta tylko przez jej właściciela lub administratora.
Strona 84
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 43/47
Strona 85
Użytkownicy i uprawnienia
Strona 86
Każdy, kto rozpoczyna pracę z Oracle musi być zidentyfikowany poprzez podanieidentyfikatora i hasła, aby móc wykonać operacje, do których jako ten użytkownik jestuprawniony.
Zarzą dzanie użytkownikami
Za zarzą dzanie użytkownikami, ich uprawnieniami i zasobami odpowiedzialny jestadministrator. Może on:
• tworzyć i usuwać użytkowników,• zmieniać hasła użytkowników,• wymusić identyfikacje użytkowników przez system operacyjny,• ograniczyć ilościowo zasoby, które może zajmować użytkownik,•
przydzielić domyślne miejsce w bazie, gdzie bę dą przechowywane obiektyużytkownika,• zdefiniować uprawnienia użytkownika.
Dokładnie te zagadnienia są omawiane na kursach administracji.
Tworzenie użytkownika
Użytkownika tworzy administrator poleceniem CREATE USER :
CREATE USERCREATE USERCREATE USERCREATE USER użytkownik
IDENTIFIED BYIDENTIFIED BYIDENTIFIED BYIDENTIFIED BY hasło;
Tak utworzony użytkownik istnieje już w bazie, ale nie ma jeszcze żadnych uprawnień,a w szczególności nie może podłą czyć się do bazy.
Usuwanie użytkownika
Administrator usuwa użytkownika poleceniem DROP USER :
DROPDROPDROPDROP USERUSERUSERUSER użytkownik;
Jeśli użytkownik jest właścicielem jakiś obiektów, to usunię cie się nie powiedzie, chyba żena końcu dodamy słowo kluczowe CASCADECASCADECASCADECASCADE. Wtedy razem z użytkownikiem usuwane są utworzone przez niego obiekty.
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 44/47
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 45/47
Strona 89
INDEX indeksowanie tabeli
REFERENCES odwołanie do tabeli w obcych kluczach
ALL wszystkie prawa
EXECUTE prawo wykonywania procedur, funkcji i pakietów
Przykład
Aby nadać użytkownikowi Scott prawa wyboru do swojej tabeli emp, użytkownik Adamsnapisze:
GRANT SELECTON empTO Scott;
Dalsze przekazywanie uprawnień
Domyślnie użytkownik nie może przekazywać nadanych mu uprawnień obiektowychinnemu użytkownikowi. Aby mógł to zrobić, uprawnienie musi być nadane z opcją WITHWITHWITHWITH
GRANT OPTIONGRANT OPTIONGRANT OPTIONGRANT OPTION.
GRANTGRANTGRANTGRANT uprawnienie [, uprawnienie...]
ONONONON obiekt
TOTOTOTO użytkownik
WITH GRANTWITH GRANTWITH GRANTWITH GRANT OPTIONOPTIONOPTIONOPTION;
PrzykładAby nadać użytkownikowi Scott prawa wyboru do swojej tabeli emp z prawemprzekazywania tego uprawnienia dalej, użytkownik Adams napisze:
GRANT SELECTON empTO ScottWITH GRANT OPTION;
Uprzywilejowanie typu PUBLIC
Aby przekazać prawo do obiektu wszystkim użytkownikom bazy, używamy opcjiPUBLICPUBLICPUBLICPUBLIC:
GRANT SELECTON empTO PUBLIC;
Odbieranie uprawnień obiektowych
Do odbierania uprawnień obiektowych służy polecenie REVOKE:
Strona 90
REVOKEREVOKEREVOKEREVOKE uprawnienie [, uprawnienie...]
ONONONON obiekt
FROMFROMFROMFROM użytkownik;
Akcje na obiektach innego użytkownika
Do obiektu innego użytkownika odwołujemy się nastę pują co:
nazwa_użytkownika.nazwa_obiektu
Przykład
Aby wybrać wszystko z tabeli emp użytkownika Adams, napiszemy:
SELECT *FROM Adams.emp;
Aby ułatwić odwołania do obiektu, można stworzyć dla nich synonimy.
Synonimy
Dla obiektów można tworzyć nazwy zastę pcze — synonimy:
CREATE SYNONYMCREATE SYNONYMCREATE SYNONYMCREATE SYNONYM nazwa synonimuFORFORFORFOR [właściciel.]nazwa_obiektu;
Synonimy usuwa się poleceniem DROP SYNONYM:
DROPDROPDROPDROP [PUBLICPUBLICPUBLICPUBLIC] SYNONYMSYNONYMSYNONYMSYNONYM nazwa_synonimu;
Role
Rola to zestaw uprawnień, jaki można przyznawać użytkownikom bazy. Rola możezawierać zarówno uprawnienia systemowe jak i obiektowe. Dzię ki rolom ułatwione jestadministrowanie bazą . Jeśli przykładowo dla kierowników działów zdefiniowana jest rolaKIEROWNICY, to chcą c wszystkim kierownikom nadać jakieś uprawnienie wystarczydodać je do roli KIEROWNICY.
Tworzenie roli
Rolę tworzy się poleceniem CREATE ROLE:
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 46/47
Strona 91
CREATE ROLECREATE ROLECREATE ROLECREATE ROLE rola
[IDENTIFIEDIDENTIFIEDIDENTIFIEDIDENTIFIED BYBYBYBY hasło];
Klauzula IDENTIFIED BY służy do określania hasła, przy pomocy którego użytkownikidentyfikuje się z rolą .
Definiowanie uprawnień roli
Uprawnieniami dla roli zarzą dzamy poleceniami GRANT i REVOKE, tak jak robiliśmy todla użytkownika. Każda zmiana uprawnień roli natychmiast skutkuje zmianą uprawnień osób, które mają tą rolę nadaną .
Usuwanie roli
Do usunię cia roli służy polecenie DROP ROLE:
DROPDROPDROPDROP ROLEROLEROLEROLE rola;
Strona 92
Podstawy języka SQL Podstawy języka SQL
7/23/2019 Kurs Oracle - Podstawy SQL
http://slidepdf.com/reader/full/kurs-oracle-podstawy-sql 47/47
Strona 93
Indeks
A
ADD, 71, 72
ALL, 32, 49, 58, 59, 89
ALTER, 71, 72, 78, 87, 89
ALTER TABLE, 71, 72ALTER USER, 87
AND, 23, 25, 26, 41, 48
AS, 70, 71, 82, 83
ASCENDING, 20
AUTO, 80
AVG, 32, 33, 34, 35, 37, 56, 59, 60
B
BETWEEN... AND, 22
C
CASCADE, 73, 86
CASCADE CONTRAINTS, 73
CHAR, 64, 66
CHECK, 67, 83
COMMIT, 78, 79, 80
CONSTRAINT, 66, 67, 68, 69, 70, 72
COUNT, 32, 33, 37
CREATE, 78
CREATE ROLE, 91
CREATE SYNONYM, 90
CREATE TABLE, 65, 66, 67, 68, 69, 70, 71, 76
CREATE USER, 86
D
DATE, 64, 70
DEFAULT, 70
DELETE, 69, 70, 77, 78, 80, 88
DESC, 20, 27, 66, 71
DESCENDING, 20
DESCRIBE, 66
DISABLE, 72
DISTINCT, 19, 32, 58, 59
DROP, 72, 73, 78, 83, 86, 90, 91
DROP ROLE, 91DROP SYNONYM, 90
DROP TABLE, 73
DROP USER, 86
E
ENABLE, 72
EXECUTE, 89
EXIST, 60, 61
FFOR, 90
FOREIGN KEY, 67, 69, 70
FROM, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,25, 26, 32, 33, 34, 35, 36, 40, 41, 48, 49, 50,51, 56, 57, 58, 59, 60, 61, 71, 76, 77, 78, 82,83, 88, 90
G
GRANT, 87, 88, 89, 91
HHAVING, 35, 36, 58, 59, 60
I
IDENTIFIED BY, 86, 87, 91
IN, 22, 23, 24, 26, 57, 58
INDEX, 89
INSERT, 76, 77, 80, 88
INTERSECT, 50
INTO, 76, 77
Strona 94
IS NULL, 22, 24, 26
L
LIKE, 22, 23, 24, 26
LONG, 65
M
MAX, 32, 33, 35, 37, 57, 58
MIN, 32, 33, 34, 37, 38, 60
MINUS, 50
MODIFY, 72
N
NOT, 24, 25, 26, 61, 65, 66, 68, 70, 71, 72
NULL, 18, 24, 25, 32, 48, 65, 66, 68, 70, 71, 72
NUMBER, 18, 64, 65, 66, 68, 70, 71
O
ON, 69, 70, 80, 88, 89, 90
ON DELETE CASCADE, 69, 70
OR, 25, 26, 82
ORDER BY, 20, 21, 36, 40, 41, 50, 51, 59, 60,61, 83
PPRIMARY KEY, 67, 68, 70
PUBLIC, 89, 90
R
RAW, 65
REFERENCES, 69, 70, 89
RENAME TABLE, 73
REPLACE, 82
REVOKE, 88, 90, 91
ROLLBACK, 78, 79
ROWID, 65
S
SAVEPOINT, 79
SELECT, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,24, 25, 26, 32, 33, 34, 35, 36, 40, 41, 48, 49,50, 51, 56, 57, 58, 59, 60, 61, 70, 71, 76, 77,82, 83, 88, 89, 90
SET, 77, 80
STDDEV, 32
SUM, 32
T
TO, 73, 79, 87, 88, 89
U
UNION, 49, 50, 51
UNIQUE, 67, 68, 69
UPDATE, 77, 80, 88
V
VALUES, 76
VARCHAR, 64, 70
VARCHAR2, 64, 65, 66, 67, 69, 71VARIANCE, 32
VIEW, 82, 83
W
WHERE, 21, 22, 23, 24, 25, 26, 33, 35, 36, 40,41, 48, 49, 50, 56, 57, 58, 59, 60, 61, 71, 77,78, 82, 83
WITH ADMIN OPTION, 88
WITH GRANT OPTION, 89
WORK, 78, 79