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

Podobne dokumenty
Bazy danych - Materiały do laboratoriów IV

1 Wprowadzenie do funkcji

SQL Structured Query Language

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

27 lutego Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład I. dr inż.

Bazy danych - Materiały do laboratoriów VIII

SQL Structured Query Language

Autor: Joanna Karwowska

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

SQL Structured Query Language

SQL (ang. Structured Query Language)

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

Systemy GIS Tworzenie zapytań w bazach danych

Microsoft SQL Server Podstawy T-SQL

Model relacyjny. Wykład II

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

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

Wykład 6. SQL praca z tabelami 3

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

Przestrzenne bazy danych Podstawy języka SQL

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

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

Model relacyjny. Wykład II

3. Podzapytania, łączenie tabel i zapytań

Relacyjne bazy danych. Podstawy SQL

Grupowanie i funkcje agregacji

Paweł Rajba

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

Złaczenia tablic: FROM, WHERE, JOIN

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

Relacyjne bazy danych. Podstawy SQL

1 Wstęp do modelu relacyjnego

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

SQL do zaawansowanych analiz danych część 1.

Język SQL. Rozdział 8. Język manipulowania danymi DML

Podstawy języka SQL cz. 2

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Oracle11g: Wprowadzenie do SQL

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

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 2. Wykład 4 Structured Query Language (SQL)

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

Wykład 8. SQL praca z tabelami 5

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

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

Wykład 5. SQL praca z tabelami 2

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

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

Bazy danych. Dr inż. Paweł Kasprowski

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

Technologie baz danych

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

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

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

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

Język SQL podstawy zapytań

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

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

Rozszerzenia grupowania

Laboratorium Bazy danych SQL 3 1

RBD Relacyjne Bazy Danych

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

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

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

Współczesne systemy baz danych

Grupowanie i funkcje agregujące

Bazy danych Język SQL część 2 Wykład dla studentów matem

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

Bazy danych. Informacje podstawowe

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

Współczesne systemy baz danych

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

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

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

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

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

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

SQL praca z tabelami 4. Wykład 7

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

PODZAPYTANIE (SUBSELECT)

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

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

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

Tworzenie zapytań do Microsoft SQL Server

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

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

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

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

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

Bazy danych 10. SQL Widoki

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Wprowadzenie do języka SQL

Zadania z SQLa (MS SQL Server)

Ćwiczenie 6 - DML. Tworzenie, modyfikacja i usuwanie krotek. Podstawy poleceń COMMIT i ROLLBACK. Ćwiczenie 6 DML. Wymagania: Bazy Danych

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

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Transkrypt:

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 danymi 9 4 Źródła 9 1 DML - zapytania, część II 1.1 Grupowanie Klauzula GROUP BY klauzula GROUP BY umożliwia podzielenie relacji na podzbiory - agregację. Pojedynczy podzbiór/grupę stanowią wiersze, dla których kryterium grupowania ma identyczną wartość. Na liście wyrażeń klauzuli SELECT mogą wówczas stanąć jedynie te wyrażenia, które są przedmiotem działania klauzuli GROUP BY, oraz argumenty funkcji agregujących. SELECT rok, Count(nazwisko) FROM studenci GROUP BY rok; SELECT rok,gr_dziekan, Count(nazwisko) FROM studenci GROUP BY rok, gr_dziekan; Grupowanie 1

Grupowanie z wieloma kryteriami Funkcje agregujące Funkcje agregujące pobierają jako dane wejściowe zbiór wartości, a zwracają jedną wartość. Avg([DISTINCT] wyr) - oblicza średnią ze zbioru (opcjonalnie różnych) wartości wyrażenia (pomijając wystąpienia NULL). Count(* [DISTINCT] wyr) - Wywołanie Count(*) zwraca liczbę wszystkich wierszy uzyskanych w wyniku zapytania. Podanie argumentu w postaci wyrażenia spowoduje zwrócenie liczby wierszy, w których wybrane wyrażenie nie przyjęło wartości NULL. Max([DISTINCT] wyr) - Zwraca największą wartość ze zbioru (opcjonalnie pozbawionego powtórzeń) pomijając NULL. Min([DISTINCT] wyr) - Zwraca najmniejszą wartość ze zbioru (opcjonalnie pozbawionego powtórzeń) pomijając NULL. Stdev([DISTINCT] wyr) - Wylicza odchylenie standardowe na zbiorze (opcjonalnie pozbawionym powtórzeń) pomijając NULL. Sum([DISTINCT] wyr) - Wylicza sumę wartości ze zbioru (opcjonalnie pozbawionego powtórzeń) pomijając NULL. Variance(* [DISTINCT] wyr) - Oblicza wariancję wartości ze zbioru (opcjonalnie pozbawionego powtórzeń) pomijając NULL. Klauzula HAVING klauzula HAVING określa warunki, które muszą być spełnione przez podzbiór by został uwzględniony w relacji wynikowej; (warunki zawarte w klazuli WHERE tyczą się relacji przed agregacją, zaś w HAVING po agregacji). 2

