You are on page 1of 61

Jzyk SQL podstawy zapyta

1
Plan prezentacji

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

2
Krtka historia jzyka SQL kroki milowe

1970 - publikacj E.F.Codda pt. A Relational Model of Data for


Large Shared Data Banks. ( pol. Relacyjny model danych dla
duych wspdzielonych bankw danych).

1974- w IBM powsta jzyk SEQUEL (ang. Structured English


Query Language Stukturalny Angielski Jzyk Zapyta)

1979 - firma ORACLE wypucia na rynek pierwszy


komercyjny system zarzdzania bazami danych oparty
o SQL.

do dnia dzisiejszego trwa burzliwy rozwj tego jzyka

3
Standardy jzyka SQL
Krtka historia standardw jzyka SQL :

1986: pierwszy standard SQL (SQL-86),


1989: nastpny standard SQL (SQL-89),
1992: wzbogacona wersja standardu (SQL-92 lub SQL 2),
1999: standardu rozszerzonego o pewne cechy obiektowoci
(SQL 3)
2003: Kolejne rozszerzenie standardu (m.in. wczenie do
standardu jzyka XML) - SQL 4
2006 : Niewielkie rozszerzenie standardu
2008 : Kolejne niewielkie rozszerzenie standardu

4
Standardy jzyka SQL
Opracowywaniem i publikowanie standardw SQL zajmuj si
organizacje :

ISO (ang. International Organization for Standarization)

ANSI (ang. American National Standards Institute).

Standard jzyka to wytyczne dla producentw Systemw


Zarzdzania Bazami Danych

Pomimo istnienia standardw jezyka SQL rzne


implementacje rnia si od siebie (nieznacznie)

5
Plan prezentacji

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

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:

Jzyk Definiowania Danych DDL (ang. Data Definition


Language

Jzyk Manipulacji Danymi DML (ang. Data Manipulation


Language

Jzyk Kontroli Danych DCL (ang. Data Control Language)

8
Cechy jzyka SQL
Jzyk Definiowania Danych DDL (ang. Data Definition
Language

Polecenia :

CREATE definiowanie obiektw w bazie danych

ALTER - modyfikowanie obiektw w bazie danych

DROP - usuwanie obiektw z bazy danych

9
Cechy jzyka SQL
Przykad 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)
)

10
Cechy jzyka SQL
Jzyk 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)

11
Cechy jzyka SQL
Przykad polecenia DML :

INSERT INTO Uczniowie (Nazwisko, Imie, DataUrodzenia,


CzyChlopak, Pesel)
VALUES(Kot, Jan, 1991-07-12,true, 91071276538)

SELECT Nazwisko, Imie, Pesel


FROM Uczniowie
WHERE CzyChlopak=true
ORDER BY nazwisko

12
Cechy jzyka SQL
Jzyk Kontroli Danych DCL (ang. Data Control Language)

Polecenia :

GRANT przydzielenie prawa do danych

REVOKE pozbawienie prawa do danych

DENY - bezwarunkowe pozbawienie prawa do danych

13
Cechy jzyka SQL
Praca z wykorzystaniem SQL moe by realizowana na
kilka sposobw :

poprzez interaktywne zadawanie pyta do bazy (monitor),

budowanie skryptw (zbioru wsadowo wykonywanych


zapyta w SQL),

osadzanie kodu (pojedynczych zapyta i caych procedur)


SQL w innych jzykach programowania (na poziomie
aplikacji),

procedur skadowanych (na poziome bazy danych).

14
Plan prezentacji

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

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

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

18
Podstawowe operacje realizowane
na modelu relacyjnym

Realizacja zapyta opiera si na trzech podstawowych


operacjach wykonywanych na modelu relacyjnym:

Operacja projekcji (zwana take rzutowaniem)

Operacja selekcji

Operacja czenia

19
Podstawowe operacje realizowane na modelu
relacyjnym
Operacja projekcji

Tabela wynikowa po operacji


projekcji
Tabela
wyjciowa

Wykonanie operacji projekcji

20
Podstawowe operacje realizowane na modelu
relacyjnym
Operacja selekcji
Warunek selekcji
Idklasy=2

Tabela wynikowa

Tabela
wyjciowa

Wykonanie operacji selekcji

21
Podstawowe operacje realizowane na modelu
relacyjnym
Operacja czenia

Wykonanie operacji czenia Tabela


wyjciowa

Tabela
Tabela
wynikowa
doczania

