Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

SQL – Structured Query Language (2) Wykład 6 Prowadzący: dr Paweł Drozda.

Podobne prezentacje


Prezentacja na temat: "SQL – Structured Query Language (2) Wykład 6 Prowadzący: dr Paweł Drozda."— Zapis prezentacji:

1 SQL – Structured Query Language (2) Wykład 6 Prowadzący: dr Paweł Drozda

2 dr Paweł Drozda Modyfikacje baz danych Trzy typy instrukcji Wstawianie – INSERT INTO Usuwanie – DELETE FROM Aktualizacje - UPDATE

3 dr Paweł Drozda Wstawianie (1) INSERT INTO tabela VALUES (wart1, wart2, …, wartn); - polecenie wstawia do tabeli wartości war1, …, warn Ilość wartości = ilość atrybutów relacji Kolejność wartości odpowiada definicji tabeli

4 dr Paweł Drozda Wstawianie – przykład 1 Tabela studenci(nrIndeksu, nazwisko, imię, adres, rok studiów) INSERT INTO Studenci values(123456, Kowal, Stefan, Akacjowa 4 Łódź, 5);

5 dr Paweł Drozda Wstawianie (2) INSERT INTO tabela(pole1, pole2, …,polek) VALUES (wart1, wart2, …, wartk); Do pole1 wstawiana wart1 itd. Liczba pól nie musi być równa liczbie atrybutów relacji

6 dr Paweł Drozda Wstawianie – przykład 2 Wykorzystana tabela z przykładu 1 INSERT INTO Studenci (rok, nrIndeksu, nazwisko) VALUES(2,321432,Kuś); Wynik: KuśNULLNULL2

7 dr Paweł Drozda Wstawianie Wstawiane wiersze jako wynik zapytania Przykład: INSERT INTO Studenci (Imie, Nazwisko, rok) SELECT imię, nazwisko,1 from Kandydaci;

8 dr Paweł Drozda Usuwanie DELETE FROM tabela [WHERE warunek]; Bez warunku – usuwa wszystkie krotki z tabeli Przykłady: DELETE FROM Studenci; DELETE FROM Studenci WHERE rok=5;

9 dr Paweł Drozda Aktualizacja UPDATE tabela SET nowe wartości [WHERE warunek]; Nowe wartości w postaci atrybut=wartość Zmodyfikowane zostaną krotki spełniające warunek Przykład: UPDATE Studenci SET rok=rok+1 WHERE rok<5; UPDATE Pracownicy SET placa=placa+300 where stanowisko<>Dyrektor;

10 dr Paweł Drozda Wyszukiwanie Wybieranie interesujących informacji z jednej lub wielu relacji Najprostsza postać: SELECT * FROM tabela – zwraca wszystkie krotki z tabeli Po SELECT są wymieniane wybrane atrybuty (* - oznacza wszystkie) Po FROM wymieniane są relacje, których dotyczy zapytanie

11 dr Paweł Drozda Wyszukiwanie – selekcja SELECT * FROM Tabela WHERE warunek; Zwracane wszystkie krotki spełniające warunek Przykład: IdImięNazwiskoPESELPensja 1JanTopa MonikaStachura MichałPosek JanMara AnnaRożek PRACOWNICY

12 dr Paweł Drozda Wyszukiwanie - selekcja SELECT * FROM Pracownicy WHERE pensja>3000; IdImięNazwiskoPESELPensja 2MonikaStachura MichałPosek SELECT * FROM Pracownicy WHERE Nazwisko LIKE %ra% AND Pensja BETWEEN 1000 AND 2500; IdImięNazwiskoPESELPensja 4JanMara

13 dr Paweł Drozda Wyszukiwanie - selekcja Porównywanie wartości za pomocą operatorów =,<>,,>=,<=, != Operacje arytmetyczne – podobnie jak na liczbach Operatory logiczne AND, OR i NOT Operatory LIKE, BETWEEN AND, IN

14 dr Paweł Drozda Wyszukiwanie - selekcja Przykład SELECT * FROM Pracownicy WHERE (imie NOT LIKE %M% OR imie IN (Jan,Monika)) AND id>=3; IdImięNazwiskoPESELPensja 4JanMara AnnaRożek

15 dr Paweł Drozda Wyszukiwanie – projekcja SELECT pole1, pole2,…,polen FROM Tabela; Wyświetla wybrane atrybuty dla poszczególnych krotek Przykład : SELECT imie, nazwisko FROM Pracownicy; ImięNazwisko JanTopa MonikaStachura MichałPosek JanMara AnnaRożek