SELECT rok, Count(nazwisko) FROM studenci GROUP BY rok HAVING Count(nazwisko) > 100; SELECT rok,gr_dziekan, Count(nazwisko) FROM studenci GROUP BY rok, gr_dziekan HAVING Count(nazwisko) > 20; WHERE kontra HAVING Rozszerzenia klauzuli GROUP BY Oracle: ROLLUP - dla n kryteriów grupowania daje n 1 dodatkowych zestawień; dodatkowe podsumowania uzyskuje poprzez zwijanie ostatnich elementów z listy. Np.: SELECT rok, gr_dziekan, imiona,count(*) FROM studenci GROUP BY ROLLUP(rok, gr_dziekan, imiona); 3

CUBE - dla n kryteriów grupowania daje 2 n zestawień; Np.: SELECT rok, gr_dziekan, imiona,count(*) FROM studenci GROUP BY CUBE(rok, gr_dziekan, imiona); GROUPING SETS - pozwala na jednoznaczne określenie, które z dodatkowych zestawień chcemy uzyskać. Np.: SELECT rok, gr_dziekan, imiona,count(*) FROM studenci GROUP BY GROUPING SETS((rok, gr_dziekan, imiona),()); Grouping(wyr) - Funkcja zwracajaca wartość 1 dla wyrażeń zwijanych dla dodatkowych zestawień.np.: SELECT Grouping(rok), rok, Grouping(gr_dziekan), gr_dziekan, Grouping(imiona), imiona,count(*) FROM studenci GROUP BY CUBE(rok, gr_dziekan, imiona); 4

1.2 Operatory zbiorowe Operatory zbiorowe UNION, INTERSECT, EXCEPT/MINUS używane są do przeprowadzania operacji sumy, przecięcia lub różnicy na dwóch lub więcej kompatybilnych relacjach będących wynikami zapytań. SELECT stanowisko FROM pracownicy WHERE id_dzialu=20 INTERSECT SELECT stanowisko FROM pracownicy WHERE id_dzialu=30; Złączenia Złączenia tabel w języku SQL uzyskuje się poprzez wstawienie więcej niż jednej relacji w klazuli FROM oraz polączenie ich odpowiednim operatorem. Notacja w standardzie ANSI SQL FROM tabela1 [AS alias] {CROSS JOIN { [NATURAL] [typ_laczenia] JOIN tabela2 [AS alias] { ON warunek1 [{AND OR} warunek2] [...] ] USING (atrybut1 [,...]) } } Zdefiniowano następujące typy złączeń: iloczyn kartezjański złączenia naturalne θ-złączenia złaczenia zewnętrzne samozłączenia Iloczyn kartezjański Iloczyn kartezjański daje w wyniku relację składajacą się ze wszystkich możliwych kombinacji krotek obu łączonych relacji. SELECT * FROM pracownicy CROSS JOIN dzialy; 5

Złączenie naturalne Złączenie naturalne daje w wyniku iloczyn kartezjański łączonych relacji ograniczony do tych krotek, dla których atrybuty o tych samych nazwach i typach w obu relacjach miały równe wartości. SELECT * FROM pracownicy NATURAL JOIN dzialy; Złączenie warunkowe θ-złączenie daje w wyniku iloczyn kartezjański łączonych relacji ograniczony do tych krotek, dla których został spełniony warunek θ. SELECT * FROM pracownicy p [INNER] JOIN dzialy d ON (p.id_dzialu = d.id_dzialu); SELECT * FROM pracownicy p [INNER] JOIN dzialy d USING (id_dzialu); Złączenie zewnętrzne Złączenie zewnętrzne rozszerza rezultat złączenia wewnętrznego o te wiersze jednej lub obu tabel, dla których nie odnaleziono odpowiedników w drugiej tabeli. Wiersze stanowiące rozszerzenie są wypełnione wartością NULL. Złączenia zewnętrzne dzielą się na: lewostronne prawostronne pełne SELECT * FROM pracownicy p {LEFT RIGHT FULL} [OUTER] JOIN dzialy d ON (p.id_dzialu = d.id_dzialu); Samozłączenie Samozłączenie złączenie tabeli samej ze sobą. SELECT p.nazwisko, s.nazwisko FROM pracownicy p JOIN pracownicy s ON (p.kierownik = s.nr_akt); 6

