Bazy danych. Wprowadzenie. SKiBD

Podobne dokumenty
Przestrzenne bazy danych Podstawy języka SQL

Systemy GIS Tworzenie zapytań w bazach danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Autor: Joanna Karwowska

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Relacyjne bazy danych. Podstawy SQL

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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Paweł Rajba

Relacyjne bazy danych. Podstawy SQL

Bazy danych. Dr inż. Paweł Kasprowski

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

Oracle11g: Wprowadzenie do SQL

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

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

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

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

Język SQL podstawy zapytań

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

SQL (ang. Structured Query Language)

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

Model relacyjny. Wykład II

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

Model relacyjny. Wykład II

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Język SQL, zajęcia nr 1

Podstawowe informacje o bazach danych. Technologie Informacyjne

1 Wstęp do modelu relacyjnego

Microsoft SQL Server Podstawy T-SQL

Wykład 6. SQL praca z tabelami 3

Projektowanie systemów baz danych

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

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

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

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

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Wprowadzenie do języka SQL

Wykład 5. SQL praca z tabelami 2

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

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

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

Autor: Joanna Karwowska

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

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

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

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

3. Podzapytania, łączenie tabel i zapytań

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

Autor: Joanna Karwowska

Grupowanie i funkcje agregujące

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

Podstawy języka SQL cz. 2

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

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

SQL Structured Query Language

Wykład 2. Relacyjny model danych

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

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Wprowadzenie do baz danych

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

Baza danych. Modele danych

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Konstruowanie Baz Danych DQL agregacja danych

Baza danych. Baza danych to:

Język SQL. Rozdział 2. Proste zapytania

RBD Relacyjne Bazy Danych

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Co to jest Baza Danych

Bazy danych - wykład wstępny

LAB 3 (część 1 Projektu)

Język SQL, zajęcia nr 2

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

Wykład 8. SQL praca z tabelami 5

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

Teoretyczne podstawy informatyki

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

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

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

WPROWADZENIE DO BAZ DANYCH

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

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

Struktura drzewa w MySQL. Michał Tyszczenko

Relacyjne bazy danych

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Transkrypt:

Bazy danych Wprowadzenie SKiBD

Motywacja do rozwoju baz danych Posiadanie dużej ilości danych Trudności w przechowywaniu i udostępnianiu danych Konieczność szybkiego dostępu do informacji Potrzeba: Przechowywanie i przetwarzanie informacji o obiektach występujących w rzeczywistości 2

Przykład Firma sprzedająca pewne produkty Pracownicy spędzają dużo czasu na wypełnianiu dokumentów w formie papierowej Kierownictwo chce usprawnić działanie firmy Istnieje zapotrzebowanie na informacje analityczne: Które produkty sprzedają się najlepiej? Którzy klienci przynoszą największe zyski? Jaka jest dynamika sprzedaży? Narzędzie Obecnie wykonanie do realizacji takich zasygnalizowanych analiz jest czasochłonne potrzeb: i żmudne System Aktualne informatyczny wyniki analiz zastępujący pozwolą podejmować dotychczasowe decyzje prace: baza prowadzące danych do klientów, wzrostu sprzedaży, zysków firmy magazynu, podsumowania 3

Co to jest baza danych Struktura do przechowywania informacji Związek informacji z rzeczywistością Określony format umożliwiający szybki dostęp do danych Przykład złej organizacji informacji Zbiór Kartki informacji ze swobodnym o książkach opisem, w odręcznym: bibliotece: - jednolity brak jednolitego format kart formatu opisujących książki - porządek utrudnienie alfabetyczny dostępu do wg informacji nazwisk autorów - różnorodność informacji 4

Wnioski Wprowadzenie określonej struktury (formatu) pozwala na: uporządkowanie informacji szybsze i łatwiejsze operowanie informacją Postulat należy skonstruować strukturę pozwalającą: przechowywać różne dane opracować jednolite reguły przetwarzania takich danych 5

Teoria Codd a E. F. Codd 1970 relacyjny model danych (poszukiwana struktura) silne podstawy teoretyczne (teoria mnogości: zbiory, relacje) prostota rozwiązania (struktura tabeli) reprezentacja danych w oderwaniu od fizycznej implementacji uniwersalny przenośny język operowania danymi Autor Tytuł Rok określanie operacji na zbiorach zamiast przetwarzania L.Banachowski Bazy Danych, tworzenie aplikacji pojedynczych elementów Sygnat. 348510 568900 Mei Kobayashi Wavelets and their applications 1998 1998 102345 Ulka Rodgers Oracle, przewodnik projektanta baz danych 1995............ 6

