Materiały szkoleniowe. Podstawy języka SQL

Wielkość: px
Rozpocząć pokaz od strony:

Download "Materiały szkoleniowe. Podstawy języka SQL"

Transkrypt

1 Materiały szkoleniowe Podstawy języka SQL

2 Spis treści Zawartość tabel wykorzystywanych na kursie... 4 Zawartość tabeli DEPT...5 Zawartość tabeli EMP...5 Zawartość tabeli SALGRADE...5 Budowa tabel wykorzystywanych na kursie...6 Relacyjny model danych... 8 Operatory relacyjne...9 Własności relacyjnej bazy danych...9 Przegląd języka SQL Zasady SQL...12 Ćwiczenia...25 Funkcje grupowe Stosowanie funkcji grupowych...29 Klauzula GROUP BY...30 Wybierane wyrażenia a funkcje grupowe...31 Klauzula HAVING...32 Kolejność występowania klauzul...33 Ćwiczenia...34 Wybieranie danych z wielu tabel Złączenie równościowe...37 Złączenia nierównościowe...38 Ćwiczenia...40 Inne metody łączenia tabel Złączenia zewnętrzne...44 Połączenie tabeli samej ze sobą...44 Operatory zbiorowe...45 Strona 2

3 Ćwiczenia Podzapytania Podzapytania zagnieżdżone Podzapytania zwracające jeden wiersz Podzapytania zwracające wiele wierszy Ćwiczenia Język definiowania danych Struktury danych ORACLE Tworzenie tabel Warunki integralności Tworzenie tabeli przez zapytanie Zmiana definicji tabeli Język manipulowania danymi Wstawianie wierszy Modyfikacja wierszy Usuwanie wierszy Transakcje Perspektywy Perspektywy Tworzenie perspektyw Usuwanie perspektywy Użytkownicy i uprawnienia Zarządzanie użytkownikami Uprawnienia w bazie Oracle Role Strona 3

4 Zawartość tabel wykorzystywanych na kursie Strona 4

5 Zawartość tabeli DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON Zawartość tabeli EMP EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT 81/11/ BLAKE MANAGER /05/ CLARK MANAGER /06/ JONES MANAGER /04/ MARTIN SALESMAN /09/ ALLEN SALESMAN /02/ TURNER SALESMAN /09/ JAMES CLERK /12/ WARD SALESMAN /02/ FORD ANALYST /12/ SMITH CLERK /12/ SCOTT ANALYST /12/ ADAMS CLERK /01/ MILLER CLERK /01/ Zawartość tabeli SALGRADE GRADE LOSAL HISAL Strona 5

6 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 DEPTNO DNAME LOC Opis Departament number unikalny numer departamentu Nazwa departamentu przechowywana w zapisie dużymi literami Lokalizacja departamentu (miasto w którym znajduje się departament) Tabela EMP wykaz wszystkich pracowników Kolumna EMPNO ENAME JOB MGR HIREDATE Opis Employee number unikalny numer pracownika Nazwisko pracownika przechowywane w zapisie dużymi literami Etat, stanowisko pracy Identyfikator szefa (czyli EMPNO we wierszu szefa) 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 Strona 6

7 Tabela SALGRADE tabela widełek zaszeregowania Kolumna GRADE LOSAL HISAL Opis Numer grupy zaszeregowania LOW SALARY dolna granica widełek płacowych dla stawki zaszeregowania GRADE HIGH SALARY górna granica widełek Strona 7

8 Relacyjny model danych Strona 8

9 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 PROJEKCJA ILOCZYN KARTEZJAŃSKI ZŁĄCZENIE SUMA ZBIOROWA CZĘŚĆ WSPÓLNA RÓŻNICA ZBIOROWA pobieranie danych z relacji, w wyniku otrzymujemy wszystkie wiersze, które spełniają zadany warunek operacja pobrania wszystkich wierszy, ale tylko wskazanych kolumn z tych wierszy wynik połączenia każdy z każdym wierszy z dwóch relacji połączenie dwóch relacji poprzez pewne kryterium łączace niektóre wiersze z obu relacji wszystkie wiersze z obu relacji wiersze wspólne dla obu relacji 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. Strona 9

10 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. Strona 10

11 Przegląd języka SQL Przegląd języka SQL Strona 11

12 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 ; ENAME JOB KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN ALLEN SALESMAN Strona 12

13 TURNER JAMES WARD FORD SMITH SCOTT ADAMS MILLER SALESMAN CLERK SALESMAN ANALYST CLERK ANALYST CLERK CLERK Nazwy kolumn oddzielamy przecinkami. Aby wybrać wszystko z danej tabeli wpisujemy * (gwiazdkę) zamiast listy kolumn. SELECT * ; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT 81/11/ BLAKE MANAGER /05/ CLARK MANAGER /06/ JONES MANAGER /04/ MARTIN SALESMAN /09/ ALLEN SALESMAN /02/ TURNER SALESMAN /09/ JAMES CLERK /12/ WARD SALESMAN /02/ FORD ANALYST /12/ SMITH CLERK /12/ SCOTT ANALYST /12/ ADAMS CLERK /01/ MILLER CLERK /01/ 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 ; ENAME SAL* KING BLAKE Strona 13

14 CLARK JONES MARTIN ALLEN TURNER JAMES WARD FORD SMITH 9600 SCOTT ADAMS MILLER W wyrażeniach zachowywany jest następujący priorytet działań: mnożenie, dzielenie, dodawanie, odejmowanie. Np. w wyrażeniu arytmetycznym *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 ( )*34 najpierw zostanie obliczona wartość wyrażenia , 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 ; NAZWISKO WYNAGR PROWIZJA KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES WARD FORD SMITH 9600 SCOTT ADAMS MILLER Strona 14

