Bazy danych SQL. Wstp. SQL (Structured( Query Language) strukturalny jzyk zapyta



Podobne dokumenty
Relacyjne bazy danych. Podstawy SQL

SQL (ang. Structured Query Language)

Relacyjne bazy danych. Podstawy SQL

Systemy GIS Tworzenie zapytań w bazach danych

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Przestrzenne bazy danych Podstawy języka SQL

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

Wykład 5. SQL praca z tabelami 2

Paweł Rajba

Język SQL, zajęcia nr 1

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

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

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Wykład 6. SQL praca z tabelami 3

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

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

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

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

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

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

Wykład 8. SQL praca z tabelami 5

Widok Connections po utworzeniu połączenia. Obszar roboczy

Bazy danych. Plan wykładu. Operacje w algebrze relacji. Pojcie algebry relacji. Wykład 8: Algebra relacji. SQL - cd

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

Bazy danych. Plan wykładu. Podstawy modeli relacyjnych. Diagramy ER. Wykład 3: Relacyjny model danych. SQL

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

Bazy danych. dr inż. Arkadiusz Mirakowski

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

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

Dr Michał Tanaś(

Microsoft SQL Server Podstawy T-SQL

Bazy danych. Dr inż. Paweł Kasprowski

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

SQL w praktyce. Miłej i owocnej nauki!!!

Autor: Joanna Karwowska

Bazy danych 7. SQL podstawy

Bazy danych. Polecenia SQL

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

Język SQL podstawy zapytań

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

Wykład 4. SQL praca z tabelami 1

Bazy danych 10. SQL Widoki

Wprowadzenie do baz danych

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Bazy danych Podstawy teoretyczne

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

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

Oracle11g: Wprowadzenie do SQL

Bazy danych SQL Server 2005

Grupowanie i funkcje agregujące

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

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

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

Podstawowe zapytania SELECT (na jednej tabeli)

Zadania z SQLa (MS SQL Server)

SQL Structured Query Language

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Wykład 05 Bazy danych

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

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

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

Autor: Joanna Karwowska

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

SQL Structured Query Language

Autor: Joanna Karwowska

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

Autor: Joanna Karwowska

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

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Język SQL. Rozdział 2. Proste zapytania

Współczesne systemy baz danych

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

Współczesne systemy baz danych

SIECI KOMPUTEROWE I BAZY DANYCH

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Jerzy Nawrocki, Wprowadzenie do informatyki

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

Język SQL, zajęcia nr 2

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Zadania do wykonaj przed przyst!pieniem do pracy:

Transkrypt:

Wstp (Structured( Query Language) strukturalny jzyk zapyta Podstawowe cechy jzyka : - zapytania wyszukiwanie danych w bazie danych, - operowanie danymi wstawianie, modyfikacja, usuwanie danych z bazy danych, - definiowanie struktury danych dodawanie nowych tabel, perspektyw i indeksów, - sterowanie danymi ochrona danych, - standardowe narzdzie dostp do danych w ró&norodnych 'rodowiskach. Zak*ada si, &e informacje przechowywane s+ w relacyjnej bazie danych w postaci zbioru tabel. Ka&da tabela zawiera kolumny (atrybuty( atrybuty) ) oraz wiersze (rekordy( rekordy). 2

Wstp Ka&da tabela w modelu relacyjnym posiada nastpuj+ce w*asno'ci: krotki (wiersze) s+ unikalne, atrybuty (kolumny) s+ unikalne, kolejno'c krotek nie ma znaczenia, kolejno'c atrybutów nie ma znaczenia, warto'ci atrybutów s+ atomowe. Tabela mo&e reprezentowa/: zbiór encji wraz z atrybutami, zbiór powi+za pomidzy encjami wraz z ich atrybutami, zbiór encji wraz z atrybutami i ich powi+zania z innymi encjami. 3

Wstp Podstawowe operacje relacyjne: selekcja, projekcja, produkt, po*+czenie, unia, przecicie, ró&nica. 4

Sk*adnia: SELECT [predykat][funkcja[ predykat][funkcja]{ ]{ kolumna [ AS alias ] [,...] { tabela.* } * } FROM wyra(enie_tabelowe [IN...] [ WHERE...] [ GROUP BY... ] [{ UNION INTERSECT EXCEPT} [ALL] [CORRESPONDING [BY (kolumna,...)]] [ HAVING... ] [ ORDER BY...] 5

Predykaty: All,, DISTINCT,DISTINCTROW, TOP. Domy'lnie przyjmuje si predykat ALL.. W -92 mo&liwy jest tylko jeden predykat DISTINCT. Predykaty stosuje si w celu ograniczenia liczby zwracanych rekordów. Predykat ALL okre'la, &e wszystkie wiersze, które spe*niaj+ warunki tego rozkazu powinny zosta/ pokazane. Przyjmowany jest domy'lnie. W Ms Access po ALL wymagany jest tak&e metaznak *. Poza tym predykat ten stosuje si w podzapytaniu. Za jego pomoc+ pobiera si tylko te warto'ci g*ównego zapytania, które spe*niaj+ porównanie ze wszystkimi rekordami pobieranymi przez podzapytania. SELECT ALL FROM wyra(enie_tabelowe 6

Predykat DISTINCT okre'la, &e wiersze powtarzaj+ce si powinny zosta/ usunite przed zwróceniem ich na zewn+trz. Dwa wiersze traktuje si jako równe je'li wszystkie warto'ci dla ka&dej z kolumn zwracanych rozkazem SELECT s+ sobie równe. SELECT DISTINCT FROM wyra(enie_tabelowe Predykat DISTINCTROW powoduje, &e pomijane s+ dane powtarzaj+ce si na podstawie ca*ych rekordów, a nie jedynie wybranych kolumn. Predykat DISTINCTROW musi by/ stosowany w zapytaniach opartych na kilku tabelach, ale nie mog+ by/ wybierane kolumny ze wszystkich tabel. SELECT DISTINCTROW FROM wyra(enie_tabelowe Predykat TOP powoduje, &e zwracane s+ rekordy zawieraj+ce si w podanym zakresie liczbowym lub procentowym. SELECT TOP n [PERCENT] FROM wyra(enie_tabelowe [ORDER BY...] 7

Funkcje: MIN, MAX, SUM, COUNT, AVG. Funkcja MIN zwraca minimaln+ warto'/ wyra&enia. SELECT MIN(wyra(enie) FROM wyra(enie_tabelowe Funkcja MAX zwraca maksymalna warto'/ wyra&enia. SELECT MAX(wyra(enie) FROM wyra(enie_tabelowe Funkcja SUM zwraca sum zbioru warto'ci. SELECT SUM(wyra(enie) FROM wyra(enie_tabelowe 8

Funkcja COUNT zwraca liczb rekordów, w których wyra&enie nie ma warto'ci NULL.. Je&eli jednak u&yty zostanie metaznak *, to funkcja Count obliczy ca*kowit+ liczb rekordów, w tym i zawieraj+cych warto'ci puste. SELECT COUNT(Nazwisko) AS [StanZatrudnienia] FROM Pracownicy Funkcja AVG zwraca warto'/ 'redni+ wyra&enia ignoruj+c warto'ci puste. SELECT AVG(zarobki) AS [:redniap;aca] FROM pracownicy Pozosta*e funkcje agregacji: StDev, StdDev, StDevP, Var, Variance, VarP. 9

* - oznacza, &e wszystkie kolumny ze wszystkich wymienionych tabel powinny zosta/ pobrane. tabela.* - oznacza, &e wszystkie kolumny z podanej tabeli powinny zosta/ pokazane. p kolumna - nazwa kolumny z danymi, które maj+ by/ pobrane. wyra(enie_tabelowe - nazwa tabeli lub tabel zawieraj+cych pobierane dane. alias - nazwa, która zostanie u&yta jako nag*ówki kolumn w miejsce nazw kolumn z tabeli. 10

UNION INTERSECT EXCEPT [ALL] - operatory u&ywane przy *+czeniu wyników z dwóch zapyta. Operator UNION powoduje i& do wynikowej tabeli zostanie w*+czony ka&dy wiersz z ka&dego zapytania, je'li wiersze si powtarzaj+ w*+czona zostanie tylko jedna ich kopia. UNION ALL powoduje, i& tak&e powtarzaj+ce si wiersze zostan+ w*+czone do wynikowej tabeli. EXCEPT powoduje i& wszystkie wiersze z drugiego zapytania zostan+ wyeliminowane z wyniku, a duplikaty pojawi+ si tylko raz. EXCEPT ALL spowoduje, &e od ilo'ci powtarzaj+cych si wierszy z wyniku zapytania 1 zostanie odjta ilo'/ powtarzaj+cych si w zapytaniu 2 i taki wiersz pojawi si na wyj'ciu tyle razy ile wynosi ró&nica. INTERSECT powoduje i& ka&dy wiersz pojawiaj+cy si na wyj'ciu zapytania 1 i zapytania 2 jest tylko raz wynikiem. INTERSECT ALL spowoduje i& powtarzaj+ce wiersze pojawi+ si na wyj'ciu tyle razy, r co w wyniku 1 lub 2 - w zale&no'ci od tego która liczba jest mniejsza. 11

CORRESPONDING BY (kolumna,...) - powoduje ograniczenie *+czenia wyników z zapyta do wymienionych kolumn. U&ycie samego s*owa CORRESPONDING z pominiciem nazw kolumn oznacza wybranie wszystkich kolumn o tych samych nazwach i typach danych w istniej+cych w tabelach. FROM - okre'la Eród*owe tabele wykorzystywane w zapytaniu. Mog+ to by/ tak&e widoki. Je'li wymienimy wicej ni& jedn+ tabel to nast+pi operacja ich z*+czenia. Istnieje kilka rodzajów z*+cze. Klauzula FROM jest obowi+zkowa. SELECT lista_kolumn FROM wyra(enie_tabelowe [IN zewn<trzna_baza] lista_kolumn - nazwy pobieranych pól, którym mog+ towarzyszy/ aliasy, funkcje agregacji, predykaty wyboru (ALL, DISTINCT, DISTINCTROW lub TOP). wyra(enie_tabelowe - wyra&enie okre'laj+ce tabel lub tabele, z których maj+ by/ pobrane dane. W celu pobrania danych z kilku tabel stosuje si wbudowane operatory z*+czenia, np.: CROSS JOIN - z*+czenie krzy&owe, w wyniku znajd+ si wszystkie kombinacje wierszy z obu tabel, INNER JOIN - z*+czenie wewntrzne, w wyniku znajd+ si wiersze odpowiadaj+ce sobie z obu tabel UNION JOIN - w wyniku znajd+ si wiersze nie pasuj+ce do siebie. 12

IN - W MS Access klauzula ta okre'la tabele w zewntrznej bazie danych. Umo&liwiana ona po*+czenie tylko z jedn+ zewntrzn+ baz+ danych. Uwaga: Sowo IN w wystpuje take jako predykat. [SELECT INSERT] INTO przeznaczenie IN { >cie(ka [">cie(ka " "typ"] } SELECT lista_kolumn FROM wyra(enie_tabelowe IN { >cie(ka [">cie(ka " "typ"] } przeznaczenie - nazwa tabeli zewntrznej, do której maj+ by/ wstawione dane. wyra(enie_tabelowe - wyra&enie okre'laj+ce tabel lub tabele, z których maj+ by/ pobrane dane. >cie(ka - pe*na 'cie&ka do katalogu lub pliku zawieraj+cego tabele. typ - nazwa typu bazy danych u&ytej do utworzenia tabeli, o ile jest to baza danych inna ni& Microsoftu (na przyk*ad dbase III, dbase IV, Paradox 3.x lub Paradox 4.x). lista_kolumn - nazwy pól z danymi, które maj+ by/ pobrane. 13

WHERE - okre'la te rekordy z tabel wymienionych w klauzuli FROM, które spe*niaj+ podane kryteria. W przypadku braku klauzuli WHERE zwracane s+ wszystkie wiersze tabeli. Klauzula ta nie jest obowi+zkowa, jednak je'li wystpuje, musi by/ umieszczona po klauzuli FROM. SELECT lista_kolumn FROM wyra(enie_tabelowe WHERE predykat lista_kolumn - nazwy pobieranych pól, którym mog+ towarzyszy/ aliasy, funkcje agregacji, predykaty wyboru (ALL, DISTINCT, DISTINCTROW lub TOP) albo inne opcje instrukcji SELECT. wyra(enie_tabelowe - wyra&enie okre'laj+ce tabel lub tabele, z których maj+ by/ pobrane dane. predykat - predykat okre'laj+cy kryteria jakie musz+ spe*nia/ rekordy, aby zosta*y zwrócone przez zapytanie. Mo&na tu zastosowa/ operatory: IN, BETWEEN, LIKE etc. 14

IN - sprawdza, czy warto'/ wyra&enia jest równa dowolnej warto'ci z podanej listy. Najcz'ciej stosuje si go po klauzuli WHERE. Uwaga: Sowo IN w wystpuje take jako klauzula oraz predykat. Sk*adnia: wyra(enie [NOT] IN (warto>a1, warto>a2,...) wyra(enie - wyra&enie zawieraj+ce dane do sprawdzenia. warto>a1, warto>a2 - jedna lub kilka warto'ci, z którymi porównywane jest wyra&enie. NOT operator logiczny przeczenia. SELECT * FROM Studenci WHERE MiejsceZamieszkania IN ('Rzeszów','Kraków') 15

BETWEEN - sprawdza, czy warto'/ wyra&enia jest zawarta w okre'lonym przedziale warto'ci. Gdy warto'/ wyra&enia mie'ci si w tym przedziale zwrócona zostanie warto'/ TRUE, w przeciwnym razie, zwraca warto'/ FALSE. Je'li która' z porównywanej warto'ci jest NULL zwrócona zostania warto'/ UNKNOW. Mo&na te& u&y/ operatora logicznego NOT, aby sprawdza warunek przeciwny. Stosuje si go przede wszystkim po klauzuli WHERE. Sk*adnia: wyra(enie [NOT] BETWEEN warto>a1 AND warto>a2 wyra(enie - wyra&enie zawieraj+ce dane do sprawdzenia. warto>a1, warto>a2 - jedna lub kilka warto'ci, z którymi porównywane jest wyra&enie. SELECT * FROM studenci WHERE DataObrony BETWEEN #02-04-03# AND #09-09-03# 16

LIKE - sprawdza, czy wyra&enie znakowe jest identyczne z danym wzorcem. Stosuje si go przede wszystkim po klauzuli WHERE. Sk*adnia: wyra(enie LIKE wzorzec wyra(enie - wyra&enie zawieraj+ce dane do sprawdzenia wzorzec - ci+g znaków. Mo&na stosowa/ metaznaki SELECT * FROM studenci WHERE Nazwisko LIKE '[C-D]*' 17

GROUP BY - grupuje rekordy o tych samych warto'ciach wskazanych na li'cie kolumn przy instrukcji SELECT. Klauzula ta nie jest obowi+zkowa. Bardzo czsto *+czy si j+ z funkcjami agregacji oraz z klauzul+ HAVING, która pozwala przefiltrowa/ rekordy po ich zgrupowaniu. Sk*adnia: SELECT lista_kolumn FROM wyra(enie_tabelowe GROUP BY pola_grupowania [ HAVING...] SELECT Tytu;, Count(Tytu;) AS Ilo>A FROM Pracownicy WHERE Miejsce_Ur = Bytom GROUP BY Tytu; 18

HAVING - pozwala okre'li/, które ze zgrupowanych rekordów maj+ by/ wy'wietlone. Po zgrupowaniu rekordów klauzul+ GROUP BY pokazywane s+ te rekordy, które spe*niaj+ kryteria tej klauzuli. Sk*adnia: SELECT lista_pól FROM wyra(enie_tabelowe WHERE kryteria GROUP BY pola_grupowania HAVING kryteria_grupowania kryteria_grupowania - kryteria okre'laj+ce, które ze zgrupowanych rekordów maj+ zosta/ pokazane. lista_pól - nazwy pól z danymi, które maj+ by/ pobrane. pola_grupowania - nazwy pól u&ytych do zgrupowania rekordów. Kolejno'/ tych nazw okre'la ich znaczenie. SELECT Tytu;, Count(Tytu;) AS Total FROM Pracownicy WHERE Region = Bytom GROUP BY Tytu; HAVING Count(Tytu;) > 1 19

ORDER BY - sortuje rosn+co lub malej+co rekordy wed*ug jednej lub kilku kolumn. Klauzula ta nie jest obowi+zkowa, ale czsto u&ywana w celu wy'wietlenia danych w okre'lonym porz+dku. Sk*adnia: SELECT lista_pól FROM wyra(enie_tabelowe ORDER BY kolumna [ASC DESC] [,kolumna2] [ASC DESC] [,...] kolumna1, kolumna2 - nazwy kolumn wed;ug których b<dq sortowane rekordy ASC - oznacza &e rekordy maj+ by/ sortowane rosn+co. DESC - oznacza &e rekordy maj+ by/ sortowane malej+co. lista_pól - nazwy pól z danymi, które maj+ by/ pobrane. wyra(enie_tabelowe - nazwa tabeli lub tabel zawieraj+cych pobierane dane. SELECT nazwisko, imie FROM studenci ORDER BY nazwisko DESC 20

AS - stosuje si w celu u&ycia innej nazwy kolumny ni& wynika to z wyra&enia j+ generuj+cego. W efekcie powstaj+ aliasy. Klauzuli tej u&ywa si zwykle przy funkcjach agregacji, gdy powstaje element o powtarzaj+cej si nazwie. Uwaga: AS wystpuje take w jako sowo kluczowe w instrukcjach: CONNECT, CREATE DOMAIN, CREATE VIEW. Sk*adnia: SELECT kolumna1 [ AS alias1 ], kolumna2 [AS alias2] [,...]] FROM wyra(enie_tabelowe alias1, alias2 - nazwy, które zostan+ u&yte jako nag*ówki kolumn w miejsce nazw kolumn z tabeli wa tabeli lub tabel zawieraj+cych pobierane dane. SELECT Count(*) AS [Liczba zamówier] FROM Zamowienia 21

Selekcja: SELECT * FROM PRACOWNICY WHERE zarobki > 2000 SELECT * FROM Tabela_A WHERE Numer > 1 22

Projekcja: SELECT nazwisko, imie,, zarobki FROM PRACOWNICY SELECT Numer FROM Tabela_A 23

Selekcja + projekcja: SELECT nazwisko, imie,, zarobki FROM PRACOWNICY WHERE zarobki > 2000 SELECT Numer, Nazwa FROM Tabela_A WHERE NAZWA = "A" 24

Produkt: SELECT * FROM PRACOWNICY, URLOPY SELECT * FROM PRACOWNICY, URLOPY, HISTORIA_ZATRUDNIENIA SELECT * FROM Tabela_A, Tabela_B; 25

Po*+czenie: SELECT nazwisko, imie, data_pocz_urlopu FROM PRACOWNICY, URLOPY WHERE PRACOWNICY.symbol = URLOPY.symbol AND PRACOWNICY.wydzial = ADM SELECT Numer, Nazwa, Ilosc FROM Tabela_A, Tabela_B WHERE Tabela_A.Numer = Tabela_B.Index 26

Unia: SELECT nazwisko, imie,, zarobki FROM PRACOWNICY UNION SELECT nazwisko, imie,, zarobki FROM PRACOWNICY_ARCHIWUM SELECT Numer, Nazwa FROM Tabela_A UNION SELECT Numer, Nazwa FROM Tabela_A_ARCH 27

Przecicie: SELECT nazwisko, imie,, zarobki FROM PRACOWNICY INTERSECT SELECT nazwisko, imie,, zarobki FROM PRACOWNICY_ARCHIWUM Ró&nica: SELECT nazwisko, imie,, zarobki FROM PRACOWNICY MINUS SELECT nazwisko, imie,, zarobki FROM PRACOWNICY_ARCHIWUM 28

Podzapytania: SELECT nazwisko, imie,, zarobki FROM PRACOWNICY WHERE zarobki = (SELECT min(zarobki) FROM PRACOWNICY) Bazy danych SELECT nazwisko, imie,, zarobki FROM PRACOWNICY WHERE zarobki IN (SELECT min(zarobki) FROM PRACOWNICY GROUP BY wydzial) 29

Podzapytania: SELECT wydzial, AVG(zarobki) FROM PRACOWNICY GROUP BY wydzial HAVING AVG(zarobki) ) > (SELECT AVG(zarobki) FROM PRACOWNICY WHERE wydzial = ADM ) Bazy danych 30

Podzapytania: SELECT nazwisko, imie,, zarobki, wydzial FROM PRACOWNICY P WHERE zarobki > (SELECT AVG(zarobki) FROM PRACOWNICY WHERE wydzial = P.wydzial) 31

Definicje danych Standardowe typy danych uywane w jzyku : INTEGER: liczba ca*kowita ze znakiem (4 bajty). SMALLINT: ma*a liczba ca*kowita ze znakiem (2 bajty). DECIMAL (p[,q]): liczba sta*oprzecinkowa ze znakiem; precyzja p okre'la liczb cyfr, z których bdzie sk*ada*a si liczba, a skala q ilo'/ cyfr po przecinku. Je'li pominito q domy'lnie przyjmowane jest 0. FLOAT: liczba zmiennoprzecinkowa ze znakiem (8 bajtów). CHAR(n): *acuch znakowy o sta*ej d*ugo'ci n. VARCHAR(n): *acuch znakowy o zmiennej d*ugo'ci, maksymalnie n znaków. 32

Definicje danych CREATE TABLE - tworzy tabele. Sk*adnia: CREATE TABLE nazwa_tabeli (nazwa_atrybutu_1 typ_atrybutu_1 [, nazwa_atrybutu_2 typ_atrybutu_2 [,...]]) nazwa_tabeli identyfikator tworzonej tabeli. nazwa_atrybutu identyfikator atrybutu. typ_atrybutu typ atrybutu. CREATE TABLE CZESCI (Numer INTEGER, Nazwa VARCHAR(20), Cena DECIMAL(4, 2)) 33

Definicje danych CREATE INDEX - tworzy indeks do tabeli. Indeksy przyspieszaj+ dostp do relacji. Je'li relacja R posiada indeks na atrybucie A, wtedy pobieramy wszystkie krotki t maj+ce t(a) = a w czasie zale&nym od liczby tych krotek, a nie od rozmiaru relacji R. Sk*adnia: CREATE INDEX nazwa_indeksu ON nazwa_tabeli ( nazwa_atrybutu ) nazwa_indeksu identyfikator tworzonego indeksu. nazwa_tabeli identyfikator indeksowanej tabeli. nazwa_atrybutu identyfikator atrybutu. CREATE INDEX IND_NAZWA ON DOSTAWCA (NAZWA) 34

Definicje danych CREATE VIEW - tworzy widok. Widok jest wirtualn+ tabel+, która fizycznie nie istnieje w bazie danych, ale dla u&ytkownika jest widoczna jak zwyk*a tabela. Gdy mówi si o tabeli bazowej, chodzi o kopi ka&dego wiersza tabeli przechowywan+ w fizycznym zbiorze. Widoki nie przechowuj+ w*asnych, charakterystycznych, niepowtarzalnych danych. W rzeczywisto'ci system przechowuje definicje widoków (np. zasady dostpu do istniej+cych tabel bazowych w kolejno'ci tworzenia widoków) w zbiorach systemowych. Sk*adnia: CREATE VIEW nazwa_widoku AS wyra(enie_select nazwa_widoku nazwa tworzonego widoku. Wyra(enie_select wyra&enie definiuj+ce widok. CREATE VIEW Zam_hurt AS SELECT K.Nazwa, Z.Liczba FROM KONTRAHENT K, ZAMOWIENIA Z WHERE K.ID_KONT = Z.ID_KONT AND Z.Liczba > 10 35

Definicje danych DROP TABLE, DROP INDEX, DROP VIEW - usuwa odpowiednio tabel, indeks do tabeli, widok. Sk*adnia: DROP TABLE nazwa_tabeli DROP INDEX nazwa_indeksu DROP VIEW nazwa_indeksu Przyk*ady: DROP TABLE Dostawcy DROP INDEX Nazwa_Dostawcy DROP VIEW Zam_hurt 36

INSERT INTO dodanie krotki do tabeli. Bazy danych Manipulowanie danymi Sk*adnia: INSERT INTO nazwa_tabeli (nazwa_atrybutu_1 [, nazwa_atrybutu_2 [,...]]) VALUES (warto>a_atrybutu_1 [, warto>a_atrybutu_2 [,...]]) INSERT INTO DOSTAWCA (Numer, Nazwa, Miasto) VALUES (1, Hurtownia ABC', 'Opole') 37

UPDATE zmiana warto'ci w tabeli. Bazy danych Manipulowanie danymi Sk*adnia: UPDATE nazwa_tabeli SET nazwa_atrybutu_1 = warto>a_1 [,... [, nazwa_atrybutu_k = warto>a_k]] WHERE warunek UPDATE Czesci SET Cena = 550 WHERE Nazwa = 'Monitor 15' 38

Manipulowanie danymi DELETE FROM usuwa krotki z tabeli. Sk*adnia: DELETE FROM nazwa_tabeli WHERE warunek DELETE FROM Dostawca WHERE Nazwa = 'Hurtownia ABC' 39

Manipulowanie danymi ALTER TABLE rozkaz s*u&+cy do zmieniania tabeli. Wykonuje nastpuj+ce operacje: dodaje kolumny i warunki, modyfikuje definicje kolumn jak typy i warunki, usuwa warunki, modyfikuje przysz*y sposób alokacji przestrzeni, zapisuje, &e operacja BACKUP zosta*a wykonana dla tej tabeli. Sk*adnia: ALTER TABLE nazwa_tabeli [ADD ( kolumna_1 [, {kolumna_1]...) ] [MODIFY (kolumna_1 [,kolumna_2]...)] [DROP CONSTRAINT ograniczanie]... [BACKUP] ALTER TABLE pracownicy MODIFY (placa NUMBER(9, 2)) 40