Systemy baz danych Korzyści z zastosowania systemu bazy danych ukrycie fizycznych aspektów przechowywania danych standardowy język manipulacji danymi (SQL) umożliwienie projektowania na poziomie pojęć odpowiadających obiektom występującym w rzeczywistości System bazy danych SQL Implementacja pojęć i związków Interfejs użytkownika 7

Producenci systemów baz danych Oracle IBM (DB2) Microsoft (SQL Server) Informix Sybase Interbase inne (np. MySQL AB) Microsoft Access oprogramowanie umożliwiające realizację prostych jednostanowiskowych baz danych. Zawiera pakiet do graficznego projektowania i realizacji aplikacji 8

Definicje pojęć Pole pojedynczy niepodzielny element informacji Nazwa identyfikuje pole Typ zbiór wartości które może przyjąć Wartość informacja zapisana w polu Rekord nieuporządkowany zbiór różnych pól Tabela nieuporządkowany zbiór rekordów tego samego typu 9

Reprezentacja graficzna Tabela zbiór obiektów tego samego rodzaju 10

Reprezentacja graficzna Każdy wiersz (rekord) opisuje jeden obiekt. 11

Reprezentacja graficzna Pole 1 Pole 2 Pole 3 Pole 4 Pole 5 Pole6 Pole pojedynczy atrybut, cecha obiektu Nagłówek tabeli opis pól rekordów 12

Reprezentacja graficzna Pole 1 Pole 2 Pole 3 Pole 4 Pole 5 Pole6 Kolumna zbiór pól tego samego rodzaju wszystkich obiektów 13

Unikalny identyfikator rekordu Potrzeba jednoznacznej identyfikacji rekordu - nie mogą istnieć dwa takie same rekordy Klucz minimalny zbiór pól, na podstawie których można jednoznacznie identyfikować rekordy Uproszczenie klucza - wprowadzenie dodatkowego pola zawierającego unikalny identyfikator Przykłady unikalnych identyfikatorów w życiu NR indeksu studenta zamiast: PESEL NIP nazwisko, imię, rok urodzenia, imię ojca, matki 14

Własności elementów tabeli kolejność pól w rekordzie nie jest ważna kolejność rekordów w tabeli nie jest istotna w tabeli nie może być dwóch identycznych rekordów Operowanie zbiorami zamiast elementami zbiorów - - zbliżenie do języka naturalnego 15

Przykład wyrażeń w różnych językach Język naturalny: wybierz nazwiska pracowników, których pensja przekracza 3000zł Język zapytań (SQL): WYBIERZ SELECT nazwisko FROM Z pracownicy WHERE GDZIE pensja > 3000 Język proceduralny (język C): for (i = 1; i<= LiczbaRekordów; i = i+1) { if (rekord[i].pensja > 3000) {... wydrukuj rekord... } } 16

Iloczyn kartezjański zbiorów Iloczyn kartezjański dwóch zbiorów A, B jest zbiorem wszystkich możliwych par {a i, b i }, gdzie a i, b i są odpowiednio elementami zbiorów A, B Przykład A = {5, 1} B = {3, 2, 1} A x B = { {5,3} {5,2} {5,1} {1,3} {1,2} {1,1} } 17

Relacja Relacją R nazywamy uporządkowaną trójkę zbioru{a, grr, B}, gdzie: A oznacza zbiór argumentów relacji, B oznacza zbiór wartości relacji zaś grr (graf relacji, wykres relacji) jest pewnym podzbiorem iloczynu kartezjańskiego A x B definicja podana na przedmiocie Algebra i Teoria Mnogości 18

Przykład relacji (związku) Opisanie związku występującego w rzeczywistości: kto prowadzi jakie zajęcia mgr Kowalski dr Nowak dr Kamiński Teoria pola Elektronika, Algebra nie prowadzi zajęć w tym semestrze (urlop habilit.) Zbiory: A = Pracownicy mgr Kowalski dr Nowak dr Kamiński B = Przedmioty Teoria pola Algebra Elektronika Iloczyn Podzbiór kartezjański iloczynu kartezjańskiego C = A x B C = A x B Wszystkie Tylko te pary możliwe które są pary zgodne (pracownik, z rzeczywistością: przedmiot) każdy z każdym {Kowalski, Teoria pola}, {Nowak, Elektronika}, {Nowak, Algebra} 19