15 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 ; PRACOWNIK KING 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 ; 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 Strona 15

16 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 ; ENAME SAL*12+COM KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES WARD 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 ; ENAME ROCZNE_WYN KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES WARD FORD SMITH 9600 SCOTT ADAMS MILLER 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') Strona 16

17 Eliminacja duplikatów Domyślnie wyświetlane są wyniki zapytania bez eliminowania powtarzających się wartości, np.: SELECT DEPTNO ; DEPTNO Słowo kluczowe DISTINCT Eliminację powtarzających się wartości uzyskujemy stosując słowo kluczowe DISTINCT w klauzuli SELECT. SELECT DISTINCT DEPTNO ; DEPTNO 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 ; JOB DEPTNO ANALYST 20 CLERK 10 CLERK 20 CLERK 30 MANAGER 10 Strona 17

18 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 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 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 Strona 18

19 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 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. Strona 19

20 Aby wybrać nazwiska, zawód i numer departamentu dla wszystkich zatrudnionych na stanowisku CLERK, napiszemy: SELECT ENAME, JOB, DEPTNO WHERE JOB='CLERK'; ENAME JOB DEPTNO JAMES CLERK 30 SMITH CLERK 20 ADAMS CLERK 20 MILLER CLERK 10 Aby wybrać wszystkich zatrudnionych po r., napiszemy: SELECT ENAME, JOB, DEPTNO 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 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. Strona 20

21 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 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 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 WHERE ENAME LIKE '_A%'; ENAME JOB DEPTNO MARTIN SALESMAN 30 JAMES CLERK 30 WARD SALESMAN 30 Strona 21

22 Aby wybrać osoby, których nazwisko składa się z pięciu liter, napiszemy: SELECT ENAME, JOB, DEPTNO 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 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 Strona 22

23 Aby wybrać wszystkie osoby, które nie zarabiają więcej niż 2000, napiszemy: SELECT ENAME, SAL 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 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 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ą Strona 23

24 SELECT ENAME, JOB, SAL 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ż SELECT ENAME, JOB, SAL 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. Strona 24

25 Najczęściej używane polecenia: SPOOL ed plik SPOOL OFF DESC CONNECT EXIT wszystkie polecenia SQL do czasu wydania rozkazu SPOOL OFF będą zapisywane do pliku plik uruchomienie skryptu plik edycja pliku plik w domyślnym edytorze kończy wysyłanie danych do pliku wyświetla opis struktury tabeli zmiana podłączenia do bazy wyjście z programu Strona 25

26 Ćwiczenia 1.Wybierz wszystkie dane z tablicy SALGRADE. GRADE LOSAL HISAL Wybierz wszystkie dane z tablicy EMP. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT 81/11/ BLAKE MANAGER /05/ CLARK MANAGER /06/ JONES MANAGER /04/ MARTIN SALESMAN /09/ ALLEN SALESMAN /02/ TURNER SALESMAN /09/ JAMES CLERK /12/ WARD SALESMAN /02/ FORD ANALYST /12/ SMITH CLERK /12/ SCOTT ANALYST /12/ ADAMS CLERK /01/ MILLER CLERK /01/ Wybierz wszystkie dane o pracownikach, których zarobki mieszczą się w przedziale <1000,2000>. ENAME DEPTNO SAL MARTIN ALLEN TURNER WARD ADAMS MILLER Wybierz numery i nazwy departamentów, sortując według nazw departamentów. DEPTNO DNAME ACCOUNTING 40 OPERATIONS 20 RESEARCH 30 SALES Strona 26

27 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 ADAMS CLERK /01/ CLARK MANAGER /06/ FORD ANALYST /12/ JONES MANAGER /04/ KING PRESIDENT 81/11/ MILLER CLERK /01/ SCOTT ANALYST /12/ SMITH CLERK /12/ 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 Wybierz nazwiska i całkowite, roczne zarobki wszystkich pracowników. ENAME RENUMERATION KING BLAKE CLARK JONES MARTIN Strona 27

28 ALLEN TURNER JAMES WARD FORD SMITH 9600 SCOTT ADAMS MILLER Wybierz następujące dane o tych pracownikach, którzy zostali zatrudnieni w 1982 roku. ENAME DEPTNO HIREDATE SCOTT DEC-82 MILLER JAN 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 TURNER WARD 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 Strona 28

29 Funkcje grupowe Strona 29

30 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 AVG ([DISTINCT ALL] wyrażenie) COUNT ([DISTINCT ALL] wyrażenie) MAX ([DISTINCT ALL] wyrażenie) MIN ([DISTINCT ALL] wyrażenie) STDDEV ([DISTINCT ALL] wyrażenie) SUM ([DISTINCT ALL] wyrażenie) VARIANCE ([DISTINCT ALL] wyrażenie) Wynik funkcji wartość średnia wyrażeń, NULL nie jest uwzględniane 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 maksymalna wartość wyrażenia minimalna wartość wyrażenia odchylenie standardowe wyrażeń, bez uwzględniania wartości NULL suma wartości wyrażeń, bez uwzględniania wartości NULL 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) ; AVG(SAL) ,21429 Zwróćmy uwagę, że została zwrócona jedna wartość dla wszystkich wierszy. Cała firma jest tu traktowana jako jedna grupa. Strona 30

