7151

Szczegóły
Tytuł 7151
Rozszerzenie: PDF
Jesteś autorem/wydawcą tego dokumentu/książki i zauważyłeś że ktoś wgrał ją bez Twojej zgody? Nie życzysz sobie, aby podgląd był dostępny w naszym serwisie? Napisz na adres [email protected] a my odpowiemy na skargę i usuniemy zabroniony dokument w ciągu 24 godzin.

7151 PDF - Pobierz:

Pobierz PDF

 

Zobacz podgląd pliku o nazwie 7151 PDF poniżej lub pobierz go na swoje urządzenie za darmo bez rejestracji. Możesz również pozostać na naszej stronie i czytać dokument online bez limitów.

7151 - podejrzyj 20 pierwszych stron:

Materia�y szkoleniowe Podstawy j�zyka SQL Spis tre�ci Zawarto�� tabel wykorzystywanych na kursie 5 Zawarto�� tabeli DEPT 6 Zawarto�� tabeli EMP 6 Zawarto�� tabeli SALGRADE 6 Budowa tabel wykorzystywanych na kursie 7 Relacyjny model danych 9 Operatory relacyjne 10 W�asno�ci relacyjnej bazy danych 10 Przegl�d j�zyka SQL 13 Zasady SQL 14 �wiczenia 28 Funkcje grupowe 31 Stosowanie funkcji grupowych 32 Klauzula GROUP BY 33 Wybierane wyra�enia a funkcje grupowe 34 Klauzula HAVING 35 Kolejno�� wyst�powania klauzul 36 �wiczenia 37 Wybieranie danych z wielu tabel 39 Z��czenie r�wno�ciowe 40 Z��czenia nier�wno�ciowe 41 �wiczenia 43 Inne metody ��czenia tabel 47 Z��czenia zewn�trzne 48 Po��czenie tabeli samej ze sob� 48 Operatory zbiorowe 49 �wiczenia 52 Podzapytania 55 Podzapytania zagnie�d�one 56 Podzapytania zwracaj�ce jeden wiersz 56 Podzapytania zwracaj�ce wiele wierszy 57 �wiczenia 62 J�zyk definiowania danych 63 Struktury danych ORACLE 64 Tworzenie tabel 64 Warunki integralno�ci 65 Tworzenie tabeli przez zapytanie 70 Zmiana definicji tabeli 71 J�zyk manipulowania danymi 75 Wstawianie wierszy 76 Modyfikacja wierszy 77 Usuwanie wierszy 77 Transakcje 78 Perspektywy 81 Perspektywy 82 Tworzenie perspektyw 82 Usuwanie perspektywy 83 U�ytkownicy i uprawnienia 87 Zarz�dzanie u�ytkownikami 88 Uprawnienia w bazie Oracle 89 Role 91 Zawarto�� tabel wykorzystywanych na kursie Zawarto�� tabeli DEPT DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON Zawarto�� tabeli EMP EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- -------- --------- --------- --------- 7839 KING PRESIDENT 81/11/17 5000 10 7698 BLAKE MANAGER 7839 81/05/01 2850 30 7782 CLARK MANAGER 7839 81/06/09 2450 10 7566 JONES MANAGER 7839 81/04/02 2975 20 7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30 7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30 7844 TURNER SALESMAN 7698 81/09/08 1500 0 30 7900 JAMES CLERK 7698 81/12/03 950 30 7521 WARD SALESMAN 7698 81/02/22 1250 500 30 7902 FORD ANALYST 7566 81/12/03 3000 20 7369 SMITH CLERK 7902 80/12/17 800 20 7788 SCOTT ANALYST 7566 82/12/09 3000 20 7876 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 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999 Budowa tabel wykorzystywanych na kursie Podczas kursu b�dziemy korzysta� z uprzednio utworzonych tabel opisuj�cych zatrudnionych w pewnej firmie, ich wynagrodzenia i miejsca pracy. Firma dzieli si� na departamenty. Ka�dy pracownik nale�y do pewnej grupy zaszeregowania, w zale�no�ci od wysoko�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 literami JOB 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�w zatrudnionych 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 Tabela SALGRADE � tabela �wide�ek� zaszeregowania Kolumna Opis GRADE Numer grupy zaszeregowania LOSAL LOW SALARY � dolna granica wide�ek p�acowych dla stawki zaszeregowania GRADE HISAL HIGH SALARY � g�rna granica wide�ek Relacyjny model danych Relacyjna baza danych jest to zbi�r dwuwymiarowych tabel. Z modelem relacyjnym powi�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 otrzymujemy wszystkie wiersze, kt�re spe�niaj� zadany warunek PROJEKCJA operacja pobrania wszystkich wierszy, ale tylko wskazanych kolumn z tych wierszy ILOCZYN 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 ��czace niekt�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 drugiej relacji 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. 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. Przegl�d j�zyka SQL 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 SQL zaznacza 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, JOB FROM EMP; ENAME JOB ---------- --------- KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN JAMES CLERK WARD SALESMAN FORD ANALYST SMITH CLERK SCOTT ANALYST ADAMS CLERK MILLER CLERK Nazwy kolumn oddzielamy przecinkami. Aby wybra� wszystko z danej tabeli wpisujemy * (gwiazdk�) zamiast listy kolumn. SELECT * FROM EMP; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---- ---------- --------- ---------- --------- ---------- ---------- ---------- 7839 KING PRESIDENT 81/11/17 5000 10 7698 BLAKE MANAGER 7839 81/05/01 2850 30 7782 CLARK MANAGER 7839 81/06/09 2450 10 7566 JONES MANAGER 7839 81/04/02 2975 20 7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30 7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30 7844 TURNER SALESMAN 7698 81/09/08 1500 0 30 7900 JAMES CLERK 7698 81/12/03 950 30 7521 WARD SALESMAN 7698 81/02/22 1250 500 30 7902 FORD ANALYST 7566 81/12/03 3000 20 7369 SMITH CLERK 7902 80/12/17 800 20 7788 SCOTT ANALYST 7566 82/12/09 3000 20 7876 ADAMS CLERK 7788 83/01/12 1100 20 7934 MILLER CLERK 7782 82/01/23 1300 10 W klauzuli SELECT mog� te� by� u�yte: * wyra�enia arytmetyczne, * aliasy (nazwy zast�pcze) kolumn, * konkatenacja, * litera�y. Wyra�enia arytmetyczne W wyra�eniu arytmetycznym mog� wyst�powa� nazwy kolumn, sta�e warto�ci liczbowe oraz operatory arytmetyczne: + dodawanie - odejmowanie * mno�enie / dzielenie Przyk�ad SELECT ENAME, SAL*12 FROM EMP; ENAME SAL*12 ---------- ---------- KING 60000 BLAKE 34200 CLARK 29400 JONES 35700 MARTIN 15000 ALLEN 19200 TURNER 18000 JAMES 11400 WARD 15000 FORD 36000 SMITH 9600 SCOTT 36000 ADAMS 13200 MILLER 15600 W wyra�eniach zachowywany jest nast�puj�cy priorytet dzia�a�: * mno�enie, * dzielenie, * dodawanie, * odejmowanie. Np. w wyra�eniu arytmetycznym 250 +12*34 najpierw zostanie obliczona warto�� wyra�enia 12*24, a do wyniku zostanie dodana warto�� 250. Kolejno�� wykonywania dzia�a� mo�na zmieni� przy pomocy nawias�w. Na przyk�ad w wyra�eniu arytmetycznym (250 +12)*34 najpierw zostanie obliczona warto�� wyra�enia 250+12, a wynik zostanie pomno�ony przez 34. Aliasy kolumn Domy�lne nag��wki kolumn mo�emy zast�pi� innymi nazwami, kt�re b�d� bardziej znacz�ce. Mo�na u�ywa� polskich liter. Alias podaje si� bezpo�rednio po nazwie kolumny, kt�rej nazw� chcemy zmieni�. Spacje w aliasie nie s� dopuszczane, mo�na natomiast utworzy� alias ze spacj� bior�c ca�o�� w podw�jne apostrofy. Przyk�ad SELECT ENAME NAZWISKO, SAL*12 WYNAGR, COMM PROWIZJA FROM EMP; NAZWISKO WYNAGR PROWIZJA ---------- ---------- ---------- KING 60000 BLAKE 34200 CLARK 29400 JONES 35700 MARTIN 15000 1400 ALLEN 19200 300 TURNER 18000 0 JAMES 11400 WARD 15000 500 FORD 36000 SMITH 9600 SCOTT 36000 ADAMS 13200 MILLER 15600 Operator konkatenacji Operator konkatenacji (||) pozwala na ��czenie kolumny z kolumn�, litera�em, wyra�eniem arytmetycznym lub warto�ci� sta��. Argumenty s� ��czone i tworz� jedna kolumn� wynikow�. Aby po��czy� kolumny EMPNO i ENAME i opatrzy� je tytu�em PRACOWNIK, napiszemy: SELECT EMPNO||ENAME PRACOWNIK FROM EMP; PRACOWNIK -------------------------------------------------- 7839KING 7698BLAKE 7782CLARK 7566JONES 7654MARTIN 7499ALLEN 7844TURNER 7900JAMES 7521WARD 7902FORD 7369SMITH 7788SCOTT 7876ADAMS 7934MILLER Litera�y Opr�cz kolumn na li�cie SELECT mog� znajdowa� si� litera�y (ci�gi znak�w lub liczby). Wtedy dla ka�dego wiersza zostanie wypisana ta sama warto�� litera�u: SELECT ENAME PRACOWNIK, ' PRACUJE W DEPARTAMENCIE', DEPTNO DEPARTAMENT FROM EMP; PRACOWNIK 'PRACUJE W DEPARTAMENCIE' DEPARTAMENT ----------- ------------------------- ----------- KING 'PRACUJE W DEPARTAMENCIE' 10 BLAKE 'PRACUJE W DEPARTAMENCIE' 30 CLARK 'PRACUJE W DEPARTAMENCIE' 10 JONES 'PRACUJE W DEPARTAMENCIE' 20 MARTIN 'PRACUJE W DEPARTAMENCIE' 30 ALLEN 'PRACUJE W DEPARTAMENCIE' 30 TURNER 'PRACUJE W DEPARTAMENCIE' 30 JAMES 'PRACUJE W DEPARTAMENCIE' 30 WARD 'PRACUJE W DEPARTAMENCIE' 30 FORD 'PRACUJE W DEPARTAMENCIE' 20 SMITH 'PRACUJE W DEPARTAMENCIE' 20 SCOTT 'PRACUJE W DEPARTAMENCIE' 20 ADAMS 'PRACUJE W DEPARTAMENCIE' 20 MILLER 'PRACUJE W DEPARTAMENCIE' 10 Obs�uga warto�ci NULL Je�li warto�� wiersza w kolumnie jest nieokre�lona, to m�wimy, �e na ona warto�� NULL. Nie jest to to�same z warto�ci� 0. Warto�� wyra�enia w kt�rym b�dzie wyst�powa� warto�� NULL r�wnie� b�dzie NULL. Dlatego te� wyra�enie SAL*12+COMM zwr�ci NULL tam, gdzie COMM by�o r�wne NULL. SELECT ENAME, SAL*12+COMM FROM EMP; ENAME SAL*12+COM ---------- ---------- KING BLAKE CLARK JONES MARTIN 16400 ALLEN 19500 TURNER 18000 JAMES WARD 15500 FORD SMITH SCOTT ADAMS MILLER Aby w wyra�eniu potraktowa� warto�� NULL jako warto�� r�n� od NULL, trzeba u�y� funkcji NVL. SELECT ENAME, SAL*12+NVL(COMM,0) ROCZNE_WYN FROM EMP; ENAME ROCZNE_WYN ---------- ---------- KING 60000 BLAKE 34200 CLARK 29400 JONES 35700 MARTIN 16400 ALLEN 19500 TURNER 18000 JAMES 11400 WARD 15500 FORD 36000 SMITH 9600 SCOTT 36000 ADAMS 13200 MILLER 15600 W powy�szym przyk�adzie warto�ci r�ne od NULL zachowuj� swoj� warto��, za� warto�ci NULL zostan� potraktowane jak 0. Drugi parametr funkcji NVL okre�la, na jak� warto�� nale�y zamieni� warto�� NULL: NVL(DATA,'85/09/01') NVL(NUMBER, 10) NVL(MIASTO,'KRAK�W') Eliminacja duplikat�w Domy�lnie wy�wietlane s� wyniki zapytania bez eliminowania powtarzaj�cych si� warto�ci, np.: SELECT DEPTNO FROM EMP; DEPTNO ---------- 10 30 10 20 30 30 30 30 30 20 20 20 20 10 S�owo kluczowe DISTINCT Eliminacj� powtarzaj�cych si� warto�ci uzyskujemy stosuj�c s�owo kluczowe DISTINCT w klauzuli SELECT. SELECT DISTINCT DEPTNO FROM EMP; DEPTNO ---------- 10 20 30 Mo�na te� za��da� wyspecyfikowania wzajemnie r�nych list warto�ci poprzez podanie w�klauzuli SELECT wielu nazw kolumn. S�owo kluczowe DISTINCT odnosi si� do wszystkich nazw kolumn wyst�puj�cych w klauzuli SELECT. SELECT DISTINCT JOB, DEPTNO FROM EMP; JOB DEPTNO --------- ---------- ANALYST 20 CLERK 10 CLERK 20 CLERK 30 MANAGER 10 MANAGER 20 MANAGER 30 PRESIDENT 10 SALESMAN 30 Klauzula ORDER BY Aby okre�li� kolejno��, w jakiej b�d� zwracane wyniki, nale�y u�y� klauzuli ORDER BY (uporz�dkuj wg). Klauzula ORDER BY musi by� ostatni� klauzul� polecenia SELECT. SELECT ENAME, JOB FROM EMP ORDER BY ENAME; ENAME JOB ---------- --------- ADAMS CLERK ALLEN SALESMAN BLAKE MANAGER CLARK MANAGER FORD ANALYST JAMES CLERK JONES MANAGER KING PRESIDENT MARTIN SALESMAN MILLER CLERK SCOTT ANALYST SMITH CLERK TURNER SALESMAN WARD SALESMAN Domy�lnie dane s� sortowane w porz�dku rosn�cym (ASCENDING) � od najmniejszych do najwi�kszych liczb, od wcze�niejszych do p�niejszych dat, za� ci�gi znakowe s� sortowane wg ustawie� NLS (okre�lanych przy tworzeniu bazy danych). Aby odwr�ci� kolejno�� sortowania nale�y u�y� s�owa DESC (DESCENDING) u�ytego bezpo�rednio po nazwie kolumny wyspecyfikowanej w klauzuli ORDER BY. SELECT ENAME, JOB, HIREDATE FROM EMP ORDER BY HIREDATE DESC; ENAME JOB HIREDATE ---------- --------- --------- ADAMS CLERK 83/01/12 SCOTT ANALYST 82/12/09 MILLER CLERK 82/01/23 JAMES CLERK 81/12/03 FORD ANALYST 81/12/03 KING PRESIDENT 81/11/17 MARTIN SALESMAN 81/09/28 TURNER SALESMAN 81/09/08 CLARK MANAGER 81/06/09 BLAKE MANAGER 81/05/01 JONES MANAGER 81/04/02 WARD SALESMAN 81/02/22 ALLEN SALESMAN 81/02/20 SMITH CLERK 80/12/17 Mo�na sortowa� wed�ug kilku kolumn, wtedy po s�owie kluczowym ORDER BY nale�y poda� nazwy kolumn, po kt�rych chcemy sortowa�. SELECT ENAME, JOB, DEPTNO FROM EMP ORDER BY DEPTNO, ENAME; ENAME JOB DEPTNO ---------- --------- ---------- CLARK MANAGER 10 KING PRESIDENT 10 MILLER CLERK 10 ADAMS CLERK 20 FORD ANALYST 20 JONES MANAGER 20 SCOTT ANALYST 20 SMITH CLERK 20 ALLEN SALESMAN 30 BLAKE MANAGER 30 JAMES CLERK 30 MARTIN SALESMAN 30 TURNER SALESMAN 30 WARD SALESMAN 30 Nazwy kolumn, po kt�rych sortujemy, musz� by� wyspecyfikowane w�klauzuli SELECT. Sortowanie dotyczy tylko wyniku zapytania wy�wietlanego na ekranie. Dane w tabelach nie s� sortowane. Klauzula WHERE Klauzula WHERE odpowiada operacji selekcji. Klauzula ta specyfikuje kryteria doboru wierszy. Klauzula WHERE, o ile jest, musi wyst�powa� bezpo�rednio po klauzuli FROM. Operatory w klauzuli WHERE mog� by� dwojakiego rodzaju: * operatory logiczne, * operatory SQL. Operatory logiczne Dane znakowe i ci�gi znak�w w klauzuli WHERE musz� by� uj�te w pojedyncze apostrofy. Przy por�wnywaniu znak�w Oracle rozr�nia ma�e i wielkie litery. Aby wybra� nazwiska, zaw�d i numer departamentu dla wszystkich zatrudnionych na stanowisku CLERK, napiszemy: SELECT ENAME, JOB, DEPTNO FROM EMP WHERE JOB='CLERK'; ENAME JOB DEPTNO ---------- --------- ---------- JAMES CLERK 30 SMITH CLERK 20 ADAMS CLERK 20 MILLER CLERK 10 Aby wybra� wszystkich zatrudnionych po 01.01.1982r., napiszemy: SELECT ENAME, JOB, DEPTNO FROM EMP WHERE HIREDATE>'82/01/01' ENAME JOB DEPTNO ---------- --------- ---------- SCOTT ANALYST 20 ADAMS CLERK 20 MILLER CLERK 10 Mo�na w klauzuli WHERE por�wnywa� dla ka�dego wiersza warto�ci dw�ch kolumn. Np. �eby wybra� wszystkich, kt�rzy otrzymuj� wy�sz� prowizj� ni� pensj�, napiszemy: SELECT ENAME, JOB, DEPTNO FROM EMP WHERE COMM>SAL; ENAME JOB DEPTNO ---------- --------- ---------- MARTIN SALESMAN 30 Operatory SQL Wyr�niamy 4 operatory SQL, dzia�aj�ce na wszystkich typach danych: * BETWEEN... AND, * IN (lista), * LIKE, * IS NULL. Operator BETWEEN...AND Operator BETWEEN...AND s�u�y do sprawdzenia, czy warto�� znajduje si� w podanym przedziale (wliczaj�c w to kra�ce przedzia�u). G�rna granica musi nast�powa� po dolnej. Aby wybra� wszystkich, kt�rzy zarabiaj� od 1000 do 1500, wliczaj�c w to tych, kt�rzy zarabiaj� 1000 i 1500, napiszemy: SELECT ENAME, JOB, DEPTNO FROM EMP WHERE SAL BETWEEN 1000 AND 1500; ENAME JOB DEPTNO ---------- --------- ---------- MARTIN SALESMAN 30 TURNER SALESMAN 30 WARD SALESMAN 30 ADAMS CLERK 20 MILLER CLERK 10 Operator IN Operator IN s�u�y do sprawdzania, czy dana warto�� znajduje si� na wyspecyfikowanej li�cie. Aby wybra� podw�adnych os�b o identyfikatorach 7839 i 7902, napiszemy: SELECT ENAME, JOB, DEPTNO FROM EMP WHERE MGR IN (7839,7902); ENAME JOB DEPTNO ---------- --------- ---------- BLAKE MANAGER 30 CLARK MANAGER 10 JONES MANAGER 20 SMITH CLERK 20 Dane znakowe wyst�puj�ce na li�cie nale�y uj�� w pojedyncze apostrofy. Operator LIKE Operator LIKE s�u�y do wybierania warto�ci odpowiadaj�cych podanemu wzorcowi. Wzorzec tworz� dwa specjalne symbole: * % (znak procent) � odpowiada dowolnemu ci�gowi znak�w, * _ (znak podkre�lenia) � odpowiada dok�adnie jednemu dowolnemu znakowi. Aby wybra� osoby, kt�re jako drug� liter� w nazwisku maj� liter� "A", napiszemy: SELECT ENAME, JOB, DEPTNO FROM EMP WHERE ENAME LIKE '_A%'; ENAME JOB DEPTNO ---------- --------- ---------- MARTIN SALESMAN 30 JAMES CLERK 30 WARD SALESMAN 30 Aby wybra� osoby, kt�rych nazwisko sk�ada si� z pi�ciu liter, napiszemy: SELECT ENAME, JOB, DEPTNO FROM EMP WHERE ENAME LIKE '_____'; ENAME JOB DEPTNO ---------- --------- ---------- BLAKE MANAGER 30 CLARK MANAGER 10 JONES MANAGER 20 ALLEN SALESMAN 30 JAMES CLERK 30 SMITH CLERK 20 SCOTT ANALYST 20 ADAMS CLERK 20 Operator IS NULL Operator IS NULL s�u�y do wyszukiwania warto�ci NULL. Aby wybra� dane o osobach, kt�re nie posiadaj� szefa, napiszemy: SELECT ENAME, JOB, DEPTNO FROM EMP WHERE MGR IS NULL; ENAME JOB DEPTNO ---------- --------- ---------- KING PRESIDENT 10 Nie mo�na napisa� w klauzuli WHERE warunku MGR=NULL, gdy� wtedy Oracle nie wyszuka �adnych warto�ci. Operatory negacji Operatory negacji s�u�� do zaprzeczania warunkom w klauzuli WHERE. != nie jest r�wny (VAX, UNIX, PC) ^=, _= nie jest r�wny (IBM) <> nie jest r�wny (wszystkie systemy operacyjne) NOT kolumna= nie jest r�wny NOT kolumna> nie jest wi�kszy NOT BETWEEN nie jest w podanym przedziale NOT IN nie jest w zbiorze NOT LIKE nie jest zgodny z mask� IS NOT NULL nie jest NULL Aby wybra� wszystkie osoby, kt�re nie zarabiaj� wi�cej ni� 2000, napiszemy: SELECT ENAME, SAL FROM EMP WHERE NOT SAL>2000; ENAME SAL ---------- ---------- MARTIN 1250 ALLEN 1600 TURNER 1500 JAMES 950 WARD 1250 SMITH 800 ADAMS 1100 MILLER 1300 Aby wybra� osoby, kt�re nie otrzymuj� prowizji, napiszemy: SELECT ENAME, JOB, COMM FROM EMP WHERE COMM IS NOT NULL ENAME JOB COMM ---------- --------- ---------- MARTIN SALESMAN 1400 ALLEN SALESMAN 300 TURNER SALESMAN 0 WARD SALESMAN 500 Tworzenie z�o�onych kryteri�w Do budowania warunk�w z�o�onych s�u�� operatory AND (i) oraz OR (lub). Warunek (X AND Y) jest prawdziwy wtedy i tylko wtedy, gdy X jest prawdziwy i Y jest prawdziwy. Warunek (X OR Y) jest prawdziwy wtedy i tylko wtedy, gdy X jest prawdziwy lub Y jest prawdziwy. Operator AND ma wi�kszy priorytet ni� operator OR. Aby wybra� wszystkich pracownik�w zatrudnionych na stanowisku 'MANAGER' i�zarabiaj�cych wi�cej ni� 2000, napiszemy: SELECT ENAME, JOB, SAL FROM EMP WHERE SAL>2000 AND JOB='MANAGER' NAME JOB SAL ---------- --------- ---------- BLAKE MANAGER 2850 CLARK MANAGER 2450 JONES MANAGER 2975 Poniewa� operator AND ma wy�szy priorytet ni� operator OR, to poni�szy przyk�ad znajdzie nam wszystkie osoby zatrudnione na stanowisku 'CLERK' oraz te osoby zatrudnione na stanowisku 'MANAGER', kt�rych zarobki przekraczaj� 1000. SELECT ENAME, JOB, SAL FROM EMP WHERE SAL>1000 AND JOB='MANAGER' OR JOB='CLERK'; ENAME JOB SAL ---------- --------- ---------- BLAKE MANAGER 2850 CLARK MANAGER 2450 JONES MANAGER 2975 JAMES CLERK 950 SMITH CLERK 800 ADAMS CLERK 1100 MILLER CLERK 1300 Poni�szy przyk�ad, w kt�rym zastosowano nawiasy zmieniaj�ce kolejno�� wykonywania dzia�a� wybierze tylko osoby zatrudnione na stanowisku 'CLERK' lub na stanowisku 'MANAGER', kt�re przy tym zarabiaj� wi�cej ni� 1000. SELECT ENAME, JOB, SAL FROM EMP WHERE SAL>1000 AND (JOB='MANAGER' OR JOB='CLERK'); ENAME JOB SAL ---------- --------- ---------- BLAKE MANAGER 2850 CLARK MANAGER 2450 JONES MANAGER 2975 ADAMS CLERK 1100 MILLER CLERK 1300 Hierarchia operator�w W ka�dym wyra�eniu, o ile nawiasy nie wskazuj� inaczej, operacje s� wykonywane pocz�wszy od operator�w o najwy�szym priorytecie. Je�li dwa operatory o tym samym priorytecie wyst�puj� obok siebie, to s� one wykonywane od lewej do prawej. 1. =, <>, <=, >=, >,<, BETWEEN�AND, IN, LIKE, IS NULL 2. NOT 3. AND 4. OR Aby zapis by� bardziej przejrzysty i w celu unikni�cia b��d�w, zaleca si� stosowanie nawias�w. Kr�tki opis polece� w�a�ciwych dla SQL*Plus Pod SQL*Plus najcz�ciej uruchamiamy skrypty SQL-owe. Najcz�ciej u�ywane polecenia: SPOOL plik; wszystkie polecenia SQL do czasu wydania rozkazu SPOOL OFF b�d� zapisywane do pliku plik @plik uruchomienie skryptu plik ed plik edycja pliku plik w domy�lnym edytorze SPOOL OFF ko�czy wysy�anie danych do pliku DESC wy�wietla opis struktury tabeli CONNECT zmiana pod��czenia do bazy EXIT wyj�cie z programu �wiczenia 1.Wybierz wszystkie dane z tablicy SALGRADE. GRADE LOSAL HISAL --------- --------- --------- 1 700 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999 2. Wybierz wszystkie dane z tablicy EMP. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- -------- --------- --------- --------- 7839 KING PRESIDENT 81/11/17 5000 10 7698 BLAKE MANAGER 7839 81/05/01 2850 30 7782 CLARK MANAGER 7839 81/06/09 2450 10 7566 JONES MANAGER 7839 81/04/02 2975 20 7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30 7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30 7844 TURNER SALESMAN 7698 81/09/08 1500 0 30 7900 JAMES CLERK 7698 81/12/03 950 30 7521 WARD SALESMAN 7698 81/02/22 1250 500 30 7902 FORD ANALYST 7566 81/12/03 3000 20 7369 SMITH CLERK 7902 80/12/17 800 20 7788 SCOTT ANALYST 7566 82/12/09 3000 20 7876 ADAMS CLERK 7788 83/01/12 1100 20 7934 MILLER CLERK 7782 82/01/23 1300 10 3. Wybierz wszystkie dane o pracownikach, kt�rych zarobki mieszcz� si� w przedziale <1000,2000>. ENAME DEPTNO SAL ---------- --------- --------- MARTIN 30 1250 ALLEN 30 1600 TURNER 30 1500 WARD 30 1250 ADAMS 20 1100 MILLER 10 1300 4. Wybierz numery i nazwy departament�w, sortuj�c wed�ug nazw departament�w. DEPTNO DNAME --------- -------------- 10 ACCOUNTING 40 OPERATIONS 20 RESEARCH 30 SALES 5. Wybierz wszystkie, wzajemnie r�ne stanowiska pracy. JOB --------- ANALYST CLERK MANAGER PRESIDENT SALESMAN 6. Wybierz dane o pracownikach zatrudnionych w departamentach 10 i 20 w kolejno�ci alfabetycznej ich nazwisk. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- -------- --------- --------- --------- 7876 ADAMS CLERK 7788 83/01/12 1100 20 7782 CLARK MANAGER 7839 81/06/09 2450 10 7902 FORD ANALYST 7566 81/12/03 3000 20 7566 JONES MANAGER 7839 81/04/02 2975 20 7839 KING PRESIDENT 81/11/17 5000 10 7934 MILLER CLERK 7782 82/01/23 1300 10 7788 SCOTT ANALYST 7566 82/12/09 3000 20 7369 SMITH CLERK 7902 80/12/17 800 20 7. Wybierz nazwiska i stanowiska pracy wszystkich pracownik�w z departamentu 20 zatrudnionych na stanowisku CLERK. ENAME JOB ---------- --------- SMITH CLERK ADAMS CLERK 8. Wybierz nast�puj�ce informacje o wszystkich pracownikach, kt�rzy posiadaj� szefa. ENAME JOB SAL ---------- --------- --------- BLAKE MANAGER 2850 CLARK MANAGER 2450 JONES MANAGER 2975 MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 JAMES CLERK 950 WARD SALESMAN 1250 FORD ANALYST 3000 SMITH CLERK 800 SCOTT ANALYST 3000 ADAMS CLERK 1100 MILLER CLERK 1300 9. Wybierz nazwiska i ca�kowite, roczne zarobki wszystkich pracownik�w. ENAME RENUMERATION ---------- ------------ KING 60000 BLAKE 34200 CLARK 29400 JONES 35700 MARTIN 16400 ALLEN 19500 TURNER 18000 JAMES 11400 WARD 15500 FORD 36000 SMITH 9600 SCOTT 36000 ADAMS 13200 MILLER 15600 10. Wybierz nast�puj�ce dane o tych pracownikach, kt�rzy zostali zatrudnieni w 1982 roku. ENAME DEPTNO HIREDATE ---------- --------- --------- SCOTT 20 09-DEC-82 MILLER 10 23-JAN-82 11. Wybierz nazwiska, roczn� pensj� oraz prowizj� tych wszystkich pracownik�w, kt�rych miesi�czna pensja przekracza prowizj�. Wyniki posortuj wed�ug malej�cych zarobk�w. Je�li dw�ch lub wi�cej pracownik�w ma tak� sam� pensj�, uporz�dkuj dane o nich wed�ug nazwisk zgodnie z alfabetem. ENAME ANNUAL_SAL COMM ---------- ---------- --------- ALLEN 19200 300 TURNER 18000 0 WARD 15000 500 12. Spowoduj wy�wietlenie nast�puj�cych wynik�w. Kto, gdzie, kiedy? ------------------------------------------------------------------------------- KING pracuje na stanowisku PRESIDENT w zespole 10 od 17-NOV-81 BLAKE pracuje na stanowisku MANAGER w zespole 30 od 01-MAY-81 CLARK pracuje na stanowisku MANAGER w zespole 10 od 09-JUN-81 JONES pracuje na stanowisku MANAGER w zespole 20 od 02-APR-81 MARTIN pracuje na stanowisku SALESMAN w zespole 30 od 28-SEP-81 ALLEN pracuje na stanowisku SALESMAN w zespole 30 od 20-FEB-81 TURNER pracuje na stanowisku SALESMAN w zespole 30 od 08-SEP-81 JAMES pracuje na stanowisku CLERK w zespole 30 od 03-DEC-81 WARD pracuje na stanowisku SALESMAN w zespole 30 od 22-FEB-81 FORD pracuje na stanowisku ANALYST w zespole 20 od 03-DEC-81 SMITH pracuje na stanowisku CLERK w zespole 20 od 17-DEC-80 SCOTT pracuje na stanowisku ANALYST w zespole 20 od 09-DEC-82 ADAMS pracuje na stanowisku CLERK w zespole 20 od 12-JAN-83 MILLER pracuje na stanowisku CLERK w zespole 10 od 23-JAN-82 Funkcje grupowe Funkcje grupowe s�u�� do dzia�ania na grupach wierszy. Wynikiem funkcji grupowej jest pojedyncza warto�� dla ca�ej grupy. Je�li nie wyspecyfikujemy inaczej, wszystkie wiersze tabeli s� traktowane jako jedna grupa. Funkcja Wynik funkcji AVG ([DISTINCT | ALL] wyra�enie) warto�� �rednia wyra�e�, NULL nie jest uwzgl�dniane COUNT ([DISTINCT | ALL] wyra�enie) ilo�� wyst�pie� warto�ci wyra�e� r�nych od NULL, gwiazdka (*) u�yta w miejscu wyra�enia powoduje obliczenia ilo�ci wszystkich wierszy ��cznie z duplikatami i�warto�ciami NULL MAX ([DISTINCT | ALL] wyra�enie) maksymalna warto�� wyra�enia MIN ([DISTINCT | ALL] wyra�enie) minimalna warto�� wyra�enia STDDEV ([DISTINCT | ALL] wyra�enie) odchylenie standardowe wyra�e�, bez uwzgl�dniania warto�ci NULL SUM ([DISTINCT | ALL] wyra�enie) suma warto�ci wyra�e�, bez uwzgl�dniania warto�ci NULL VARIANCE ([DISTINCT | ALL] wyra�enie) wariancja wyra�e�, bez uwzgl�dniania warto�ci NULL Kwalifikator DISTINCT ogranicza dzia�anie funkcji grupowych do r�nych warto�ci argument�w. Kwalifikator ALL jest domy�lny � funkcje grupowe nie eliminuj� duplikat�w. Argumentami funkcji grupowych s� liczby, a w przypadku funkcji MAX, MIN i COUNT tak�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. Mo�na na�o�y� na to polecenie warunek w klauzuli WHERE, np. aby znale�� minimalny zarobek na stanowisku 'MANAGER', napiszemy: SELECT MIN(SAL) FROM EMP WHERE JOB='MANAGER'; MIN(SAL) ---------- 2450 Aby znale��, ilu pracownik�w pracuje w departamencie 10, napiszemy: SELECT COUNT(*) FROM EMP WHERE 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 EMP GROUP BY DEPTNO; DEPTNO AVG(SAL) ---------- ---------- 10 2916,66667 20 2175 30 1566,66667 Przed grupowaniem mo�emy wyeliminowa� pewne wiersze za pomoc� klauzuli WHERE: SELECT JOB, MAX(SAL) FROM EMP WHERE JOB<>'CLERK' GROUP BY JOB; JOB MAX(SAL) --------- ---------- ANALYST 3000 MANAGER 2975 PRESIDENT 5000 SALESMAN 1600 W klauzuli GROUP BY mo�na poda� kilka wyra�e�, wtedy wiersze b�d� grupowane w�mniejszych grupach. Aby obliczy� minimalny zarobek w ka�dym departamencie w podzia�em na stanowiska, napiszemy: SELECT DEPTNO, JOB, MIN(SAL) FROM EMP GROUP BY DEPTNO, JOB; DEPTNO JOB MIN(SAL) ---------- --------- ---------- 10 CLERK 1300 10 MANAGER 2450 10 PRESIDENT 5000 20 ANALYST 3000 20 CLERK 800 20 MANAGER 2975 30 CLERK 950 30 MANAGER 2850 30 SALESMAN 1250 Wybierane wyra�enia a funkcje grupowe Poni�sze polecenie spowoduje obliczenie �rednich zarobk�w w departamentach. Nie b�dzie jednak zbyt u�yteczne, bo nie b�dzie widoczne, kt�ra �rednia odpowiada kt�remu departamentowi. SELECT AVG(SAL) FROM EMP GROUP BY DEPTNO; AVG(SAL) ---------- 2916,66667 2175 1566,66667 Aby poprawi� to polecenie, umie��my na li�cie wyboru klauzuli SELECT tak�e numer departamentu: SELECT DEPTNO, AVG(SAL) FROM EMP GROUP BY DEPTNO; DEPTNO AVG(SAL) ---------- ---------- 10 2916,66667 20 2175 30 1566,66667 Na li�cie wyboru klauzuli SELECT mog� wyst�powa� tylko i wy��cznie nazwy kolumn, kt�re s� przedmiotem dzia�ania klauzuli GROUP BY, chyba, �e wyst�puj� one jako argument funkcji grupuj�cej. 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�sze ni� 2000, napiszemy: SELECT JOB, AVG(SAL) FROM EMP GROUP BY JOB HAVING MAX(SAL)>2000; JOB AVG(SAL) --------- ---------- ANALYST 3000 MANAGER 2758,33333 PRESIDENT 5000 Klauzula HAVING mo�e poprzedza� klauzul� GROUP BY lub odwrotnie. Czasami to samo kryterium mo�na wyrazi� zar�wno za pomoc� klauzuli HAVING jak i�klauzuli WHERE. SELECT JOB, AVG(SAL) FROM EMP HAVING JOB<>'CLERK' GROUP BY JOB; JOB AVG(SAL) --------- ---------- ANALYST 3000 MANAGER 2758,33333 PRESIDENT 5000 SALESMAN 1400 lub SELECT JOB, AVG(SAL) FROM EMP WHERE JOB<>'CLERK' GROUP BY JOB; JOB AVG(SAL) --------- ---------- ANALYST 3000 MANAGER 2758,33333 PRESIDENT 5000 SALESMAN 1400 W takiej sytuacji bardziej efektywne jest umieszczenie warunku w klauzuli WHERE. 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�enia 6. ; �wiczenia 1. Znajd� minimaln� pensje w firmie. MINIMUM --------- 800 2. Znajd� minimaln�, maksymaln� i �redni� pensj� w firmie. MIN(SAL) MAX(SAL) AVG(SAL) --------- --------- --------- 800 5000 2073,2143 3. Oblicz minimaln�, maksymaln� pensje dla ka�dego stanowiska pracy. JOB MINIMALNA_PENSJA MAKSYMALNA_PENSJA --------- ---------------- ----------------- ANALYST 3000 3000 CLERK 800 1300 MANAGER 2450 2975 PRESIDENT 5000 5000 SALESMAN 1250 1600 4. Oblicz, ilu pracownik�w jest kierownikami (MANAGER). MANAGERS --------- 3 5. Znajd� �rednie miesi�czne pensje oraz �rednie roczne zarobki dla ka�dego stanowiska. Uwzgl�dnij prowizje. JOB AVSAL AVCOMP --------- --------- --------- ANALYST 3000 36000 CLERK 1037,5 12450 MANAGER 2758,3333 33100 PRESIDENT 5000 60000 SALESMAN 1400 17350 6. Znajd� r�nice mi�dzy najwy�sz� i najni�sz� pensj�. DIFFERENCE ---------- 4200 7. Znajd� departamenty zatrudniaj�ce powy�ej trzech pracownik�w. DEPTNO COUNT(*) --------- --------- 20 5 30 6 8. Sprawd�, czy wszystkie numery pracownik�w s� rzeczywi�cie r�ne (u�ywaj�c grupowania). 9. Podaj najni�sze pensje wyp�acane podw�adnym swoich kierownik�w. Wyeliminuj grupy o minimalnych zarobkach ni�szych ni� 1000. Uporz�dkuj wed�ug pensji. MGR MIN(SAL) --------- --------- 7788 1100 7782 1300 7839 2450 7566 3000 5000 Wybieranie danych z wielu tabel 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 departamentu i�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, DNAME FROM EMP, DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO; ENAME JOB DNAME ---------- --------- -------------- KING PRESIDENT ACCOUNTING BLAKE MANAGER SALES CLARK MANAGER ACCOUNTING JONES MANAGER RESEARCH MARTIN SALESMAN SALES ALLEN SALESMAN SALES TURNER SALESMAN SALES JAMES CLERK SALES WARD SALESMAN SALES FORD ANALYST RESEARCH SMITH CLERK RESEARCH SCOTT ANALYST RESEARCH ADAMS CLERK RESEARCH MILLER CLERK ACCOUNTING Razem z informacjami pobranymi z tablicy EMP otrzymujemy nazwy departament�w pobrane 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 tabelach wymienionych w klauzuli FROM wyst�puje kolumna o tej samej nazwie (DEPTNO). Podanie samej nazwy kolumny by�oby niejednoznaczne. Chocia� warto�� tego pola dla obu tabeli jest taka sama, to ze wzgl�d�w sk�adniowych wymagane jest wskazanie tabeli z�kt�rej b�dzie pobrana warto��. W poni�szym przyk�adzie w klauzuli SELECT jest wymagane odwo�anie do tablicy DEPT: SELECT DEPT.DEPTNO, ENAME, JOB, DNAME FROM EMP, DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO ORDER BY DEPT.DEPTNO; DEPTNO ENAME JOB DNAME ---------- ---------- --------- -------------- 10 KING PRESIDENT ACCOUNTING 10 CLARK MANAGER ACCOUNTING 10 MILLER CLERK ACCOUNTING 20 JONES MANAGER RESEARCH 20 SCOTT ANALYST RESEARCH 20 ADAMS CLERK RESEARCH 20 SMITH CLERK RESEARCH 20 FORD ANALYST RESEARCH 30 BLAKE MANAGER SALES 30 MARTIN SALESMAN SALES 30 ALLEN SALESMAN SALES 30 TURNER SALESMAN SALES 30 JAMES CLERK SALES 30 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, DNAME FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO ORDER 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�zek pomi�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�cych zasadach: okre�lenie stawki zaszeregowania pracownika polega na wskazaniu do jakiego przedzia�u (LOSAL, HISAL) nale�� jego zarobki. Do utworzenia tego warunku zastosujemy operator BETWEEN�AND. SELECT ENAME, SAL, S.GRADE FROM EMP E, SALGRADE S WHERE SAL BETWEEN LOSAL AND HISAL; ENAME SAL GRADE ---------- ---------- ---------- JAMES 950 1 SMITH 800 1 ADAMS 1100 1 MARTIN 1250 2 WARD 1250 2 MILLER 1300 2 ALLEN 1600 3 TURNER 1500 3 BLAKE 2850 4 CLARK 2450 4 JONES 2975 4 FORD 3000 4 SCOTT 3000 4 KING 5000 5 Regu�y ��czenia tabel Og�lna zasada ��czenia tabel: Minimalna liczba warunk�w ��cz�cych = liczba tabel �1 �wiczenia 1. Wybierz nazwiska oraz nazwy departament�w wszystkich pracownik�w, w kolejno�ci alfabetycznej nazw departament�w. ENAME DNAME ---------- -------------- KING ACCOUNTING CLARK ACCOUNTING MILLER ACCOUNTING JONES RESEARCH SCOTT RESEARCH ADAMS RESEARCH SMITH RESEARCH FORD RESEARCH BLAKE SALES MARTIN SALES ALLEN SALES TURNER SALES JAMES SALES WARD SALES 2. Wybierz nazwiska wszystkich pracownik�w wraz z numerami i nazwami departament�w, w kt�rych s� zatrudnieni. ENAME DEPTNO DNAME ---------- --------- --------------