Realizacja relacji z użyciem tabel Tabela zawierająca elementy zbioru A ID A (klucz) Tabela zawierająca elementy zbioru B ID B (klucz) Dodatkowa tabela zawierająca zbiór par pozostających w związku ID A ID B Każdy rekord tabeli dodatkowej opisuje pojedynczą parę 20

Przykład Tabela zawierająca Pracowników Tabela zawierająca Przedmioty Nazwisko tytuł ID A (klucz) ID B (klucz) Nazwa Kowalski mgr 1 Nowak dr 2 Kamiński dr 3 1 Algebra 2 Elektronika 3 Teoria pola Dodatkowa tabela zawierająca zbiór par Pracownik - Przedmiot ID A ID B 1 3 2 1 2 2 Każdy rekord tabeli dodatkowej opisuje pojedynczą parę 21

Definicje pojęć (cd.) Baza danych zbiór tabel oraz związków (relacji) Indeks lista określająca porządek rekordów wg. pewnego kryterium Z punktu widzenia teorii indeks nie jest konieczny ale przyspiesza operacje na danych. Przykład Indeks pracowników wg alfabetycznej kolejności nazwisk 22

Operacje 1) Operacje wywodzące się z teorii mnogości 2) : Suma A B, suma rekordów Iloczyn A B, część wspólna Różnica A B, rekordy tabeli A nie występujące w tabeli B Iloczyn kartezjański A x B, wszystkie pary rekordów (a, b) Operacje relacyjne: Selekcja Projekcja Złączenie wybór rekordów na podstawie kryterium ukrycie niektórych pól rekordów połączenie rekordów dwóch tabel na podstawie równości ustalonych pól Uwagi 1) Wynikiem każdej operacji jest tabela 2) Format rekordów tabel A i B musi być taki sam 23

Przykład sumy Tabela pracownicy1 Instytut Nazwisko Tytuł Tabela pracownicy2 Instytut Nazwisko Tytuł I-14 Kowalski mgr I-14 Nowak dr I-15 Dębski mgr I-16 Wrocławski mgr I-14 Kamiński dr I-13 Karwowski mgr I-12 Czyżewska dr I-12 Dąbrowski mgr 24

Przykład sumy Wynik sumy tabel pracownicy1 oraz pracownicy2 Instytut Nazwisko Tytuł I-14 Kowalski mgr I-14 Nowak dr I-15 Dębski mgr I-16 Wrocławski mgr I-14 Kamiński dr I-13 Karwowski mgr I-12 Czyżewska dr I-12 Dąbrowski mgr 25

Przykład iloczynu (część wspólna) Tabela pracownicy1 Instytut Nazwisko Tytuł Tabela pracownicy2 Instytut Nazwisko Tytuł I-14 Kowalski mgr I-14 Nowak dr I-15 Dębski mgr I-16 Wrocławski mgr I-14 Kamiński dr I-13 Karwowski mgr I-14 Nowak dr I-14 Kamiński dr 26

Przykład iloczynu (część wspólna) Tabela pracownicy1 Instytut Nazwisko Tytuł Tabela pracownicy2 Instytut Nazwisko Tytuł I-14 Kowalski mgr I-14 Nowak dr I-15 Dębski mgr I-16 Wrocławski mgr I-14 Kamiński dr I-13 Karwowski mgr I-14 Nowak dr I-14 Kamiński dr 27

Przykład iloczynu (część wspólna) Wynik iloczynu tabel pracownicy1 i pracownicy 2 Instytut Nazwisko Tytuł I-14 Nowak dr I-14 Kamiński dr 28

Przykład różnicy Tabela pracownicy1 Instytut Nazwisko Tytuł Tabela pracownicy2 Instytut Nazwisko Tytuł I-14 Kowalski mgr I-14 Nowak dr I-15 Dębski mgr I-16 Wrocławski mgr I-14 Kamiński dr I-13 Karwowski mgr I-14 Nowak dr I-14 Kamiński dr 29