31 Można nałożyć na to polecenie warunek w klauzuli WHERE, np. aby znaleźć minimalny zarobek na stanowisku 'MANAGER', napiszemy: SELECT MIN(SAL) WHERE JOB='MANAGER'; MIN(SAL) Aby znaleźć, ilu pracowników pracuje w departamencie 10, napiszemy: SELECT COUNT(*) WHERE DEPTNO=10; COUNT(*) 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) GROUP BY DEPTNO; DEPTNO AVG(SAL) , ,66667 Przed grupowaniem możemy wyeliminować pewne wiersze za pomocą klauzuli WHERE: SELECT JOB, MAX(SAL) 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. Strona 31

32 Aby obliczyć minimalny zarobek w każdym departamencie w podziałem na stanowiska, napiszemy: SELECT DEPTNO, JOB, MIN(SAL) GROUP BY DEPTNO, JOB; DEPTNO JOB MIN(SAL) CLERK MANAGER PRESIDENT ANALYST CLERK MANAGER CLERK MANAGER 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) GROUP BY DEPTNO; AVG(SAL) , ,66667 Aby poprawić to polecenie, umieśćmy na liście wyboru klauzuli SELECT także numer departamentu: SELECT DEPTNO, AVG(SAL) GROUP BY DEPTNO; DEPTNO AVG(SAL) , ,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. Strona 32

33 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) 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) HAVING JOB<>'CLERK' GROUP BY JOB; JOB AVG(SAL) ANALYST 3000 MANAGER 2758,33333 PRESIDENT 5000 SALESMAN 1400 lub SELECT JOB, AVG(SAL) 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. Strona 33

34 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. ; Strona 34

35 1. Znajdź minimalną pensje w firmie. MINIMUM Ćwiczenia 2. Znajdź minimalną, maksymalną i średnią pensję w firmie. MIN(SAL) MAX(SAL) AVG(SAL) , Oblicz minimalną, maksymalną pensje dla każdego stanowiska pracy. JOB MINIMALNA_PENSJA MAKSYMALNA_PENSJA ANALYST CLERK MANAGER PRESIDENT SALESMAN Oblicz, ilu pracowników jest kierownikami (MANAGER). MANAGERS Znajdź średnie miesięczne pensje oraz średnie roczne zarobki dla każdego stanowiska. Uwzględnij prowizje. JOB AVSAL AVCOMP ANALYST CLERK 1037, MANAGER 2758, PRESIDENT SALESMAN Znajdź różnice między najwyższą i najniższą pensją. DIFFERENCE Znajdź departamenty zatrudniające powyżej trzech pracowników. DEPTNO COUNT(*) Strona 35

36 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ż Uporządkuj według pensji. MGR MIN(SAL) Strona 36

37 Wybieranie danych z wielu tabel Strona 37

38 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, 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, DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO ORDER BY DEPT.DEPTNO; DEPTNO ENAME JOB DNAME KING PRESIDENT ACCOUNTING 10 CLARK MANAGER ACCOUNTING Strona 38

39 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 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 E, SALGRADE S WHERE SAL BETWEEN LOSAL AND HISAL; ENAME SAL GRADE JAMES SMITH ADAMS MARTIN WARD MILLER ALLEN Strona 39

40 TURNER BLAKE CLARK JONES FORD SCOTT KING Reguły łączenia tabel Ogólna zasada łączenia tabel: Minimalna liczba warunków łączących = liczba tabel 1 Strona 40

41 Ć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 KING 10 ACCOUNTING BLAKE 30 SALES CLARK 10 ACCOUNTING JONES 20 RESEARCH MARTIN 30 SALES ALLEN 30 SALES TURNER 30 SALES JAMES 30 SALES WARD 30 SALES FORD 20 RESEARCH SMITH 20 RESEARCH SCOTT 20 RESEARCH ADAMS 20 RESEARCH MILLER 10 ACCOUNTING 3. Dla pracowników o miesięcznej pensji 1500 podaj ich nazwiska, miejsca usytuowania ich departamentów oraz nazwy tych departamentów. ENAME LOCATION DNAME KING NEW YORK ACCOUNTING BLAKE CHICAGO SALES CLARK NEW YORK ACCOUNTING JONES DALLAS RESEARCH ALLEN CHICAGO SALES FORD DALLAS RESEARCH SCOTT DALLAS RESEARCH Strona 41

42 4. Utwórz następującą listę pracowników z zaszeregowaniem ich do klas zarobkowych. ENAME JOB SAL GRADE JAMES CLERK SMITH CLERK ADAMS CLERK MARTIN SALESMAN WARD SALESMAN MILLER CLERK ALLEN SALESMAN TURNER SALESMAN BLAKE MANAGER CLARK MANAGER JONES MANAGER FORD ANALYST SCOTT ANALYST KING PRESIDENT Wybierz informację o pracownikach, których zarobki odpowiadają klasie 3. ENAME JOB SAL GRADE ALLEN SALESMAN TURNER SALESMAN Wybierz pracowników zatrudnionych w Dallas. ENAME SAL LOCATION JONES 2975 DALLAS FORD 3000 DALLAS SMITH 800 DALLAS SCOTT 3000 DALLAS ADAMS 1100 DALLAS 7.Podaj następujące dane o wszystkich pracownikach, z wyjątkiem tych, którzy pracują na stanowisku CLERK. Uporządkuj je według malejących zarobków. ENAME JOB SAL GRADE DNAME JAMES CLERK SALES SMITH CLERK RESEARCH ADAMS CLERK RESEARCH MARTIN SALESMAN SALES WARD SALESMAN SALES MILLER CLERK ACCOUNTING ALLEN SALESMAN SALES TURNER SALESMAN SALES BLAKE MANAGER SALES CLARK MANAGER ACCOUNTING JONES MANAGER RESEARCH FORD ANALYST RESEARCH SCOTT ANALYST RESEARCH KING PRESIDENT ACCOUNTING Strona 42