Podzapytania Podzapytanie to zapytanie zagnieżdżone w innym zapytaniu, może być zagnieżdżone w klauzulach: SELECT, FROM, WHERE oraz HAVING. Podzapytania są ograniczane nawiasami okrągłymi. Zapytania można zagnieżdżać wielokrotnie. Istnieją dwa typy podzapytań: podzapytanie proste - wykonywane w pierwszej kolejności, jako wynik pośredni trafiają do zapytania zewnętrznego. SELECT nazwisko FROM pracownicy WHERE placa = (SELECT Min(placa) FROM pracownicy); podzapytanie skorelowane - wykonywane dla każdego wiersza z zapytania zewnętrznego. SELECT nazwisko, rok FROM studenci s WHERE data_urodzenia = (SELECT Max(data_urodzenia) FROM studenci WHERE rok = s.rok); 2 DML - modyfikacja Polecenie UPDATE Polecenie UPDATE służy do aktualizacji zawartości wierszy tabel. W klauzuli SET wymieniamy atrybuty, których wartości będą zmieniane. Opcjonalna klauzula WHERE wyznacza kryterium, jakie muszą spełnić wiersze tabeli aby podlegać zmianie. Brak ograniczającego warunku oznacza, że wszystkie wiersze będą zmienione. Składnia: UPDATE {tabela perspektywa} SET {{atrybut = wartosc DEFAULT NULL}, {atrybut = wartosc DEFAULT NULL},...} [WHERE warunek]; Przykłady: UPDATE pracownicy SET placa = placa * 1.1; UPDATE pracownicy SET placa = placa * 1.1 WHERE nr_akt IN (SELECT kierownik FROM pracownicy); 7

Polecenie INSERT Polecenie INSERT pozwala wstawiać do tabeli nowe wiersze. Opcjonalnie można określić listę uzupełnianych atrybutów, w przeciwnym razie należy wypełnić wszystkie. Klauzula VALUES określa wartości jakie będą przypisane atrybutom. Wiersz można wypełnić wartościami zwróconymi przez podzapytanie. Składnia: INSERT INTO {tabela perspektywa} [(atrybut1 [,...] )] {DEFAULT VALUES VALUES (wartosc1 [,...]) SELECT... }; Przykłady: INSERT INTO dzialy VALUES (10, ZARZAD, CZESTOCHOWA ); INSERT INTO pracownicy VALUES (9121, KUKULSKI, DYREKTOR, 8901, To_date( 1991/04/02, yyyy/mm/dd ), NULL, 5000, 1500, NULL, 30); INSERT INTO pracownicy (nr_akt, nazwisko) VALUES (9192, KOWALSKI ); INSERT INTO prac_archiw SELECT * FROM pracownicy WHERE nr_akt = 9192; Polecenie DELETE Polecenie DELETE usuwa wiersze ze wskazanej tabeli, zawiera opcjonalną klauzule WHERE ograniczającą liczbę usuniętych wierszy do tych, które spełniają zadany warunek. Składnia: DELETE FROM {tabela perspektywa} [WHERE warunek]; Przykłady: DELETE FROM stanowiska; DELETE FROM pracownicy WHERE nr_akt = 9192; 8

3 DCL - sterowanie danymi Polecenie COMMIT i ROLLBACK Polecenie COMMIT - polecenie zatwierdzające wprowadzone dane. Dane, które nie zostały zatwierdzone, są widoczne wyłącznie w ramach sesji (w wypadku awarii zmiany zostaną wycofane). Polecenie ROLLBACK umożliwia wycofanie niezatwierdzonych zmian w bazie danych. 4 Źródła Źródła W wykładzie wykorzystano materiały: M. Lentner, Oracle 9i Kompletny podręcznik użytkownika, PJWSTK - W-wa, 2003 J. Gennick, SQL leksykon kieszonkowy, Helion 2004 http://sqlnut.atw.hu/ 9