Przykład różnicy Tabela pracownicy1 Instytut Nazwisko Tytuł Tabela pracownicy2 Instytut Nazwisko Tytuł I-14 Kowalski mgr I-14 Nowak dr I-15 Dębski mgr I-16 Wrocławski mgr I-14 Kamiński dr I-13 Karwowski mgr I-14 Nowak dr I-14 Kamiński dr 30

Przykład różnicy Wynik różnicy: pracownicy1 minus pracownicy2 Instytut Nazwisko Tytuł I-14 Kowalski mgr I-15 Dębski mgr I-16 Wrocławski mgr 31

Przykład iloczynu kartezjańskiego Tabela pracownicy ID A Nazwisko Tytuł 1 Kowalski mgr 2 Nowak dr 3 Dębski mgr Tabela projekty ID Nazwa 14 Red Runner 125 Wostok 32

Przykład iloczynu kartezjańskiego Iloczyn kartezjański tabel pracownicy oraz projekty ID A Nazwisko Tytuł ID Nazwa 1 Kowalski mgr 14 Red Runner 1 Kowalski mgr 125 Wostok 2 Nowak dr 14 Red Runner 2 Nowak dr 125 Wostok 3 Dębski mgr 14 Red Runner 3 Dębski mgr 125 Wostok 33

Przykład selekcji Tabela pracownicy ID A (klucz) Nazwisko Tytuł Instytut 1 Kowalski mgr I-16 2 Nowak dr I-16 3 Dębski mgr I-15 4 Wrocławski mgr I-14 5 Kamiński dr I-14 34

Przykład selekcji Wybierz pracowników z tytułem doktora ID A (klucz) Nazwisko Tytuł Instytut 1 Kowalski mgr I-16 2 Nowak dr I-16 3 Dębski mgr I-15 4 Wrocławski mgr I-14 5 Kamiński dr I-14 35

Przykład selekcji Wynik selekcji: Wybierz pracowników z tytułem doktora ID A (klucz) Nazwisko Tytuł Instytut 2 Nowak dr I-16 5 Kamiński dr I-14 36

Przykład projekcji Tabela pracownicy ID A (klucz) Nazwisko Tytuł Instytut 1 Kowalski mgr I-16 2 Nowak dr I-16 3 Dębski mgr I-15 4 Wrocławski mgr I-14 5 Kamiński dr I-14 37

Przykład projekcji Wybierz nazwiska i tytuły pracowników ID A (klucz) Nazwisko Tytuł Instytut 1 Kowalski mgr I-16 2 Nowak dr I-16 3 Dębski mgr I-15 4 Wrocławski mgr I-14 5 Kamiński dr I-14 38

Przykład projekcji Wynik projekcji: Wybierz nazwiska i tytuły pracowników Nazwisko Kowalski Nowak Dębski Wrocławski Kamiński Tytuł mgr dr mgr mgr dr 39

Przykład złączenia Tabela pracownicy ID A Nazwisko Tytuł Inst. 1 Kowalski mgr I-16 2 Nowak dr I-16 3 Dębski mgr I-15 4 Wrocławski mgr I-14 5 Kamiński dr I-14 Tabela instytuty ID I Nazwa I-14 Instytut Metrologii I-15 Instytut Elektrotechniki I-16 Instytut Elektroniki 40

Przykład złączenia Wynik złączenia tabel Instytuty i Pracownicy ID A Nazwisko Tytuł Inst. ID I Nazwa 1 Kowalski mgr I-16 I-16 Instytut Elektroniki 2 Nowak dr I-16 I-16 Instytut Elektroniki 3 Dębski mgr I-15 I-15 Instytut Elektrotechniki 4 Wrocławski mgr I-14 I-14 Instytut Metrologii 5 Kamiński dr I-14 I-14 Instytut Metrologii Uwagi 1) Przy określaniu złączenia można użyć innej relacji niż równość (np. mniejszość) 2) Złączenie będzie używane do otrzymania informacji o związkach 41

Inne zagadnienia baz danych Jednoczesny dostęp wielu użytkowników Zasilanie bazy danych w informacje (kto, jak, kiedy?) Aktualność danych Zgodność z rzeczywistością (opis obiektów, zależności, reguły) Trwałość danych (przechowywanie przez określony czas) Ochrona danych (utrata, przekłamania) archiwizacja Wartość informacji zawartych w bazie danych 42

Język SQL Instrukcje języka SQL Operatory w języku SQL Definiowanie zapytań w SQL u 43

