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



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

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

RBD Relacyjne Bazy Danych

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

Autor: Joanna Karwowska

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

Złaczenia tablic: FROM, WHERE, JOIN

Przestrzenne bazy danych Podstawy języka SQL

Technologie baz danych

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

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

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

Wykład 6. SQL praca z tabelami 3

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Bazy danych i usługi sieciowe

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

Model relacyjny. Wykład II

Wprowadzenie do języka SQL

SQL Structured Query Language

Systemy GIS Tworzenie zapytań w bazach danych

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

3. Podzapytania, łączenie tabel i zapytań

Paweł Rajba

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

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

SQL (ang. Structured Query Language)

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

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

1 Wstęp do modelu relacyjnego

Model relacyjny. Wykład II

Współczesne systemy baz danych

Język SQL podstawy zapytań

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

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

Podstawy języka SQL cz. 2

Współczesne systemy baz danych

Relacyjne bazy danych. Podstawy SQL

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

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

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

Grupowanie i funkcje agregacji

SQL Structured Query Language

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

Bazy danych wykład trzeci. Konrad Zdanowski

Tadeusz Pankowski Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

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

Wypisujemy nazwiska pracowników o numerach równych 100 lub 500. SELECT DISTINCT Nazwisko FROM Pracownik WHERE NrPrac IN (100,500);

Teoretyczne podstawy informatyki

Bazy danych. Informacje podstawowe

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

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

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

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

Technologie baz danych

Systemy baz danych. Notatki z wykładu

Konstruowanie Baz Danych DQL agregacja danych

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

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Relacyjne bazy danych. Podstawy SQL

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

Laboratorium Bazy danych SQL 2

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Wprowadzenie. SKiBD

Operacja Teta-złączenia. v1 v1 Θ v2

STANDARDY JĘZYKA SQL CECHY JĘZYKA SQL WADY I ZALETY

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

Microsoft SQL Server Podstawy T-SQL

Podzapytania. Podzapytania nieskorelowane i skorelowane

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

SQL Structured Query Language

Wykład XII. optymalizacja w relacyjnych bazach danych

Laboratorium nr 10. Temat: Połączenia relacji

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

Autor: Joanna Karwowska

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

Autor: Joanna Karwowska

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

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

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

Podyplomowe Studia Systemy informatyczne w logistyce

Ćwiczenie 4 - połączenia

Język SQL. Rozdział 2. Proste zapytania

RBD Relacyjne Bazy Danych Więzy realcji

Grupowanie i funkcje agregujące

Pobieranie danych z wielu tabel i łączenie wyników zapytań

Krok 1. SELECT Symbol AS KS INTO Dzielnik FROM Towary WHERE (Nazwa='Orzeszki solone') OR (Nazwa = 'Zupy CHOISE') OR (Nazwa = 'Kawa BURG');

Wyższa Szkoła Zarządzania i Marketingu w Sochaczewie. Grzegorz Domaoski. grzegorz.domanski@wszim-sochaczew.edu.pl. MS SQL Server

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Politechnika Poznańska TWO

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

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

Język SQL, zajęcia nr 2

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

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

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

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

Transkrypt:

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

Wykład 5 Strukturalny język zapytań (SQL - Structured Query Language) Algebraiczny rodowód podstawowe działania w przykładach Bazy danych. Wykład 5 2

Składnia zapytania Oracle SQL SELECT [DISTINCT ALL] { [table.]* [table.]column [ [AS] c_alias ] [ "column header"] expr [ [AS] c_alias ] [ "column header"] } [, { [table.]column [ [AS] c_alias ] [ "column header"] expr [ [AS] c_alias ] [ "column header"] }...] FROM [u_schema.]table [t_alias] [, [u_schema.]table [t_alias]... ] [WHERE condition] [GROUP BY [u_schema.][table.]column [, [u_schema.][table.]column... ] ] [HAVING condition] [ORDER BY {expr c_alias position} [ASC DESC] ; [, {expr c_alias position} [ASC DESC]...] Bazy danych II. Wykład 5 3

Działania algebry RBD Oparte na teorii zbiorów: 1) Unia 2) Przecięcie (iloczyn) 3) Różnica 4) Produkt (iloczyn kartezjański) Dotyczące informacji o strukturze krotek: 5) Przypisanie (alias) 6) Projekcja (rzutowanie) 7) Selekcja 8) Złączenie 9) Dzielenie Bazy danych. Wykład 5 4