22
Podstawowe operacje realizowane
na modelu relacyjnym

Przedstawione operacje wykonywane


na modelu relacyjnym s podstawa
realizacji zapyta

23
Plan prezentacji

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

24
Polecenie SELECT

SELECT [TOP n] lista_kolumn


FROM lista_tabel
WHERE warunki_selekcji
GROUP BY lista_kolumn_grupowania
HAVING warunek_selekcji
ORDER BY lista_kolumn_porzadkowania

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

W klauzuli WHERE dodano warunek selekcji

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

Dodano klauzule ORDER BY realizujc porzdkowanie


wyniku zapytania (opcja ASC rosnco, DESC malejco)

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

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

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

2 43/08 12.08.08 763.00 167.00 Wedel 1234652789 Nowa 3 Warszawa

3 01/2008 15.08.08 322.00 68.65 Zotex 6573298722 Mia 7 Sopot

4 11.08/1 22.09.08 100.00 22.00 Koral 5582998721 Dobra 1 Opole

5 34w/08 28.09.08 882.00 187.00 Wedel 1234652789 Nowa 3 Warszawa

6 987/08 02.10.08 250.55 58.12 Zotex 6573298722 Mia 7 Sopot

7 002.08 11.10.08 891.00 201.15 Zotex 6573298722 Mia 7 Sopot

I co tutaj nie gra 


Redundancja!!!!!!!!!!!!!!
32
Normalizacja podstawa projektowania

Faktury Klucz obcy


Idfaktury Numer Data_w Netto Vat Idfirmy
1 1 Wedel 1234652789 Nowa 3 Warszawa
1 234/08 11.08.08 345.67 71.22
2 43/08 12.08.08 763.00 167.00 1 1 Wedel 1234652789 Nowa 3 Warszawa

3 01/2008 15.08.08 322.00 68.65 2 2 Zotex 6573298722 Mia 7 Sopot


3
4 11.08/1 22.09.08 100.00 22.00 3 Koral 5582998721 Dobra Warszawa

5 34w/08 28.09.08 882.00 187.00 1 1 Wedel 1234652789 Nowa 3 Warszawa

6 987/08 02.10.08 250.55 58.12 2 2 Zotex 6573298722 Mia 7 Sopot

7 002.08 11.10.08 891.00 201.15 2 2 Zotex 6573298722 Mia 7 Sopot

Firmy
IdFirmy Firma Nip Ulica Miasto
1 Wedel 1234652789 Nowa 3 Warszawa

2 Zotex 6573298722 Mia 7 Sopot

3 Koral 5582998721 Dobra 1 Opole

33
Operacja czenia
SELECT Uczniowie.* , Klasy.*
FROM Uczniowie JOIN Klasy Przykadowy wynik
ON Uczniowie.Idklasy=Klasy.Idklasy zapytania

Do wiersza opisujcego ucznia zosta doaczony


odpowiedni wiersz z tabeli klasy

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

Zapytanie wykonujce operacje projekcji, selekcji, czenia,


przeksztaca dane i porzdkuje wynik zapytania

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

SQL umoliwia wykonanie zczenia zewntrznego czyli


umoliwia doczenie do wyniku zapytania take te wiersze dla
ktrych warunek zczenia nie jest speniony

Zczenie zewntrzne omwimy na przykadzie

39
Zczenie zewntrzne
Przygotujemy zapytanie w ktrym bd wszyscy
uczniowie wraz z informacja kiedy otrzymali w lutym
roku 2009 ocen miern

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
40
Zczenie zewntrzne
Przykadowy wynik
zapytania

41
Plan prezentacji

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

42
Funkcje agregujce
Zapytania SQL mog by take wykorzystane do wykonywania oblicze
na podstawie danych zawartych w tabelach. Do tego celu su funkcje
agregujce.

Jzyk SQL udostpnia pi podstawowych funkcji agregujcych;


COUNT oblicza ilo wierszy otrzymanych w wyniku zapytania,
SUM sumuje zawarto kolumny (lub wyraenia obliczonego na
podstawie danych) dla wszystkich wierszy w wyniku zapytania,
AVG oblicza redni arytmetyczn zawartoci kolumny (lub wyraenia
obliczonego na podstawie danych) dla wszystkich wierszy w wyniku
zapytania,
MIN okrela warto minimaln dla kolumny w wyniku zapytania,
MAX okrela warto maksymaln dla kolumny w wyniku zapytania.