16 dr Paweł Drozda Wyszukiwanie – aliasy, wyrażenia CONCAT(wyr1,wyr2,…,wyrN) łączy pola w jedno Wyr1 AS Wyr2 – jako nagłówek atrybutu Wyr2 Przykład: SELECT CONCAT(imie,,nazwisko) FROM Pracownicy WHERE pensja>5000; CONCAT(imie,,nazwisko) Michał Posek

17 dr Paweł Drozda Wyszukiwanie – aliasy, wyrażenia Przykład SELECT CONCAT(imie,,nazwisko) AS Osoba, pensja/20 AS Dniówka FROM Pracownicy WHERE Id!=3 AND pensja>3000; OsobaDniówka Monika Stachura170

18 dr Paweł Drozda Wyszukiwanie – porządek wyświetlania, usuwanie duplikatów DISTINCT – różne wartości atrybutów ORDER BY pole1 [ASC/DESC], … – ustawia kolejność wyświetlania wyników rosnąco lub malejąco według kolejno wymienionych pól – domyślne ustawienie na rosnąco

19 dr Paweł Drozda Wyświetlanie - przykład SELECT DISTINCT Imie FROM Pracownicy; SELECT * FROM PRACOWNICY ORDER BY imie, placa DESC; Imię Jan Monika Michał Anna IdImięNazwiskoPESELPensja 5AnnaRożek JanMara JanTopa MichałPosek MonikaStachura

20 Wyszukiwanie – ograniczanie liczby wyników Limit n1, [n2]– ogranicza liczbę wypisanych wyników Gdy podana jedna liczba n – wyświetlonych n wyników Select * From Pracownicy Order by imie limit 2; Gdy dwie liczby – pierwsza oznacza początek wypisania, druga liczbę wierszy Select Imie, Nazwisko from Pracownicy limit 3,2; dr Paweł Drozda IdImięNazwiskoPESELPensja 5AnnaRożek JanMara IdImięNazwiskoPESELPensja 4JanMara AnnaRożek

21 dr Paweł Drozda Funkcje agregujące Każda funkcja działa na zbiorach powstałych poprzez grupowanie względem jakiegoś wyrażenia Dla każdego zbioru zwraca jedną wartość Zadanie Znaleźć średnią ocen dla każdego studenta

22 dr Paweł Drozda Funkcje agregujące NrIndeksuPrzedmiotOcena 12345Analiza3, Algebra4, PTO Bazy Danych Bazy Danych Algebra PTO Bazy Danych PTO3 NrIndeksuŚrednia , ,5 średnia EGZAMIN

23 dr Paweł Drozda Funkcje agregujące, grupowanie AVG – zwraca średnią COUNT – zlicza liczbę wystąpień MIN – zwraca wartość minimalną MAX – zwraca wartość maksymalną SUM – zwraca sumę GROUP BY pole – determinuje według którego pola następuje grupowanie HAVING warunek – ogranicza grupy to tych których wszystkie krotki spełniają nałożony warunek

24 dr Paweł Drozda Funkcje agregujące przykład SELECT NrIndeksu, AVG(Ocena) AS Średnia FROM Egzamin GROUP BY NrIndeksu; SELECT NrIndeksu, COUNT(Przedmioty) AS Ilosc zdawanych FROM Egzamin GROUP BY NrIndeksu ORDER BY NrIndeksu DESC; NrIndeksuIlosc zdawanych

25 dr Paweł Drozda Funkcje agregujące przykład IdImięNazwiskoStanowiskoMiastoPensja 1JanTopaAsystentToruń1400 2MonikaStachuraManagerToruń3400 3MichałPosekDyrektorToruń5400 4JanMaraAsystentToruń2000 5AnnaRożekManagerOlsztyn2500 PRACOWNICY SELECT Stanowisko, MIN(Pensja) AS Minimalna, MAX(Pensja) AS Maksymalna FROM Pracownicy GROUP BY Stanowisko HAVING COUNT(distinct Miasto)>=2; - zwróci minimalną i maksymalną Płacę managera – jedyne stanowisko w dwóch różnych miastach

26 dr Paweł Drozda Łączenie relacji – połączenia wewnętrzne Potrzebne informacje z więcej niż jednej tabeli Rodzaje połączeń CROSS JOIN – iloczyn kartezjański JOIN ON operator równości – połączenie równościowe NATURAL JOIN, JOIN USING – połączenie naturalne JOIN ON dowolny operator – połączenie nierównościowe

