Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Wstp
Rozdzia 1. Baza danych
5
9
Instalacja
Rozdzia 2. Tabele
Rozdzia 3. Relacje
Rozdzia 4. Kwerendy
27
49
67
Rozdzia 5.
Rozdzia 6.
Rozdzia 7.
Rozdzia 8.
Rozdzia 9.
Dodatek A
Formularze
Raporty
Strony dostpu do danych
Makra
Moduy
Co nowego?
68
83
85
86
88
89
91
93
117
131
139
147
175
Podzielenie zapisanych w bazie danych pomidzy odpowiednie tabele wyeliminowao dane nadmiarowe, ale utrudnio
uytkownikom pobieranie interesujcych ich w danym momencie informacji. Na przykad, aby odczyta nazwisko reysera i tytuy
wyreyserowanych przez niego filmw, trzeba odwoa si do dwch
powizanych ze sob tabel. Rwnie modyfikowanie, wstawianie
i usuwanie danych zostao utrudnione (np. niemoliwe jest usunicie
rekordu z tabeli podrzdnej, jeeli klucz podstawowy tego rekordu
wystpuje cho raz w tabeli nadrzdnej).
Kolejny typ obiektw bazy danych programu Access kwerendy
eliminuje te niedogodnoci, poniewa pozwala na zautomatyzowanie operacji pobierania, modyfikowania i usuwania zapisanych
w tabelach danych, a take na wprowadzanie do tabel nowych informacji. Wszystkie systemy zarzdzania relacyjnymi bazami danych,
w tym Access, wykonuj wyej wymienione operacje za pomoc instrukcji strukturalnego jzyka zapyta (SQL), a kwerendy s wanie
zapisanymi w bazie danych instrukcjami tego jzyka.
W zalenoci od rodzaju wykonywanej przez kwerend operacji, dzieli
si je na:
q kwerendy wybierajce dane (instrukcje SELECT jzyka SQL),
q kwerendy krzyowe (instrukcje SELECT jzyka SQL uzupenione
o charakterystyczn dla SZBD Access funkcj TRANSFORM),
q kwerendy tworzce tabele (instrukcje SELECT INTO jzyka SQL),
68
SQL),
q kwerendy doczajce dane (instrukcje INSERT INTO jzyka SQL),
q kwerendy usuwajce istniejce dane (instrukcje DELETE
jzyka SQL).
4.1
Rozdzia 4. Kwerendy
69
Rysunek 4.1.
Pierwszym
krokiem pracy
kreatora kwerend
jest wybr danych
rdowych
4.2
Wyraenia arytmetyczne
70
Rozdzia 4. Kwerendy
71
72
4.3
Literay
Rozdzia 4. Kwerendy
73
4.4
4.5
Eliminowanie duplikatw
74
Rozdzia 4. Kwerendy
75
W I C Z E N I E
4.6
Sortowanie danych
4.7
SZBD Access umoliwia nie tylko sortowanie zwracanych przez kwerendy danych, ale rwnie ograniczanie wynikw kwerendy do okrelonej w sposb bezwzgldny lub procentowy liczby wierszy.
Aby wywietli tytuy trzech przynoszcych najwiksze zyski filmw:
1. Utwrz now kwerend w widoku projektu.
2. Jako tabel rdow wybierz tabel Film.
1
76
drug Zysk.
4. Rozwi pole Sortuj: kolumny Zysk i wybierz z listy pozycj
Malejco.
5. W znajdujcym si na pasku narzdzi Projekt kwerendy polu
kombi Najwysze wartoci wpisz 3 (rysunek 4.8).
4.8
Rozdzia 4. Kwerendy
77
4.9
78
wyglda nastpujco:
SELECT Film.Tytul
FROM Film
WHERE (((Film.Cena) Between 5 And 50));
4.10
Cena.
Rozdzia 4. Kwerendy
79
4.11
Potrafimy ju nie tylko wybiera kolumny, ale rwnie wiersze zawierajce dane zwracane przez kwerendy. Wiemy rwnie, jak zwraca
wyliczone na podstawie innych wartoci dane i je porzdkowa. Kolejnym zadaniem jest wybieranie danych zapisanych w poczonych ze
sob tabelach.
Aby wywietli nazwiska reyserw i tytuy ich filmw:
1. Utwrz now kwerend za pomoc kreatora.
2. Z tabeli Film wybierz kolumn Tytul, z tabeli Rezyser
Nazwisko (rysunek 4.10).
Rysunek 4.10.
Pobieranie
danych
zapisanych
w poczonych
tabelach
80
4.12
Rozdzia 4. Kwerendy
81
W I C Z E N I E
4.13
82
wyglda nastpujco:
SELECT Sum(Film.Zysk) AS SumaORZysk
FROM Film;
4.14
Rozdzia 4. Kwerendy
83
wyglda nastpujco:
SELECT Gatunek.Nazwa, Count(Film.IdFilmu) AS PoliczORIdFilmu
FROM Gatunek INNER JOIN Film ON Gatunek.IdGatunku = Film.IdGatunku
GROUP BY Gatunek.Nazwa;
4.15
Kwerenda krzyowa
Najatwiej przekona si o zaletach kwerend krzyowych, porwnujc te same dane zwrcone przez kwerend wybierajc i kwerend
krzyow.
Aby wywietli liczb filmw poszczeglnych reyserw, pogrupowan
dodatkowo wedug ich gatunkw:
1. Utwrz now kwerend w widoku projektu.
2. Jako tabele rdowe wybierz tabele: Film, Gatunek i Rezyser.
3. Kliknij znajdujc si na pasku narzdzi Projekt kwerendy ikon
Sumy.
4. Na pierwsz kolumn kwerendy wybierz kolumn Nazwisko
tabeli Rezyser, na drug kolumn Nazwa tabeli Gatunek.
W obu przypadkach w wierszu Podsumowanie: pozostaw
domyln warto (Grupuj wedug).
84
nastpujco:
TRANSFORM Count(Film.IdFilmu) AS PoliczORIdFilmu
SELECT Rezyser.Nazwisko
FROM Rezyser INNER JOIN (Gatunek INNER JOIN Film ON Gatunek.IdGatunku
= Film.IdGatunku) ON Rezyser.IdRezysera = Film.IdRezysera
GROUP BY Rezyser.Nazwisko
PIVOT Gatunek.Nazwa;
Rozdzia 4. Kwerendy
85
W SQL-u, jako jzyku strukturalnym, nie mona3 posugiwa si zmiennymi zamiast tego mamy do dyspozycji podzapytania. Podzapytanie
to instrukcja SELECT umieszczona w ramach innej instrukcji SELECT
na przykad, w klauzuli WHERE lub FROM. Dziki temu, e wynik
wewntrznego zapytania moe by odczytany przez zewntrzn instrukcj SELECT, moemy tworzy m.in. dynamiczne kryteria wyboru
poniej utworzymy kwerend ktra zwrci nazwiska tych osb,
ktre maj wypoyczonych wicej ni 10% wszystkich naszych filmw
(a wic kryterium wyboru bdzie dynamiczne, jeeli na stanie mamy
50 filmw, wybrane zostan osoby ktre poyczyy co najmniej 5 filmw,
jeeli na stanie bdziemy mie 100 filmw te, ktre poyczyy wicej
ni 10 itd.).
1. Utwrz now kwerend w widoku projektu.
2. W pierwszej kolejnoci musimy policzy wszystkie filmy:
a) Na tabel bazow wybierz tabel Film.
b) Liczb wszystkich filmw zwrci nam instrukcja SELECT
Count ([IdFilmu]) FROM film eby otrzyma 10% tej liczby,
w pierwszym polu wpisz : Wyr1: Policz([film].[IdFilmu])/10.
3. Uruchom kwerend ona bdzie wewntrzn instrukcj SELECT.
4. Przecz si do widoku SQL i wytnij (naciskajc kombinacj
Ctrl+X) utworzone w drugim punkcie zapytanie.
5. Pozostaje nam dodanie zewntrznej instrukcji SELECT zwracajcej
nazwiska tych osb, ktre wypoyczyy wicej filmw,
ni otrzymamy w wyniku wewntrznego zapytania:
a) Przecz si do widoku projektu.
b) Dodaj tabele Osoba i Film.
c) Do pierwszej (teraz pustej) kolumny przecignij kolumn
Nazwisko z tabeli Osoba.
d) Kliknij przycisk Suma i upewnij si, e w kolumnie Nazwisko
pojawi si wpis Grupuj wedug.
3
86
Czasami, najczciej do celw diagnostycznych lub na potrzeby wykonania kopii wybranych danych, programowo tworzy si nowe tabele
bazy danych, zawierajce kopie danych zapisanych w innych tabelach.
Zadanie to realizuj kwerendy tworzce tabele.
Rozdzia 4. Kwerendy
87
W I C Z E N I E
4.16
Tworzymy tabele
88
4.17
Modyfikujemy dane
Rozdzia 4. Kwerendy
89
Kwerenda doczajca suy do dodawania grupy rekordw, pochodzcych z jednej lub kilku tabel, na kocu innej (lub innych) tabeli.
W praktyce kwerendy tego typu wykorzystywane s podczas importowania danych ze rde zewntrznych lub w celu dopisania do
wybranej tabeli rekordw speniajcych podane kryteria, np. danych
klientw, ktrych zaduenie przekroczyo okrelony prg. Podstawowa
rnica pomidzy kwerendami tego typu a kwerendami tworzcymi
tabele polega na tym, e kwerendy aktualizujce dopisuj dane do
istniejcej tabeli, nie tworzc jej, a wic tabela docelowa musi zosta
wczeniej utworzona. Natomiast prba kilkukrotnego uruchomienia
kwerendy tworzcej tabele za kadym razem spowoduje usunicie
i ponowne utworzenie tabeli o podanej nazwie.
W I C Z E N I E
4.18
Dodajemy dane
90
8.
9.
10.
Rozdzia 4. Kwerendy
91
4.19
Usuwamy dane
92