Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Język SQL – podstawy zapytań 1. Plan prezentacji 2 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje.

Podobne prezentacje


Prezentacja na temat: "Język SQL – podstawy zapytań 1. Plan prezentacji 2 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje."— Zapis prezentacji:

1 Język SQL – podstawy zapytań 1

2 Plan prezentacji 2 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

3 3 Krótka historia języka SQL – kroki milowe publikacją E.F.Codda pt. A Relational Model of Data for Large Shared Data Banks. ( pol. Relacyjny model danych dla dużych współdzielonych banków danych) w IBM powstał język SEQUEL (ang. Structured English Query Language – Stukturalny Angielski Język Zapytań) firma ORACLE wypuściła na rynek pierwszy komercyjny system zarządzania bazami danych oparty o SQL. … do dnia dzisiejszego trwa burzliwy rozwój tego języka

4 4 Standardy języka SQL Krótka historia standardów języka SQL : 1986: pierwszy standard SQL (SQL-86), 1989: następny standard SQL (SQL-89), 1992: wzbogacona wersja standardu (SQL-92 lub SQL 2), 1999: standardu rozszerzonego o pewne cechy obiektowości (SQL 3) 2003: Kolejne rozszerzenie standardu (m.in. włączenie do standardu języka XML) - SQL : Niewielkie rozszerzenie standardu 2008 : Kolejne niewielkie rozszerzenie standardu

5 5 Standardy języka SQL Opracowywaniem i publikowanie standardów SQL zajmują się organizacje : ISO (ang. International Organization for Standarization) ANSI (ang. American National Standards Institute). Standard języka to wytyczne dla producentów Systemów Zarządzania Bazami Danych Pomimo istnienia standardów jezyka SQL – rózne implementacje różnia się od siebie (nieznacznie)

6 Plan prezentacji 6 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

7 7 Cechy języka SQL SQL jest językiem IV generacji … i co z tego że IV generacji SQL jest językiem deklaratywnym … ????????? W języku SQL deklarujemy co chcemy osiągnąć – bez określania jak to należy wykonać