43 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 SALES 1 SMITH CLERK RESEARCH 1 ADAMS CLERK RESEARCH 1 MILLER CLERK ACCOUNTING 2 FORD ANALYST RESEARCH 4 SCOTT ANALYST RESEARCH 4 KING PRESIDENT ACCOUNTING 5 Strona 43

44 Inne metody łączenia tabel Inne metody łączenia tabel Strona 44

45 Złączenia zewnętrzne Podczas łączenia tabel wiersz w tabeli nie mający swojego odpowiednika w drugiej tabeli nie zostanie wybrany. Np. w przykładzie łączenia tabeli EMP i DEPT poprzez kolumnę DEPNO nie został wybrany wiersz tabeli DEPT, gdzie DEPTNO=40 (departament OPERATIONS), 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 tabeli EMP zawierającym same wartości NULL (mimo, że wiersz taki w rzeczywistości nie istnieje). Złączenie zewnętrzne oznaczamy znakiem (+) po tej stronie równości, która dotyczy tabeli z niepełną informacją. SELECT ENAME, D.DEPTNO, DNAME E, DEPT D WHERE E.DEPTNO(+)=D.DEPTNO; ENAME DEPTNO DNAME KING 10 ACCOUNTING CLARK 10 ACCOUNTING MILLER 10 ACCOUNTING JONES 20 RESEARCH SCOTT 20 RESEARCH ADAMS 20 RESEARCH SMITH 20 RESEARCH FORD 20 RESEARCH BLAKE 30 SALES MARTIN 30 SALES ALLEN 30 SALES TURNER 30 SALES JAMES 30 SALES WARD 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 E, EMP M WHERE E.MGR=M.EMPNO AND E.SAL<M.SAL; Strona 45

46 NAZW_PR PENS_PR NAZW_SZ PENS_SZ BLAKE 2850 KING 5000 CLARK 2450 KING 5000 JONES 2975 KING 5000 MARTIN 1250 BLAKE 2850 ALLEN 1600 BLAKE 2850 TURNER 1500 BLAKE 2850 JAMES 950 BLAKE 2850 WARD 1250 BLAKE 2850 SMITH 800 FORD 3000 ADAMS 1100 SCOTT 3000 MILLER 1300 CLARK 2450 Jak widać w klauzuli FROM, odwołaliśmy się dwukrotnie do tej samej tabeli za pomocą dwóch aliasów E i M. Operatory zbiorowe Operatory zbiorowe używane są do działań na wynikach dwóch lub więcej zapytań SELECT. Ważne jest, aby wszystkie zapytania, na których będziemy używać operatorów zbiorowych zwracały te samy typy wierszy, np.: (liczba, ciąg znaków, ciąg znaków, data). Operator UNION Operator zbiorowy UNION jest używany do tworzenia sumy dwóch zbiorów wierszy (wyników zapytania SELECT). Aby otrzymać wszystkie, wzajemnie różne wiersze zwracane w wyniku dwóch poleceń SELECT, napiszemy: SELECT JOB WHERE DEPTNO=30 UNION SELECT JOB WHERE DEPTNO=10 JOB CLERK MANAGER PRESIDENT SALESMAN Operacja UNION (podobnie jak inne operatory zbiorowe) powoduje automatyczną eliminację duplikatów. Aby otrzymać w wyniku wszystkie wiersze z obu tabel należy użyć operatora UNION ALL. Strona 46

47 Operator INTERSECT Operator zbiorowy INTERSECT (przecięcie zbiorów) powoduje wybranie wierszy wspólnych dla wyników obu zapytań SELECT. SELECT JOB WHERE DEPTNO=30 INTERSECT SELECT JOB WHERE DEPTNO=20 JOB CLERK MANAGER Operator MINUS Operator zbiorowy MINUS (różnica zbiorów) powoduje wybranie wierszy zwracanych przez pierwszy rozkaz, nie zwracanych przez rozkaz drugi. SELECT JOB WHERE DEPTNO=30 MINUS SELECT JOB WHERE DEPTNO=20 JOB SALESMAN Zapytanie może się składać z więcej niż dwóch zapytań SELECT połączonych operatorami zbiorowymi. W takim przepadku najwyższy priorytet ma operator INTERSECT, potem operatory UNION i MINUS (równe priorytety). W przypadkach wątpliwych najlepiej stosować nawiasy. Klauzula ORDER BY w zapytaniach z operatorami zbiorowymi W zapytaniach z operatorami zbiorowymi można użyć klauzuli ORDER BY. Odnosi się ona zawsze do wyniku zapytania i może być użyta tylko raz. Umieszcza się ją zawsze na końcu zapytania. Ponieważ na listach wyboru poleceń SELECT nazwy mogą być różne, w klauzuli ORDER BY specyfikuje się nie nazwę kolumny, tylko jej pozycję. Strona 47

48 SELECT EMPNO, ENAME, SAL UNION SELECT ID, NAME, SALARY _HISTORY ORDER BY 2; Wyniki powyższego zapytania zostaną posortowane wg kolumny drugiej, czyli wg nazwisk pracowników. Strona 48