Unia Standard SQL i Oracle SQL: select X,Y,Z from R union select X,Y,Z from S; Bazy danych. Wykład 5 5

Przecięcie (iloczyn) Standard SQL i Oracle SQL: select X,Y,Z from R intersect select X,Y,Z from S; Bazy danych. Wykład 5 6

Różnica Standard SQL i Oracle SQL: select X,Y,Z from R minus select X,Y,Z from S; Bazy danych. Wykład 5 7

Produkt (iloczyn kartezjański) Standard SQL i Oracle SQL: select * from R, S; select R.X,R.Y,R.Z,S.X,S.Y,S.Z from R, S; Bazy danych. Wykład 5 8

R=A Alias (przypisanie) relacji Oracle SQL: select A.X,A.Y,A.Z from R A; Oracle SQL: select * from R A, R B; select A.X,A.Y,A.Z,B.X,B.Y,B.Z from R A, R B; Bazy danych. Wykład 1 9

Alias (przypisanie) atrybutu X=Xnowy, tzn. R.X=R.Xnowy Oracle SQL: select X as Xnowy,Y,Z from R; lub select X Xnowy,Y,Z from R; Bazy danych. Wykład 5 10

Projekcja (rzutowanie) Standard SQL i Oracle SQL: select X,Y from S; Bazy danych. Wykład 5 11

Selekcja Standard SQL i Oracle SQL: select * from R where X= x1 and Y= y2 ; lub select X,Y,Z from R where X= x1 and Y= y2 ; Bazy danych. Wykład 5 12

Złączenia Złączenie naturalne (odnosi się zwykle do identycznie nazwanych atrybutów w relacjach wchodzących w to złączenie) Złączenie wewnętrzne (inaczej: proste złączenie), tu wynikiem są krotki spełniające dokładnie warunek złączenia Złączenia zewnętrzne (nadzbiór złączenia wewnętrzego): - złączenie zewnętrzne lewostronne, - złączenie zewnętrzne prawostronne, - złączenie zewnętrzne obustronne Równozłączenie (do porównania atrybutów współdzielonych używamy operatora: =) -złączenia, w tym typie złączenia do porównania atrybutów współdzielonych używamy operatora : - jeśli operatorem jest: <, >, <=, >=, to mówimy o semizłączeniu (półzłączeniu) - jeśli operatorem różności <> (!=), to mówimy o antyzłączeniu Samozłączenie (złączenie relacji samej z sobą) Bazy danych. Wykład 5 13

Złączenie naturalne wewnętrzne Bazy danych. Wykład 5 14

Złączenie naturalne wewnętrzne Jedyna możliwość w starszych wersjach Oracle SQL: select X, R.Z1, R.Z2, Y from R, S where R.Z1=S.Z1 and R.Z2=S.Z2; Nowe możliwości Oracle SQL inspirowane przez Standard SQL: select X, Z1, Z2, Y from R natural join S; select X, R.Z1, R.Z2, Y from R inner join S on R.Z1=S.Z1 and R.Z2=S.Z2; select X, R.Z1, R.Z2, Y from R join S on R.Z1=S.Z1 and R.Z2=S.Z2; Bazy danych. Wykład 5 15

Złączenie (naturalne) zewnętrzne lewostronne Bazy danych. Wykład 5 16