8 8 Cechy języka SQL Język SQL dzielimy na trzy podstawowe części: Język Definiowania Danych – DDL (ang. Data Definition Language Język Manipulacji Danymi – DML (ang. Data Manipulation Language Język Kontroli Danych – DCL (ang. Data Control Language)

9 9 Cechy języka SQL Język Definiowania Danych – DDL (ang. Data Definition Language Polecenia : CREATE – definiowanie obiektów w bazie danych ALTER - modyfikowanie obiektów w bazie danych DROP - usuwanie obiektów z bazy danych

10 10 Cechy języka SQL Przykład polecenia DDL : CREATE TABLE Uczniowie ( IdUcznia int IDENTITY(1,1) NOT NULL, Nazwisko varchar(50) NOT NULL, Imie varchar(50) NOT NULL, DataUrodzenia date NOT NULL, CzyChlopak bit NOT NULL, Pesel varchar(11) NULL, CONSTRAINT PK_uczniowie PRIMARY KEY CLUSTERED (IdUcznia ASC) )

11 11 Cechy języka SQL Język Manipulacji Danymi – DML (ang. Data Manipulation Language Polecenia : INSERT– wstawianie do tabeli nowych wierszy UPDATE - modyfikowanie wierszy w tabeli DELETE - usuwanie wierszy z tabeli MERGE - zbiorcze modyfikowanie tabeli SELECT – pobieranie danych z tabel (zapytania)

12 12 Cechy języka SQL Przykład polecenia DML : INSERT INTO Uczniowie (Nazwisko, Imie, DataUrodzenia, CzyChlopak, Pesel) VALUES(Kot, Jan, ,true, ) SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE CzyChlopak=true ORDER BY nazwisko

13 13 Cechy języka SQL Język Kontroli Danych – DCL (ang. Data Control Language) Polecenia : GRANT– przydzielenie prawa do danych REVOKE – pozbawienie prawa do danych DENY - bezwarunkowe pozbawienie prawa do danych

14 14 Cechy języka SQL Praca z wykorzystaniem SQL może być realizowana na kilka sposobów : poprzez interaktywne zadawanie pytań do bazy (monitor), budowanie skryptów (zbioru wsadowo wykonywanych zapytań w SQL), osadzanie kodu (pojedynczych zapytań i całych procedur) SQL w innych językach programowania (na poziomie aplikacji), procedur składowanych (na poziome bazy danych).

15 Plan prezentacji 15 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

16 Przykładowa baza danych 16

17 Przykładowa baza danych Pisanie zapytań w języku SQL wymaga dobrej znajomości bazy danych do której te zapytania się odnoszą 17

18 Plan prezentacji 18 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

19 Podstawowe operacje realizowane na modelu relacyjnym 19 Realizacja zapytań opiera się na trzech podstawowych operacjach wykonywanych na modelu relacyjnym: Operacja projekcji (zwana także rzutowaniem) Operacja selekcji Operacja łączenia

20 Podstawowe operacje realizowane na modelu relacyjnym 20 Operacja projekcji Tabela wyjściowa Wykonanie operacji projekcji Tabela wynikowa po operacji projekcji

21 Podstawowe operacje realizowane na modelu relacyjnym 21 Operacja selekcji Tabela wyjściowa Wykonanie operacji selekcji Tabela wynikowa Warunek selekcji Idklasy=2

22 Podstawowe operacje realizowane na modelu relacyjnym 22 Operacja łączenia Wykonanie operacji łączenia Tabela wyjściowa Tabela dołączania Tabela wynikowa

23 Podstawowe operacje realizowane na modelu relacyjnym 23 Przedstawione operacje wykonywane na modelu relacyjnym są podstawa realizacji zapytań

24 Plan prezentacji 24 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

25 Polecenie SELECT 25 SELECT [TOP n] lista_kolumn FROM lista_tabel WHERE warunki_selekcji GROUP BY lista_kolumn_grupowania HAVING warunek_selekcji ORDER BY lista_kolumn_porzadkowania

26 Polecenie SELECT- zapytania proste 26 SELECT * FROM Uczniowie Określona została, w opcji FROM, tabela z której pobieramy dane a znaczek * powoduje dostarczenie do wyniku zapytania wszystkich dostępnych w tabeli kolumn Przykładowy wynik zapytania

27 Realizacja operacji projekcji 27 SELECT Nazwisko, Imie, Pesel, CzyChlopak FROM Uczniowie Określona została, w opcji FROM, tabela z której pobieramy dane i wymieniono liste kolumn, które maja się pojawić w wyniku Przykładowy wynik zapytania

28 Realizacja operacji projekcji i selekcji 28 SELECT Nazwisko, Imie, Pesel, CzyChlopak FROM Uczniowie WHERE CzyChlopak=1 W klauzuli WHERE dodano warunek selekcji Przykładowy wynik zapytania

29 Porządkowanie wyniku zapytania 29 SELECT Nazwisko, Imie, Pesel, Idklasy FROM Uczniowie WHERE Idklasy=1 OR Idklasy=2 ORDER BY Idklasy ASC, Nazwisko DESC Dodano klauzule ORDER BY – realizującą porządkowanie wyniku zapytania (opcja ASC – rosnąco, DESC – malejąco) Przykładowy wynik zapytania

30 Przekształcanie danych 30 SELECT Nazwisko, Imie, Pesel, CASE CzyChlopak WHEN 1 THEN Mężczyzna ELSE Kobieta END as Płeć FROM Uczniowie WHERE Idklasy=2 Kolumna o nazwie Płeć powstała w wyniku przekształcenia wartości zapisanych w tabeli Przykładowy wynik zapytania

31 Plan prezentacji 31 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

32 32 Normalizacja – podstawa projektowania Idfaktury NumerData_wNettoVatFirmaNipUlicaMiasto 1234/ Wedel Nowa 3Warszawa 243/ Wedel Nowa 3Warszawa 301/ Złotex Miła 7Sopot / Koral Dobra 1Opole 534w/ Wedel Nowa 3Warszawa 6987/ Złotex Miła 7Sopot Złotex Miła 7Sopot Faktury I co tutaj nie gra Redundancja!!!!!!!!!!!!!!

33 33 Normalizacja – podstawa projektowania IdfakturyNumerData_wNettoVat 1234/ / / / w/ / Faktury FirmaNipUlicaMiasto Wedel Nowa 3Warszawa Złotex Miła 7Sopot Koral Dobra 1Opole Firmy IdFirmy Idfirmy Wedel Nowa 3Warszawa 1Wedel Nowa 3Warszawa 1Wedel Nowa 3Warszawa 2Złotex Miła 7Sopot 3Koral DobraWarszawa 2Złotex Miła 7Sopot 2Złotex Miła 7Sopot Klucz obcy

34 Operacja łączenia 34 SELECT Uczniowie.*, Klasy.* FROM Uczniowie JOIN Klasy ON Uczniowie.Idklasy=Klasy.Idklasy Do wiersza opisującego ucznia został dołaczony odpowiedni wiersz z tabeli klasy Przykładowy wynik zapytania

35 Operacja łączenia 35 SELECT Uczniowie.Nazwisko, Uczniowie.Imie, CASE CzyChlopak WHEN 1 THEN Mężczyzna ELSE Kobieta END as Płeć, Klasy.Nazwa, Klasy.RokSzkolny FROM Uczniowie JOIN Klasy ON Uczniowie.Idklasy=Klasy.Idklasy WHERE YEAR(Uczniowie.DataUrodzenia)=1992 ORDER BY Płeć, Nazwisko DESC Zapytanie wykonujące operacje projekcji, selekcji, łączenia, przekształca dane i porządkuje wynik zapytania Przykładowy wynik zapytania

36 Rozwiązanie problemu Chcemy napisać zapytanie, które przygotuje wykaz uczniów (nazwisko i imię) oraz dane nauczyciela (nazwisko i imię oraz stopień zawodowy), który wystawił ocenę i datę wystawienia oceny tym uczniom, którzy w roku 2009 otrzymali z fizyki ocenę 5, wynik uporządkować malejąco według daty wystawienia oceny. 36

37 Rozwiązanie problemu SELECT Uczniowie.Nazwisko+ +Uczniowie.Imie AS Uczen, Nauczyciele.Nazwisko+ Nauczyciele.Imie AS Nauczyciel, Oceny.DataWystawienia, Oceny.Ocena FROM Uczniowie JOIN Oceny ON Uczniowie.Iducznia=Oceny.IdUcznia JOIN Nauczyciele ON Nauczyciele.IdNauczyciela=Oceny.IdNauczyciela JOIN Przedmioty ON Oceny.Idprzedmiotu=Przedmioty.Idprzedmiotu WHERE YEAR(DataWystawienia) =2009 AND Ocena=5 AND Przedmioty.Nazwa=Fizyka ORDER BY DataWystawienia DESC 37

38 Rozwiązanie problemu 38 Przykładowy wynik zapytania

39 Złączenie zewnętrzne 39 Do tej pory, domyślnie, realizowaliśmy tzw. złączenie wewnętrzne – czyli w wyniku zapytania pojawiały się tylko te wiersze dla których spełniony był warunek złączenia SQL umożliwia wykonanie złączenia zewnętrznego – czyli umożliwia dołączenie do wyniku zapytania także te wiersze dla których warunek złączenia nie jest spełniony Złączenie zewnętrzne omówimy na przykładzie

40 Złączenie zewnętrzne 40 SELECT Uczniowie.Nazwisko, Uczniowie.Imie, Oceny.DataWystawienia, Ocena FROM Uczniowie LEFT OUTER JOIN Oceny ON Uczniowie.iducznia=Oceny.Iducznia AND Oceny.Ocena=2 AND YEAR(DataWystawienia)=2009 AND MONTH(DataWystawienia)=2 Przygotujemy zapytanie w którym będą wszyscy uczniowie wraz z informacja kiedy otrzymali w lutym roku 2009 ocenę mierną

41 Złączenie zewnętrzne 41 Przykładowy wynik zapytania

42 Plan prezentacji 42 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

43 Funkcje agregujące 43 Zapytania SQL mogą być także wykorzystane do wykonywania obliczeń na podstawie danych zawartych w tabelach. Do tego celu służą funkcje agregujące. Język SQL udostępnia pięć podstawowych funkcji agregujących; COUNT – oblicza ilość wierszy otrzymanych w wyniku zapytania, SUM – sumuje zawartość kolumny (lub wyrażenia obliczonego na podstawie danych) dla wszystkich wierszy w wyniku zapytania, AVG – oblicza średnią arytmetyczną zawartości kolumny (lub wyrażenia obliczonego na podstawie danych) dla wszystkich wierszy w wyniku zapytania, MIN – określa wartość minimalną dla kolumny w wyniku zapytania, MAX – określa wartość maksymalną dla kolumny w wyniku zapytania.

44 Funkcje agregujące 44 SELECT COUNT(*) AS IluUczniow FROM Uczniowie SELECT COUNT(*) AS IluUczniow FROM Uczniowie JOIN Klasy ON Uczniowie.idklasy=Klasy.idklasy WHERE Klasy.Nazwa='IIa' Funkcja agregująca użyta w zapytaniu powoduje, ze w wyniku otrzymujemy jeden wiersz z wynikiem działania funkcji agregującej

45 Funkcje agregujące i grupowanie danych 45 SELECT Klasy.Nazwa, COUNT(*) AS IluUczniow FROM Uczniowie JOIN Klasy ON Uczniowie.idklasy=Klasy.idklasy GROUP BY Klasy.Nazwa Wykorzystaliśmy klauzulę GROUP BY w celu rozbicia działania funkcji agregującej dla wierszy zawierających tę sama wartość dla kolumny Klasy.Nazwa

46 Funkcje agregujące i grupowanie danych 46 SELECT Uczniowie.Nazwisko, Uczniowie.Imie, AVG(Oceny.Ocen) as Średnia FROM Uczniowie JOIN Oceny ON Uczniowie.Iducznia=Oceny.IdUcznia JOIN Klasy ON Uczniowie.Idklasy=Klasy.Idklasy WHERE YEAR(Oceny.DataWystawienia)=2009 AND Klasy.Nazwa=IIa GROUP BY Uczniowie.Nazwisko, Uczniowie.Imie ORDER BY Średnia DESC Lista uczniów z klasy IIa oraz ich średnią ocen otrzymanych w roku 2009

47 Funkcje agregujące i grupowanie danych 47 SELECT Uczniowie.Nazwisko, Uczniowie.Imie, AVG(Oceny.Ocen) as Średnia FROM Uczniowie JOIN Oceny ON Uczniowie.Iducznia=Oceny.IdUcznia JOIN Uczniowie.Idklasy=Klasy.Idklasy WHERE YEAR(Oceny.DataWystawienia)=2009 AND Klasy.Nazwa=IIa GROUP BY Uczniowie.Nazwisko, Uczniowie.Imie HAVING AVG(Oceny.Ocena) > 3.00 ORDER BY Średnia Lista uczniów z klasy IIa oraz ich średnią ocen otrzymanych w roku tylko ci uczniowie których srednia przekracza 3.00 Klauzulę HAVING nazywamy opóźnionym warunkiem selekcji

48 Plan prezentacji 48 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

49 Zapytania złożone 49 Polecenie SELECT języka SQL umożliwia zagnieżdżanie zapytań, czyli wykorzystanie zapytania w wewnątrz innego zapytania. Dzięki tej właściwości można za pomocą jednego polecenia wykonywać bardzo złożone operacje na danych. Omówimy to, chcąc przygotować listę uczniów (zawierającą nazwisko i imię ucznia oraz nazwę klasy), którzy w roku 2009 nie otrzymali oceny niedostatecznej z fizyki. Należy zwrócić uwagę na fakt, że chcemy pobrać z bazy dane, które nie są bezpośrednio w niej zapisane, bo jeżeli uczeń nie otrzymał oceny to w bazie danych nie ma żadnego zapisu tego faktu. Rozwiązując ten problem korzystamy z pewnych zależności logicznych.

50 Zapytania złożone 50 Pomyślmy o tym problemie jako o działaniu na następujących zbiorach: A – zbiór wszystkich uczniów, B – zbiór uczniów, którzy otrzymali w roku 2009 ocenę niedostateczną z fizyki, C – poszukiwany zbiór uczniów, którzy w roku 2009 nie otrzymali oceny niedostatecznej z fizyki. Wyrażenie: C = A – B opisuje rozwiązanie naszego problemu, czyli poszukiwany zbiór możemy otrzymać jako różnicę dwóch innych zbiorów.

51 Zapytania złożone 51 SELECT Uczniowie.Nazwisko, Uczniowie.Imie, Klasy.Nazwa, FROM Uczniowie JOIN Klasy ON Uczniowie.idklasy=Klasy.idklasy Zapytanie tworzące zbiór A (SELECT DISTINCT Iducznia FROM Oceny JOIN Przedmioty ON Oceny.Idprzedmiotu=Przedmioty.Idprzedmiotu WHERE Przedmioty.Nazwa=Fizyka AND YEAR(Oceny.DataWystawienia)=2009 AND Oceny.Ocena=2) Zapytanie tworzące zbiór B WHERE Iducznia NOT IN Warunek różnicy zbiorów

52 52 Pokazaliśmy jeden przykład zapytania złożonego, pokazujący dodatkowe możliwości, jakimi dysponujemy przy pisaniu zapytań do baz danych z wykorzystaniem języka SQL. Trudno wymienić wszystkie sytuacje, w których można wykorzystywać podzapytania ale jest jedna zasada ogólna: Podzapytanie może być wykorzystane wszędzie tam, gdzie ma sens wynik tego podzapytania Zapytania złożone

53 Plan prezentacji 53 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje na modelu relacyjnym 5.Polecenie SELECT – zapytania proste 6.Polecenie SELECT – łączenie tabel 7.Polecenie SELECT – wykorzystanie funkcji agregujących 8.Polecenie SELECT – zapytania złożone 9.Polecenie SELECT – co jeszcze potrafię?

54 Co jeszcze potrafię?? 54 SELECT Klasy.Nazwa, Klasy.RokSzkolny FROM Klasy FOR XML AUTO,ROOT('ListaKlas'),ELEMENTS Tworzenie wyniku zapytania w języku XML Ia 2008/2009 IIa 2008/2009 Ib 2008/2009 IIb 2008/2009

55 Co jeszcze potrafię?? 55 Operacje na zbiorach danych z wykorzystaniem operatorów UNION, EXCEPT i INTERSECT SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE idklasy=1 UNION SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE idklasy=2

56 Co jeszcze potrafię?? 56 Zapytanie, które przygotuje listę uczniów z klasy o id klasy=1 za wyjątkiem tych, którzy urodzili się w marcu SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE idklasy=1 EXCEPT SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE MONTH(DataUrodzenia)=3

57 Co jeszcze potrafię?? 57 Zapytanie, które przygotuje listę uczniów urodzonych w marcu, których nazwisko zaczyna się na literę K SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE MONTH(DataUrodzenia)=3 INTERSECT SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE nazwisko LIKE K%

58 Co jeszcze potrafię?? 58 Tabele przestawne SELECT * FROM ( SELECT Przedmioty.Nazwa as Przedmiot, Klasy.Nazwa as Klasa, Oceny.Ocena FROM Klasy Join Uczniowie ON Klasy.idklasy=Uczniowie.idklasy Join Oceny ON Oceny.iducznia=Uczniowie.iducznia Join Przedmioty ON Przedmioty.idprzedmiotu=Oceny.idprzedmiotu ) as A PIVOT (AVG(Ocena) FOR Klasa in ([Ia],[IIa],[IIc])) as B

59 Co jeszcze potrafię?? 59 Tabele przestawne

60 Podsumowanie Przedstawiliśmy podstawowe możliwości języka SQL a w szczególności polecenia SELECT Standard języka SQL ciągle jest rozwijany i wzbogacany o nowe możliwości 60

61 61 Dziękuję za uwagę … a może pytania ????


Pobierz ppt "Język SQL – podstawy zapytań 1. Plan prezentacji 2 1.Krótka historia języka SQL 2.Cechy języka SQL 3.Przykładowa baza danych 4.Podstawy zapytań - operacje."

Podobne prezentacje


Reklamy Google