49 Ćwiczenia 1. Znajdź departament w którym nikt nie jest zatrudniony. DEPTNO DNAME OPERATIONS 2. Obok numeru i nazwiska pracownika podaj numer i nazwisko jego kierownika. EMPNO ENAME MGRNO MGR_NAME BLAKE 7839 KING 7782 CLARK 7839 KING 7566 JONES 7839 KING 7654 MARTIN 7698 BLAKE 7499 ALLEN 7698 BLAKE 7844 TURNER 7698 BLAKE 7900 JAMES 7698 BLAKE 7521 WARD 7698 BLAKE 7902 FORD 7566 JONES 7369 SMITH 7902 FORD 7788 SCOTT 7566 JONES 7876 ADAMS 7788 SCOTT 7934 MILLER 7782 CLARK 3. Zmodyfikuj rozwiązanie poprzedniego zadania w ten sposób, aby wyświetlić także informacje o pracowniku KING, który nie posiada szefa. EMPNO ENAME MGRNO MGR_NAME KING 7698 BLAKE 7839 KING 7782 CLARK 7839 KING 7566 JONES 7839 KING 7654 MARTIN 7698 BLAKE 7499 ALLEN 7698 BLAKE 7844 TURNER 7698 BLAKE 7900 JAMES 7698 BLAKE 7521 WARD 7698 BLAKE 7902 FORD 7566 JONES 7369 SMITH 7902 FORD 7788 SCOTT 7566 JONES 7876 ADAMS 7788 SCOTT 7934 MILLER 7782 CLARK 4. Znajdź takie stanowisko pracy (JOB), które było obsadzone zarówno w pierwszej połowie 1982 roku jak i w pierwszej połowie 1983 roku. JOB CLERK Strona 49

50 5. Znajdź tych pracowników, którzy zostali zatrudnieniu przed przyjęciem do pracy ich kierowników. EMPLOYEE HIREDATE MANAGER HIREDATE BLAKE 01-MAY-81 KING 17-NOV-81 CLARK 09-JUN-81 KING 17-NOV-81 JONES 02-APR-81 KING 17-NOV-81 ALLEN 20-FEB-81 BLAKE 01-MAY-81 WARD 22-FEB-81 BLAKE 01-MAY-81 SMITH 17-DEC-80 FORD 03-DEC Podaj inny sposób rozwiązania zadania 1. DEPTNO DNAME OPERATIONS Strona 50

51 Podzapytania Podzapytania Strona 51

52 Podzapytania zagnieżdżone Podzapytanie to polecenie SELECT zagnieżdżone w innym poleceniu SELECT. SELECT kolumna_1, kolumna_2, FROM tabela WHERE kolumna = (SELECT kolumna FROM tabela WHERE 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) ; AVG(SAL) , znaleźć pracowników, których pensja jest wyższa niż obliczona w poprzednim zapytaniu pensja średnia. SELECT ENAME, JOB, SAL WHERE SAL>(wynik zapytania z punktu 1) Powyższe dwa rozkazy można połączyć w jeden: SELECT ENAME, JOB, SAL WHERE SAL>(SELECT AVG(SAL) ); ENAME JOB SAL KING PRESIDENT 5000 BLAKE MANAGER 2850 CLARK MANAGER 2450 JONES MANAGER 2975 Strona 52

53 FORD ANALYST 3000 SCOTT ANALYST 3000 Aby znaleźć wszystkich zatrudnionych na tym samym stanowisku co SMITH, napiszemy: SELECT ENAME, JOB WHERE JOB=(SELECT JOB WHERE ENAME='SMITH'); ENAME JOB JAMES CLERK SMITH CLERK ADAMS CLERK MILLER CLERK Podzapytania zwracające wiele wierszy Jeśli w firmie pracowałoby więcej osób o nazwisku SMITH, to poprzednie podzapytanie nie miałoby sensu. Co więcej zapytanie wewnętrzne zamiast pojedynczej wartości zwróciłoby kolumnę wartości, co prowadziłoby do błędu w zewnętrznym zapytaniu. Przekształćmy to zapytanie tak, aby wyszukiwało wszystkie osoby zatrudnione na stanowiskach, na których pracuje jakikolwiek SMITH. SELECT ENAME, JOB WHERE JOB IN (SELECT JOB WHERE ENAME='SMITH'); Spróbujmy teraz znaleźć pracowników, których pensja jest na liście najwyższych zarobków w departamentach. SELECT ENAME, SAL, DEPTNO WHERE SAL IN (SELECT MAX(SAL) GROUP BY DEPTNO); ENAME SAL DEPTNO BLAKE FORD SCOTT KING Rozważmy teraz sytuację, że w firmie pracuje osoba, której zarobki pokrywają się z największym zarobkiem w danym departamencie, ona jednak pracuje w innym departamencie. Powyższe zapytanie wypisze taką osobę, jako że nie został nałożony warunek, aby osoba pracowała w departamencie, z którego pochodzi najwyższa pensja. Strona 53

54 Warunek, w którym porównujemy wiele wartości Spróbujmy przerobić powyższe zapytanie: SELECT ENAME, SAL, DEPTNO WHERE (SAL,DEPTNO) IN (SELECT MAX(SAL), DEPTNO GROUP BY DEPTNO); ENAME SAL DEPTNO BLAKE FORD SCOTT KING Powyższe zapytanie wybierze nam osoby, które zarabiają najwięcej w swoich działach został nałożony także warunek, aby osoba wybierana pracowała w dziale, do którego należy najwyższa pensja. Kolumny na liście wyboru wewnętrznego (w klauzuli WHERE lub HAVING) muszą występować w kolejności i typach zgodnych z kolejnością i typami występującymi w klauzuli SELECT zewnętrznego polecenia. Operatory ALL i ANY Operatory ALL i ANY można stosować w podzapytaniach zwracających więcej niż jeden wiersz. Podaje się je w klauzulach WHERE i HAVING razem z operatorami porównywania. Operator ANY wiersz zostanie wybrany, jeśli wyrażenie jest zgodne co najmniej z jedną wartością wybraną w podzapytaniu. SELECT ENAME, SAL, DEPTNO WHERE SAL > ANY (SELECT DISTINCT SAL WHERE DEPTNO=10); ENAME SAL DEPTNO KING BLAKE CLARK JONES ALLEN TURNER FORD SCOTT Najniższy zarobek w departamencie 10 wynosi Zapytanie wybierze wszystkich, którzy zarabiają więcej niż Strona 54