Złączenie (naturalne) zewnętrzne lewostronne Jedyna możliwość w starszych wersjach Oracle SQL: select X, R.Z1, R.Z2, Y from R, S where R.Z1=S.Z1(+) and R.Z2=S.Z2(+); Nowe możliwości Oracle SQL inspirowane przez Standard SQL: select X, R.Z1, R.Z2, Y from R left join S on R.Z1=S.Z1 and R.Z2=S.Z2; select X, R.Z1, R.Z2, Y from R left outer join S on R.Z1=S.Z1 and R.Z2=S.Z2; A nawet: select X, Z1, Z2, Y from R natural left join S; select X, Z1, Z2, Y from R natural left outer join S; Bazy danych. Wykład 5 17

Złączenie (naturalne) zewnętrzne prawostronne Bazy danych. Wykład 5 18

Złączenie (naturalne) zewnętrzne prawostronne Jedyna możliwość w starszych wersjach Oracle SQL: select X, R.Z1, R.Z2, Y from R, S where R.Z1(+)=S.Z1 and R.Z2(+)=S.Z2; Nowe możliwości Oracle SQL inspirowane przez Standard SQL: select X, R.Z1, R.Z2, Y from R right join S on R.Z1=S.Z1 and R.Z2=S.Z2; select X, R.Z1, R.Z2, Y from R right outer join S on R.Z1=S.Z1 and R.Z2=S.Z2; A nawet: select X, Z1, Z2, Y from R natural right join S; select X, Z1, Z2, Y from R natural right outer join S; Bazy danych. Wykład 5 19

Złączenie (naturalne) zewnętrzne obustronne Bazy danych. Wykład 5 20

Złączenie (naturalne) zewnętrzne obustronne Jedyna możliwość w starszych wersjach Oracle SQL: select X, R.Z1, R.Z2, Y from R, S where R.Z1=S.Z1(+) and R.Z2=S.Z2(+) union select X, R.Z1, R.Z2, Y from R, S where R.Z1(+)=S.Z1 and R.Z2(+)=S.Z2; Nowe możliwości Oracle SQL inspirowane przez Standard SQL: select X, R.Z1, R.Z2, Y from R full join S on R.Z1=S.Z1 and R.Z2=S.Z2; select X, R.Z1, R.Z2, Y from R full outer join S on R.Z1=S.Z1 and R.Z2=S.Z2; A nawet: select X, Z1, Z2, Y from R natural full join S; select X, Z1, Z2, Y from R natural full outer join S; Bazy danych. Wykład 5 21

Uwaga o implementacji złączenia naturalnego w Oracle SQL Złączenie naturalne relacji w Oracle SQL odbywa się względem atrybutów współdzielonych o takich samych nazwach, gdy takie nie istnieją, to wykonany zostaje iloczyn kartezjański relacji. Dozwolone jest również wykorzystanie złączeń naturalnych do wykonania złączeń zewnętrznych relacji. Jednak aby uzyskać taki wynik, muszą istnieć w tych relacjach współdzielone atrybuty o takich samych nazwach, w przeciwnym razie zostanie wykonany iloczyn kartezjański. Bazy danych. Wykład 5 21

Zupełny zbiór działań ZUPEŁNY ZBIÓR DZIAŁAŃ ALGEBRY RELACYJNYCH BAZ DANYCH tworzą: UNIA RÓŻNICA PRODUKT (ILOCZYN KARTEZJAŃSKI) PROJEKCJA (RZUTOWANIE) SELEKCJA ALIAS (PRZYPISANIE) Przy pomocy tych 6 działań można wyrazić pozostałe 3: PRZECIĘCIE (ILOCZYN), ZŁĄCZENIE, DZIELENIE. Bazy danych. Wykład 5 22

Dzielenie Oracle SQL: Algebraiczna => tożsamość: R π S1 = R[X,Y] (R[X,Y] S1 R)[X,Y] select R.X, R.Y from R minus select X, Y from (select R.X, R.Y, S1.Z from R, S1 minus select R.X, R.Y, R.Z from R); Bazy danych. Wykład 5 23

Dzielenie Oracle SQL: Algebraiczna => tożsamość: R π S3 = R[X] (R[X] S3 R)[X] select R.X from R minus select X from (select R.X, S3.Y, S3.Z from R, S3 minus select R.X, R.Y, R.Z from R); Bazy danych. Wykład 5 24