43
Funkcje agregujce
SELECT COUNT(*) AS IluUczniow
FROM Uczniowie

SELECT COUNT(*) AS IluUczniow


FROM Uczniowie JOIN Klasy
ON Uczniowie.idklasy=Klasy.idklasy
WHERE Klasy.Nazwa='IIa'

Funkcja agregujca uyta w zapytaniu powoduje, ze w


wyniku otrzymujemy jeden wiersz z wynikiem dziaania
funkcji agregujcej

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

Wykorzystalimy klauzul GROUP BY w celu rozbicia


dziaania funkcji agregujcej dla wierszy zawierajcych t
sama warto dla kolumny Klasy.Nazwa

45
Funkcje agregujce i grupowanie danych
Lista uczniw z klasy IIa oraz ich redni ocen otrzymanych w roku 2009

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

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

Klauzul HAVING nazywamy opnionym warunkiem selekcji

47
Plan prezentacji

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

48
Zapytania zoone
Polecenie SELECT jzyka SQL umoliwia zagniedanie zapyta, czyli
wykorzystanie zapytania w wewntrz innego zapytania.

Dziki tej waciwoci mona za pomoc jednego polecenia wykonywa


bardzo zoone operacje na danych.

Omwimy to, chcc przygotowa list uczniw (zawierajc nazwisko i


imi ucznia oraz nazw klasy), ktrzy w roku 2009 nie otrzymali oceny
niedostatecznej z fizyki.

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.

Rozwizujc ten problem korzystamy z pewnych zalenoci logicznych.

49
Zapytania zoone
Pomylmy o tym problemie jako o dziaaniu na nastpujcych
zbiorach:

A zbir wszystkich uczniw,

B zbir uczniw, ktrzy otrzymali w roku 2009 ocen


niedostateczn z fizyki,

C poszukiwany zbir uczniw, ktrzy w roku 2009 nie


otrzymali oceny niedostatecznej z fizyki.

Wyraenie: C = A B opisuje rozwizanie naszego problemu,


czyli poszukiwany zbir moemy otrzyma jako rnic dwch
innych zbiorw.
50
Zapytania zoone
Zapytanie tworzce
zbir A
SELECT Uczniowie.Nazwisko, Uczniowie.Imie, Klasy.Nazwa,
FROM Uczniowie JOIN Klasy
ON Uczniowie.idklasy=Klasy.idklasy
Zapytanie tworzce
WHERE Iducznia NOT IN
zbir B
(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)
Warunek rnicy
zbiorw
51
Zapytania zoone

Pokazalimy jeden przykad zapytania zoonego,


pokazujcy dodatkowe moliwoci, jakimi
dysponujemy przy pisaniu zapyta do baz danych z
wykorzystaniem jzyka SQL.

Trudno wymieni wszystkie sytuacje, w ktrych


mona wykorzystywa podzapytania ale jest jedna
zasada oglna:

Podzapytanie moe by wykorzystane wszdzie


tam, gdzie ma sens wynik tego podzapytania
52
Plan prezentacji

1. Krtka historia jzyka SQL


2. Cechy jzyka SQL
3. Przykadowa baza danych
4. Podstawy zapyta - operacje na modelu relacyjnym
5. Polecenie SELECT zapytania proste
6. Polecenie SELECT czenie tabel
7. Polecenie SELECT wykorzystanie funkcji agregujcych
8. Polecenie SELECT zapytania zoone
9. Polecenie SELECT co jeszcze potrafi?

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

SELECT Nazwisko, Imie, Pesel


FROM Uczniowie
WHERE idklasy=1
UNION
SELECT Nazwisko, Imie, Pesel
FROM Uczniowie
WHERE idklasy=2

55
Co jeszcze potrafi??
Zapytanie, ktre przygotuje list uczniw z klasy o id klasy=1 za
wyjtkiem tych, ktrzy urodzili si w marcu

SELECT Nazwisko, Imie, Pesel


FROM Uczniowie
WHERE idklasy=1
EXCEPT
SELECT Nazwisko, Imie, Pesel
FROM Uczniowie
WHERE MONTH(DataUrodzenia)=3

56
Co jeszcze potrafi??
Zapytanie, ktre przygotuje list uczniw urodzonych w marcu,
ktrych 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%

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

Standard jzyka SQL cigle jest rozwijany i


wzbogacany o nowe moliwoci

60
Dzikuj za uwag

a moe pytania ????

61

You might also like