55 Aby nie były wybierane wielokrotnie te same zarobki (3000 jest większe i od 1300 i od 2450 zostałoby wybrane dwukrotnie), często stosuje się razem z operatorami ALL i ANY słowo kluczowe DISTINCT. SELECT ENAME, SAL, DEPTNO WHERE DEPTNO=10; ENAME SAL DEPTNO KING CLARK MILLER Operator ALL warunek musi być spełniony przez wszystkie wartości wybrane w podzapytaniu. Wybierzmy wszystkich pracowników, którzy zarabiają więcej niż ktokolwiek w departamencie 30: SELECT ENAME, SAL, DEPTNO WHERE SAL > ALL (SELECT DISTINCT SAL WHERE DEPTNO=30) ORDER BY SAL; ENAME SAL DEPTNO JONES FORD SCOTT KING Najwyższy zarobek w departamencie 30 wynosi Zapytanie wybierze wszystkich, którzy zarabiają więcej niż Klauzula HAVING z zagnieżdżonymi zapytaniami Podzapytania mogą występować również w klauzuli HAVING (przypominamy klauzula HAVING odnosi się do grup wierszy). Nie istnieje limit na liczbę poziomów zagnieżdżania podzapytań. Aby wybrać zawody, w których średnia płaca jest wyższa niż średnia płaca w zawodzie 'MANAGER', napiszemy: SELECT JOB, AVG(SAL) HAVING AVG(SAL) > (SELECT AVG(SAL) WHERE JOB='MANAGER') GROUP BY JOB; JOB AVG(SAL) ANALYST 3000 PRESIDENT 5000 Strona 55

56 Aby wybrać stanowisko, na którym są najniższe średnie zarobki, napiszemy: SELECT JOB, AVG(SAL) HAVING AVG(SAL) = (SELECT MIN(AVG(SAL)) GROUP BY JOB) GROUP BY JOB; JOB AVG(SAL) CLERK 1037,5 Sortowanie danych w podzapytaniu W podzapytaniu nie może występować klauzula ORDER BY. Klauzula ORDER BY może wystąpić tylko raz dla całego zapytania i wtedy musi pojawić się jako ostatnia. Zapytania skorelowane Blok skorelowany jest szczególnym przypadkiem zagnieżdżonego zapytania. Zwykłe podzapytanie jest wykonywane raz, na samym początku, a do jego wyników odwołuje się zapytanie zewnętrzne. W przypadku zapytania skorelowanego podzapytanie jest wykonywane dla każdego wiersza z zapytania zewnętrznego. Aby znaleźć osoby, które zarabiają mniej niż wynosi średnia w ich zawodach, napiszemy: SELECT ENAME, SAL, DEPTNO, AVG(SAL) E WHERE SAL < (SELECT AVG(SAL) WHERE JOB=E.JOB) ORDER BY JOB; ENAME SAL DEPTNO JAMES SMITH CLARK MARTIN WARD Operator EXIST W przypadku zapytań skorelowanych czasami interesuje nas tylko, czy wiersz spełniający podane warunki istnieje. Wtedy stosujemy operator EXIST. Strona 56

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 6: Algebra relacji. SQL - cd Algebra relacji operacje teoriomnogościowe rzutowanie selekcja przemianowanie Małgorzata Krętowska Wydział Informatyki Politechnika