Konwencja zapisu SELECT słowo kluczowe parametr nazwa parametru { } wyrażenie opcjonalne [element1 element2] jeden ze zbioru... analogiczna kontynuacja Przykład INSERT INTO tabela { (pole1 {, pole_2 {,...} } ) } VALUES (wartość1 {,wartość2{,...}} ) 44

Język SQL DDL [ang. Data Definition Language] - instrukcje definiowania struktury danych DML [ang. Data Manipulation Language] - instrukcje manipulacji na danych: wstawianie, kasowanie, modyfikowanie, wybieranie. Operatory używane w wyrażeniach 45

Instrukcje DDL CREATE TABLE - utworzenie nowej tabeli CREATE INDEX - utworzenie indeksu CREATE VIEW - utworzenie perspektywy (nazwanego zapytania) ALTER TABLE - zmiana formatu tabeli (dodanie, usunięcie, zmiana pól tabeli) DROP TABLE - usuniecie tabeli z bazy danych DROP INDEX - usuniecie indeksu z bazy danych DROP VIEW - usuniecie perspektywy 46

Instrukcje DML SELECT - wybieranie danych (zapytanie) SELECT INTO - zapisanie wyników zapytania do tablicy INSERT INTO - dodawanie rekordów do tablicy UPDATE - modyfikowanie danych DELETE - usunięcie danych UNION - suma tabel INTERSECT - część wspólna tabel (iloczyn, przecięcie) MINUS - różnica tabel 47

Inne elementy SQL Związki LEFT, RIGHT, INNER, OUTER JOIN - określanie związków pomiędzy tabelami PARAMETERS - definiowanie parametrów zapytania Operatory w wyrażeniach Logiczne: AND, OR, NOT Arytmetyczne: + - / * Relacyjne: = < > <= > = < >, BETWEEN... AND, Inne: {NOT} IN, LIKE, IS {NOT} NULL 48

Instrukcja SELECT SELECT {predykat} [ * tabela.* {tabela.}pole1 {AS alias1}{,{tabela.}pole2 {AS alias2} {,...}}] FROM wyrażenie_tabelowe {,...} {IN zewnętrzna_baza_danych} {WHERE... } {GROUP BY... } {HAVING... } {ORDER BY... } 49

Instrukcja SELECT SELECT które_pola FROM z_której_tabeli {WHERE... } jakie kryterium selekcji {GROUP BY... }- grupowanie {HAVING... }- ograniczenie wybranych rekordów w grupowaniu {ORDER BY... }- porządkowanie klauzule dodatkowe określenie jak wykonać zapytanie Uwaga Istotna kolejność słów kluczowych 50

Przykłady instrukcji SELECT 1) SELECT FROM Pracownicy; 2) SELECT Nazwisko, Imię FROM Pracownicy; 3) SELECT Nazwisko, Imię FROM Pracownicy WHERE Pensja > 3000; 4) SELECT Nazwisko, Imię, Pensja FROM Pracownicy WHERE Pensja > 3000 ORDER BY Nazwisko, Imię; 51

Zastępcza nazwa - ALIAS ALIAS (synonim) Zastąpienie nazwy pola Zastąpienie nazwy tabeli Skrót upraszczający opis wyrażeń SELECT Nazwisko, Imię, Pensja AS Pobory FROM Pracownicy WHERE Pobory > 3000; SELECT Nazwisko FROM Pracownicy AS Pr WHERE Pr.Pensja > 3000 AND Pr.Data<2-02-2000; 52

Agregacja i grupowanie Agregacja - wyznaczenie pojedynczej wartości dla całej grupy: Sumy, Średniej, wartości maksymalnej, minimalnej Miesiąc Wpływ Razem za cały mc Styczeń 1000 Styczeń 2300 7300 Styczeń 4000 Luty 1000 2300 SELECT LutyMiesiąc, SUM(Wpływ) 1300 FROM Operacje Marzec 1450 3850 GROUP BY Miesiąc; Marzec 2300 Marzec 100 53

Funkcje agregujące SUM Suma COUNT Liczba elementów w grupie AVG Średnia MAX Wartości maksymalna MIN Wartość minimalnej FIRST Pierwszy z grupy LAST Ostatni z grupy Uwaga Funkcje wyznaczają pojedynczą wartość dla zbioru wartości. 54