27 dr Paweł Drozda Iloczyn kartezjański Zwraca wszystkie kombinacje krotek z łączonych relacji Przykład: IdTytułCenaWydawca 1Lalka47PWN 2Potop34PTE 3Szwejk70PTE Książki IdIdKsiązk i Iloś ć Data Zamówienia

28 dr Paweł Drozda Iloczyn kartezjański SELECT Tytuł, Ilość FROM Książki CROSS JOIN Zamówienia; TytułIlość Potop2 Lalka2 Szwejk2 Lalka4 Potop4 Szwejk4

29 dr Paweł Drozda Połączenie równościowe Bierze pod uwagę krotki, które spełniają wyrażenie po ON Przykład: SELECT Tytuł, Ilość FROM Książki JOIN Zamówienia ON Książki.id = Zamówienia.IdKsiazki TytułIlość Lalka2 Szwejk4

30 dr Paweł Drozda Połączenie naturalne Bierze pod uwagę krotki mające tę samą nazwę w obu relacjach Przykład SELECT Tytuł, Ilość FROM Książki NATURAL JOIN Zamówienia; TytułIlość Lalka2 Potop4

31 dr Paweł Drozda Połączenie nierównościowe Analogicznie do połączenia równościowego tyle, że warunek może być dowolny Przykład: SELECT Tytuł, Ilość FROM Książki JOIN Zamówienia ON Książki.id >= Zamówienia.id; TytułIlość Lalka2 Potop2 4 Szwejk2 4

32 dr Paweł Drozda Połączenia zewnętrzne Zwracane wszystkie krotki z wybranej relacji LEFT – zwraca wszystkie wystąpienia relacji po lewej stronie połączenia RIGHT - zwraca wszystkie wystąpienia relacji po prawej stronie połączenia FULL – zwraca wszystkie wystąpienia obu relacji SELECT atrybuty FROM tabela1 LEFT|RIGHT|FULL OUTER JOIN tabela2 on warunek| using (atrybut);

33 dr Paweł Drozda Połączenia zewnętrzne - przykład IdTytułCenaWydawca 1Lalka47PWN 2Potop34PTE 3Szwejk70PTE Książki IdIdKsiązk i Iloś ć Data Zamówienia

34 dr Paweł Drozda Przykład cd TytułCenaIlość Lalka472 Potop344 Szwejk70NULL SELECT Tytuł, Cena, Ilość FROM Książki LEFT OUTER JOIN Zamówienia USING (Id); SELECT Tytuł, Cena, Ilość FROM Książki LEFT OUTER JOIN Zamówienia ON Książki.Id = Zamówienia.IdKsiążki; TytułCenaIlość Lalka472 Potop34NULL Szwejk704 IdTytułCenaIdKsiązk i IlośćData 1Lalka Potop Szwejk70NULL

35 dr Paweł Drozda Połączenia zwrotne Łączenie tabeli samej ze sobą Przykład: SELECT p.imie || || p.nazwisko as pracownik, s.nazwisko as szef FROM Pracownicy p JOIN Pracownicy s on p.id = s.id_szefa; Zapytanie dla każdego pracownika zwróci nazwisko szefa

36 dr Paweł Drozda Połączenia zwrotne - przykład idimienazwiskoid_szefa 1JacekBarcik2 2AnnaBaranNULL 3TomaszKwiecień2 Pracownicy p idimienazwiskoid_szefa 1JacekBarcik2 2AnnaBaranNULL 3TomaszKwiecień2 Pracownicy s idimienazwiskoid_szefaimienazwiskoid_szefa 1JacekBarcik2AnnaBaranNULL 2TomaszKwiecień2AnnaBaranNULL

37 dr Paweł Drozda Łączenie wielu relacji Połączenie relacji z wcześniej połączonymi relacjami Przykład: SELECT k.nazwisko as Klient, t.nazwa as Produkt, t.cena * z.ilosc as Suma FROM (Klienci k JOIN Zamowienie z ON k.id_klienta = z.id_klienta) JOIN Towary t ON z.id_towaru = t.id_towaru;

38 dr Paweł Drozda Wiele relacji - przykład idId_towaruId_klientailosc KlientProduktSuma BarcikPączek2.6 KwiecieńPączek5.2 KwiecieńChleb1.8 Id_klientanazwisko 1Barcik 2Baran 3Kwiecień Id_towarunazwacena 1Pącze k 1.3 2Chleb1.8 3Masło4.5 Klienci kTowary tZamówienia z


Pobierz ppt "SQL – Structured Query Language (2) Wykład 6 Prowadzący: dr Paweł Drozda."

Podobne prezentacje


Reklamy Google