Professional Documents
Culture Documents
1
Plan prezentacji
2
Krtka historia jzyka SQL kroki milowe
3
Standardy jzyka SQL
Krtka historia standardw jzyka SQL :
4
Standardy jzyka SQL
Opracowywaniem i publikowanie standardw SQL zajmuj si
organizacje :
5
Plan prezentacji
6
Cechy jzyka SQL
SQL jest jzykiem IV generacji
i co z tego e IV generacji
SQL jest jzykiem deklaratywnym
?????????
W jzyku SQL deklarujemy co chcemy osign bez
okrelania jak to naley wykona
7
Cechy jzyka SQL
Jzyk SQL dzielimy na trzy podstawowe czci:
8
Cechy jzyka SQL
Jzyk Definiowania Danych DDL (ang. Data Definition
Language
Polecenia :
9
Cechy jzyka SQL
Przykad polecenia DDL :
10
Cechy jzyka SQL
Jzyk Manipulacji Danymi DML (ang. Data Manipulation
Language
Polecenia :
INSERT wstawianie do tabeli nowych wierszy
11
Cechy jzyka SQL
Przykad polecenia DML :
12
Cechy jzyka SQL
Jzyk Kontroli Danych DCL (ang. Data Control Language)
Polecenia :
13
Cechy jzyka SQL
Praca z wykorzystaniem SQL moe by realizowana na
kilka sposobw :
14
Plan prezentacji
15
Przykadowa baza danych
16
Przykadowa baza danych
Pisanie zapyta w jzyku SQL wymaga
dobrej znajomoci bazy danych do
ktrej te zapytania si odnosz
17
Plan prezentacji
18
Podstawowe operacje realizowane
na modelu relacyjnym
Operacja selekcji
Operacja czenia
19
Podstawowe operacje realizowane na modelu
relacyjnym
Operacja projekcji
20
Podstawowe operacje realizowane na modelu
relacyjnym
Operacja selekcji
Warunek selekcji
Idklasy=2
Tabela wynikowa
Tabela
wyjciowa
21
Podstawowe operacje realizowane na modelu
relacyjnym
Operacja czenia
Tabela
Tabela
wynikowa
doczania
22
Podstawowe operacje realizowane
na modelu relacyjnym
23
Plan prezentacji
24
Polecenie SELECT
25
Polecenie SELECT- zapytania
proste
SELECT * Przykadowy wynik
FROM Uczniowie zapytania
Okrelona zostaa , w opcji FROM, tabela z ktrej
pobieramy dane a znaczek * powoduje dostarczenie do
wyniku zapytania wszystkich dostpnych w tabeli kolumn
26
Realizacja operacji projekcji
SELECT Nazwisko, Imie, Pesel, CzyChlopak
FROM Uczniowie
Przykadowy wynik
zapytania
Okrelona zostaa , w opcji FROM, tabela z ktrej
pobieramy dane i wymieniono liste kolumn, ktre maja si
pojawi w wyniku
27
Realizacja operacji projekcji i
selekcji
SELECT Nazwisko, Imie, Pesel, CzyChlopak
FROM Uczniowie
WHERE CzyChlopak=1 Przykadowy wynik
zapytania
28
Porzdkowanie wyniku zapytania
SELECT Nazwisko, Imie, Pesel, Idklasy
FROM Uczniowie Przykadowy wynik
WHERE Idklasy=1 OR Idklasy=2 zapytania
ORDER BY Idklasy ASC, Nazwisko DESC
29
Przeksztacanie danych
SELECT Nazwisko, Imie, Pesel,
CASE CzyChlopak Przykadowy wynik
WHEN 1 THEN Mczyzna zapytania
ELSE Kobieta
END as Pe
FROM Uczniowie
WHERE Idklasy=2
Kolumna o nazwie Pe powstaa w wyniku przeksztacenia
wartoci zapisanych w tabeli
30
Plan prezentacji
31
Normalizacja podstawa projektowania
Faktury
Idfaktury Numer Data_w Netto Vat Firma Nip Ulica Miasto
1 234/08 11.08.08 345.67 71.22 Wedel 1234652789 Nowa 3 Warszawa
Firmy
IdFirmy Firma Nip Ulica Miasto
1 Wedel 1234652789 Nowa 3 Warszawa
33
Operacja czenia
SELECT Uczniowie.* , Klasy.*
FROM Uczniowie JOIN Klasy Przykadowy wynik
ON Uczniowie.Idklasy=Klasy.Idklasy zapytania
34
Operacja czenia
SELECT Uczniowie.Nazwisko, Uczniowie.Imie,
CASE CzyChlopak
WHEN 1 THEN Mczyzna
ELSE Kobieta Przykadowy wynik
END as Pe, zapytania
Klasy.Nazwa, Klasy.RokSzkolny
FROM Uczniowie JOIN Klasy ON Uczniowie.Idklasy=Klasy.Idklasy
WHERE YEAR(Uczniowie.DataUrodzenia)=1992
ORDER BY Pe, Nazwisko DESC
35
Rozwizanie problemu
Chcemy napisa zapytanie, ktre przygotuje
wykaz uczniw (nazwisko i imi) oraz dane
nauczyciela (nazwisko i imi oraz stopie
zawodowy), ktry wystawi ocen i dat
wystawienia oceny tym uczniom, ktrzy w
roku 2009 otrzymali z fizyki ocen 5, wynik
uporzdkowa malejco wedug daty
wystawienia oceny.
36
Rozwizanie 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
Rozwizanie problemu
Przykadowy wynik
zapytania
38
Zczenie zewntrzne
Do tej pory, domylnie, realizowalimy tzw. zczenie wewntrzne
czyli w wyniku zapytania pojawiay si tylko te wiersze dla
ktrych speniony by warunek zczenia
39
Zczenie zewntrzne
Przygotujemy zapytanie w ktrym bd wszyscy
uczniowie wraz z informacja kiedy otrzymali w lutym
roku 2009 ocen miern
41
Plan prezentacji
42
Funkcje agregujce
Zapytania SQL mog by take wykorzystane do wykonywania oblicze
na podstawie danych zawartych w tabelach. Do tego celu su funkcje
agregujce.
43
Funkcje agregujce
SELECT COUNT(*) AS IluUczniow
FROM Uczniowie
44
Funkcje agregujce i grupowanie danych
SELECT Klasy.Nazwa,
COUNT(*) AS IluUczniow
FROM Uczniowie JOIN Klasy ON Uczniowie.idklasy=Klasy.idklasy
GROUP BY Klasy.Nazwa
45
Funkcje agregujce i grupowanie danych
Lista uczniw z klasy IIa oraz ich redni ocen otrzymanych w roku 2009
46
Funkcje agregujce i grupowanie danych
Lista uczniw z klasy IIa oraz ich redni ocen otrzymanych w roku 2009
- tylko ci uczniowie ktrych srednia przekracza 3.00
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
47
Plan prezentacji
48
Zapytania zoone
Polecenie SELECT jzyka SQL umoliwia zagniedanie zapyta, czyli
wykorzystanie zapytania w wewntrz innego zapytania.
Naley zwrci uwag na fakt, e chcemy pobra z bazy dane, ktre nie s
bezporednio w niej zapisane, bo jeeli ucze nie otrzyma oceny to w
bazie danych nie ma adnego zapisu tego faktu.
49
Zapytania zoone
Pomylmy o tym problemie jako o dziaaniu na nastpujcych
zbiorach:
53
Co jeszcze potrafi??
Tworzenie wyniku zapytania w jzyku XML
SELECT Klasy.Nazwa, Klasy.RokSzkolny
<ListaKlas>
FROM Klasy
<Klasy>
<Nazwa>Ia</Nazwa>
FOR XML AUTO,ROOT('ListaKlas'),ELEMENTS
<RokSzkolny>2008/2009</RokSzkolny>
</Klasy>
<Klasy>
<Nazwa>IIa</Nazwa>
<RokSzkolny>2008/2009</RokSzkolny>
</Klasy>
<Klasy>
<Nazwa>Ib</Nazwa>
<RokSzkolny>2008/2009</RokSzkolny>
</Klasy>
<Klasy>
<Nazwa>IIb</Nazwa>
<RokSzkolny>2008/2009</RokSzkolny>
</Klasy>
</ListaKlas>
54
Co jeszcze potrafi??
Operacje na zbiorach danych z wykorzystaniem operatorw
UNION, EXCEPT i INTERSECT
55
Co jeszcze potrafi??
Zapytanie, ktre przygotuje list uczniw z klasy o id klasy=1 za
wyjtkiem tych, ktrzy urodzili si w marcu
56
Co jeszcze potrafi??
Zapytanie, ktre przygotuje list uczniw urodzonych w marcu,
ktrych nazwisko zaczyna si na liter K
57
Co jeszcze potrafi??
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
58
Co jeszcze potrafi??
Tabele przestawne
59
Podsumowanie
Przedstawilimy podstawowe moliwoci
jzyka SQL a w szczeglnoci polecenia SELECT
60
Dzikuj za uwag
61