Zapytania zagnieżdzone Wykorzystanie wyniku jednego zapytania jako parametru drugiego zapytania Tabela Zapytanie1 Tabela2 Wynik1 Zapytanie2 parametr Wynik SELECT Miesiąc, Wpływ FROM Operacje WHERE Wpływ IN (SELECT MAX(Wpływ) FROM Operacje); 55

Perspektywy [ang. VIEW] Zapamiętanie zapytania pod określoną nazwą (synonim zapytania) Ukrycie złożonego zapytania ułatwienie dla użytkownika Wspomagają realizację łańcucha zapytań Zapytanie1 Zapytanie2 Tabela Wynik pośredni Wynik CREATE VIEW WpływyMies AS SELECT Miesiąc, SUM(Wpływ) AS SumaW FROM Operacje GROUP BY Miesiąc; SELECT * FROM WpływyMies WHERE Miesiąc<12; 56

Zapytania z wielu tabel Zapytania z wielu tabel dają możliwość realizacji: - iloczynu kartezjańskiego - złączeń (naturalnych, theta) SELECT * FROM Pracownik, Prezent; SELECT * FROM Pracownik, Instytut WHERE Pracownik.Inst=Instytut.ID; - iloczyn kartezjański - złączenie naturalne SELECT * FROM Pracownik INNER JOIN Instytut ON Pracownik.Inst=Instytut.ID; - złączenie naturalne 57

Złączenia opcjonalne Wartość NULL oznaczenie że rekord nie jest związany Wykorzystanie słów kluczowych RIGHT, LEFT JOIN SELECT * FROM Pracownik, Instytut WHERE (Pracownik.Inst = Instytut.ID) OR (Pracownik.Inst IS NULL); - złączenie opcjonalne SELECT * FROM Pracownik LEFT JOIN Instytut ON Instytut.ID = Pracownik.Inst; - złączenie opcjonalne 58

Dopełnienie zapytania Słowa kluczowe: NOT IN SELECT Pola FROM Tabela WHERE PoleKluczowe NOT IN (Zapytanie1); Wybranie wpływów, które nie są maksymalne SELECT * FROM Wpływy WHERE Kwota NOT IN (SELECT MAX(Kwota) FROM Wpływy); 59

Samo-złączenie tabeli Zastosowanie przy związkach rekurencyjnych Polega na utworzenie synonimu tabeli: SELECT Pola FROM Tabela, Tabela AS SynonimTabeli... Pracownik ( ID, Nazwisko, Imie, IDKierownika) związek rekurencyjny przez pola ID = IDKierownika SELECT Nazwisko, Kierownik.Nazwisko FROM Pracownik, Pracownik AS Kierownik WHERE Pracownik.IDKierownika = Kierownik.ID; 60

Zapytanie krzyżowe Postać graficzna zapytania grupującego Zaimplementowana w MS Access ie TRANSFORM... PIVOT... forma tradycyjna NRklienta Miesiąc Kwota 102034 01 34,56 102034 02 40,50 103000 04 120,00 103000 01 30,45 103000 02 100,32 301988 01 80,87 301988 02 70,65 forma krzyżowa Miesiąc 01 02 04 NRklienta 102034 34,56 40,50 103000 30,45 100,32 120,00 301988 80,87 70,65 61

Operacje relacyjne a SELECT Operacje relacyjne: Selekcja Projekcja Złączenie wybór rekordów na podstawie kryterium ukrycie niektórych pól rekordów połączenie rekordów dwóch tabel na podstawie równości ustalonych pól SELECT które pola wybrać FROM WHERE z których tabel wybrać dane jakie kryterium selekcji projekcja selekcja lub złączenie określenie argumentów operacji -tabel; złączenie 62

Problem z wyrażeniem rekurencji Struktura drzewa... Wyrażenie pojedynczego poziomu rekurencji (1) Wyrażenie ustalonej liczby poziomów (przez łańcuch zapytań typu (1) ) Brak własności SQL a pozwalających na wyrażenie całego drzewa 63

Problemy łączenia SQL z innymi językami Różnice pomiędzy modelami danych SQL C, Pascal C++, Delphi model danych relacyjny strukturalny 1) obiektowy typy danych zbiór typy podstawowe: całkowity, struktury macierze rzeczywisty, znakowy, jak 1) oraz nowe typy obiektowe Potrzebny jest interfejs pośredniczący. 64