Bardziej szczegółowo

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE) Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE) W Bazie występują trzy tabele, o następujących schematach: EMP {empno(pk), ename, deptno(fk), mgr(fk), sal, comm, hiredate, job} DEPT {deptno(pk), dname,

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

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

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

Materiały szkoleniowe. Podstawy jzyka SQL. Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk

Materiały szkoleniowe. Podstawy jzyka SQL. Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk Materiały szkoleniowe Podstawy jzyka SQL Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk Spis treci Zawarto tabel wykorzystywanych na kursie 5 Zawarto tabeli DEPT 6 Zawarto tabeli EMP 6 Zawarto tabeli

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Wprowadzenie do języka SQL

Wprowadzenie do języka SQL Wprowadzenie do języka SQL język dostępu do bazy danych grupy poleceń języka: DQL (ang( ang.. Data Query Language) DML (ang( ang.. Data Manipulation Language) DDL (ang( ang.. Data Definition Language)

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych

Bardziej szczegółowo

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

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

3. Podzapytania, łączenie tabel i zapytań

3. Podzapytania, łączenie tabel i zapytań 3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,

Bardziej szczegółowo

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

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz Bazy danych laboratorium dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz G.Bazydlo@iie.uz.zgora.pl, www.uz.zgora.pl/~gbazydlo Lista zadań nr 1 Zagadnienia Poznanie narzędzia DBeaver. Konfiguracja połączenia

Bardziej szczegółowo

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,

Bardziej szczegółowo

Struktura bazy danych

Struktura bazy danych Bazy danych - MySQL Warunki zaliczenia tych zajęć Rozwiązania zadań domowych proszę zapisać do pliku o nazwie Bazy danych i wysłać do mnie jako załącznik. Ostateczny termin: niedziela, 9.06, godzina 24:00.

Bardziej szczegółowo

TECHNOLOGIE BAZ DANYCH

TECHNOLOGIE BAZ DANYCH TECHNOLOGIE BAZ DANYCH WYKŁAD 3 Diagramy związków encji. Funkcje agregujące. (Wybrane materiały) Dr inż. E. Busłowska Copyright 2014-2015 E. Busłowska. 1 DIAGRAMY ZWIĄZKÓW ENCJI (DZE) Metoda graficznej

Bardziej szczegółowo

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Dane z kilku tabel Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Łączenie kilku selectów w jeden posortowany wynik 1. UNION suma bez powtórzeń. Powoduje,

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

Bardziej szczegółowo

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

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne. Kwerendy wybierające Kwerenda wybierająca jest najczęściej używanym rodzajem kwerendy. Służy do otrzymywania danych z tabeli lub tabel i wyświetla wyniki w arkuszu danych, w którym można je następnie aktualizować

Bardziej szczegółowo

Laboratorium Bazy danych SQL 3 1

Laboratorium Bazy danych SQL 3 1 Laboratorium Bazy danych SQL 3 1 F U N K C J E operujące na grupach wierszy: avg([distinct all]kol) oblicza średnią arytmetyczną wartości kolumny kol wszystkich wierszy grupy. count([distinct all]wyr)

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych Politechnika Śląska Instytut Informatyki instrukcja laboratoryjna laboratorium Bazy Danych przygotowali: mgr inż. Paweł Kasprowski (Kasprowski@zti.iinf.polsl.gliwice.pl) mgr inż. Bożena Małysiak (bozena@ivp.iinf.polsl.gliwice.pl)

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

SQL praca z tabelami 4. Wykład 7

SQL praca z tabelami 4. Wykład 7 SQL praca z tabelami 4 Wykład 7 1 Funkcje agregujące Informacja poszukiwana w bazie danych często musi być wyliczana na podstawie danych znajdujących się w wielu wierszach tabeli. Tak jest gdy chcemy znać

Bardziej szczegółowo

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny Schemat bazy danych, wczytanej z pliku create_tables.sql Relacji między tabelami klucze obce Klucz obcy jako ograniczenie dla kolumny customer_id INTEGER NOT NULL REFERENCES customer(customer_id), CONSTRAINT

Bardziej szczegółowo

PODZAPYTANIE (SUBSELECT)

PODZAPYTANIE (SUBSELECT) 2. Podzapytania PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT W instrukcji SELECT, podzapytanie może być umieszczone

Bardziej szczegółowo

Podstawy języka SQL cz. 2

Podstawy języka SQL cz. 2 Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.

Bardziej szczegółowo

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie do języka SQL Opracował: dr inż. Piotr Suchomski Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków

Bardziej szczegółowo

Lista zadań nr 1. 4. Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

Lista zadań nr 1. 4. Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000. Lista zadań nr 1 Zapytania SQL, SELECT z klauzulą WHERE i ORDER BY 1. Wyświetlić zawartość tablicy z pracownikami (EMPLOYEE). 2. Wyświetlić nazwisko i imię LAST NAME, F IRST NAME dla każdego pracownika.

Bardziej szczegółowo

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ćwiczenie zapytań języka bazy danych PostgreSQL Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele

Bardziej szczegółowo

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

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł! Szkolenie Oracle SQL podstawy Terminy 15 17 lutego 2010 First Minute! 1100zł! Opis szkolenia Baza danych Oracle od dawna cieszy się zasłużona sławą wśród informatyków. Jej wydajność, szybkość działania

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem. Typy numeryczne Typy daty i czasu. W celu uniknięcia niejasności czy zapis 11-08-2005 oznacza - 11 sierpnia 2005, czy może 8 listopada 2005, należy ustalić sposób interpretacji daty (europejski lub amerykański).

Bardziej szczegółowo

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2) Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

Kwerendy (zapytania) wybierające

Kwerendy (zapytania) wybierające Access 2. Kwerendy (zapytania) wybierające Kwerendy wybierające (nazywane też zapytaniami wybierającymi) są podstawowymi obiektami w MS Access służącymi do wyszukiwania danych w tabelach. W wyniku uruchomienia

Bardziej szczegółowo

Laboratorium Bazy danych SQL 2

Laboratorium Bazy danych SQL 2 Klauzula order by występuje jako ostatnia klauzula w poleceniu select, powoduje posortowanie wierszy będących wynikiem zapytania według wartości atrybutu w niej wskazanego. Domyślnie sortowanie jest według

Bardziej szczegółowo

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Bazy danych 2. Wykład 4 Structured Query Language (SQL) Bazy danych 2 Wykład 4 Structured Query Language (SQL) Cechy SQL W standardzie SQL wyróŝnia się dwie części: DDL (Data Definition Language) - język definiowania danych DML (Data Manipulation Language)

Bardziej szczegółowo

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa Studia Podyplomowe dla Nauczycieli Bazy danych SQL Języki baz danych Interfejs DBMS składa się

Bardziej szczegółowo

Funkcje analityczne SQL CUBE (1)

Funkcje analityczne SQL CUBE (1) Funkcje analityczne SQL CUBE (1) JOB DEPTNO SUM(SAL) --------- ---------- ---------- 29025 10 8750 20 10875 30 9400 CLERK 4150 CLERK 10 1300 CLERK 20 1900 CLERK 30 950 ANALYST 6000 ANALYST 20 6000 MANAGER

Bardziej szczegółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

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

SQL - Structured Query Language. strukturalny język zapytań SQL - Structured Query Language strukturalny język zapytań SQL - Structured Query Language - strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w

Bardziej szczegółowo

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Iloczyn kartezjański, połączenie równościowe, połączenie nierównościowe, połączenie zwrotne, połączenie zewnętrzne, składnia jawna połączeń, składnia

Bardziej szczegółowo

Podstawy SQL. 1. Wyświetl całość informacji z relacji ZESPOLY. 2. Wyświetl całość informacji z relacji PRACOWNICY

Podstawy SQL. 1. Wyświetl całość informacji z relacji ZESPOLY. 2. Wyświetl całość informacji z relacji PRACOWNICY Podstawy SQL 1. Wyświetl całość informacji z relacji ZESPOLY ID_ZESP NAZWA ADRES ---------- -------------------- -------------------- 10 ADMINISTRACJA PIOTROWO 3A 20 SYSTEMY ROZPROSZONE PIOTROWO 3A 30

Bardziej szczegółowo

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. 1 Podzapytania Podzapytanie jest poleceniem SELECT zagnieżdżonym

Bardziej szczegółowo

Hurtownie danych - przegląd technologii

Hurtownie danych - przegląd technologii Funkcje analityczne SQL CUBE (1) Hurtownie danych - przegląd technologii Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel JOB DEPTNO SUM(SAL) 8750

Bardziej szczegółowo

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup Grupowanie i funkcje agregacji Grupowanie z użyciem rollup Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9. Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

Widok Connections po utworzeniu połączenia. Obszar roboczy

Widok Connections po utworzeniu połączenia. Obszar roboczy Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer

Bardziej szczegółowo

SQL Structured Query Language

SQL Structured Query Language SQL Structured Query Language stworzony na początku lat 70 ubiegłego wieku w IBM przez Donalda Messerly'ego, Donalda Chamberlina oraz Raymonda Boyce'a pod nazwą SEQUEL pierwszy SZBD System R utworzony

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Grupowanie i funkcje agregacji

Grupowanie i funkcje agregacji Grupowanie i funkcje agregacji Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula GROUP BY Grupowanie polega

Bardziej szczegółowo

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH Wstęp do SQL SQL (Structured Query Language) 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.

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Standard SQL/XML. Wprowadzenie do XQuery

Standard SQL/XML. Wprowadzenie do XQuery Standard SQL/XML Wprowadzenie do XQuery Marek Wojciechowski marek@cs.put.poznan.pl http://www.cs.put.poznan.pl/~marek/ Języki zapytań dla XML Wraz z pojawieniem się standardu XML pojawiały się również

Bardziej szczegółowo

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2 Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone

Bardziej szczegółowo

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

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

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

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 25 MS Excel 2007 Kurs zaawansowany Obsługa baz danych prowadzi: Dr inż. Tomasz Bartuś Kraków: 2008 04 25 Bazy danych Microsoft Excel 2007 udostępnia szereg funkcji i mechanizmów obsługi baz danych (zwanych

Bardziej szczegółowo

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

Bardziej szczegółowo

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING. Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING. 1 Funkcje grupowe (agregujące) (1) Działają na zbiorach rekordów, nazywanych grupami. Rekordy

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski BAZY DANYCH algebra relacyjna Opracował: dr inż. Piotr Suchomski Wprowadzenie Algebra relacyjna składa się z prostych, ale mocnych mechanizmów tworzenia nowych relacji na podstawie danych relacji. Hdy

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących.

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących. Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania podzapytań ń w zapytaniach języka ę SQL. Podzapytania są ą konstrukcjami, pozwalającymi na wykonywanie zapytań w stylu podaj nazwisko

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Bazy danych Access KWERENDY

Bazy danych Access KWERENDY Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6 Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6 Wybieranie danych z wielu tabel polega na użyciu więcej niż jednej tabeli w klauzuli FROM i, najczęściej, kolumn z więcej niż jednej

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Bazy danych. Plan wykáadu. Powtórzenie BCNF i 3NF. Nowa forma redundancji. Wykáad 6: Postaci normalne. SQL - zapytania záo*one.

Bazy danych. Plan wykáadu. Powtórzenie BCNF i 3NF. Nowa forma redundancji. Wykáad 6: Postaci normalne. SQL - zapytania záo*one. Plan wykáadu Bazy danych Wykáad 6: Postaci normalne. SQL - zapytania záo*one. Maágorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl Zale*noci wielowartociowe Czwarta postaü normalna

Bardziej szczegółowo

sqlplus [ użytkownik [ / hasło ] ]

sqlplus [ użytkownik [ / hasło ] ] Uruchomienie SQL*Plus: sqlplus [ użytkownik [ / hasło ] ] Zasady wpisywania komend PL/SQL: komendy mogą być wieloliniowe nie można skracać słów kluczowych można oddzielać słowa spacjami lub tabulacją słowa

Bardziej szczegółowo

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska SQL TECHNOLOGIE BAZ DANYCH Wykład 5: Język DDL i DML. SQL (ang. StructuredQueryLanguage) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania

Bardziej szczegółowo

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra Bazy danych 6. Podzapytania i grupowanie P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Podzapytania Podzapytania pozwalaja na tworzenie strukturalnych podzapytań, co umożliwia izolowanie poszczególnych

Bardziej szczegółowo

Komunikacja z bazą danych psql

Komunikacja z bazą danych psql PostgreSQL jest systemem zarządzania relacyjnymi bazami danych rozprowadzanym na zasadach open source. Twórcą i właścicielem praw autorskich jest Uniwersytet Berkeley w Stanach Zjednoczonych. Ze wszystkich

Bardziej szczegółowo

1 Wstęp do modelu relacyjnego

1 Wstęp do modelu relacyjnego Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Symfonia Produkcja. Kreator raportów. Wersja 2013

Symfonia Produkcja. Kreator raportów. Wersja 2013 Symfonia Produkcja Kreator raportów Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy Adobe

Bardziej szczegółowo