Post on 20-Jan-2016
description
25/08/2001 1
MS Access 2000
Piotr Górczyński
Kwerendy
25/08/2001 2
Spis treści
WstępTworzenie kwerendyEdycja projektu kwerendyOtwieranie kwerendyDefiniowanie warunkówGrupowanieFunkcje agregująceZagnieżdżanie kwerendKwerenda z parametrem
25/08/2001 3
Wstęp
Kwerendy służą do wybierania z tabel informacji spełniających określone warunki
Kwerendy mogą wybierać dane bezpośrednio z tabel lub z innych kwerend
Każda kwerenda ma nazwę
25/08/2001 4
Tworzenie kwerend - krok 1 z 6
W oknie projektu bazy danych w widoku obiektów Kwerendy (Query) pokazane są wszystkie kwerendy w bazie danych. Aby utworzyć nową klikamy dwukrotnie Utwórz kwerendę w widoku projektu (Create query in Design view)
25/08/2001 5
Tworzenie kwerend - krok 2 z 6
Automatycznie otwiera się dodatkowe okno Pokaż tabelę (Show Table), w którym wybieramy tabele/kwerendy, z którego chcemy wybrać informacje. Po zaznaczeniu tabeli/kwerendy naciskamy guzik Dodaj (Add) - spowoduje to pojawienie się tabeli/kwerendy w oknie w tle. Zamykamy okno.
Jeśli pomylimy się lub chcemy usunąć to, co dodaliśmy, można to zrobić później.
Tabele/Kwerendy pojawiają się wraz z relacjami zdefiniowanymi w oknie relacji tabel.
25/08/2001 6
Dodawanie tabel/kwerend - krok 3 z 6
1. Aby zobaczyć tabelę/kwerendę w oknie relacji należy ją dodać. Robimy to wybierając z menu Kwerendy (Query) polecenie Dodaj tabelę (Add table) lub klikając na pasku narzędzi guzik
2. W oknie Pokaż tabelę (Show table) wybieramy tabelę/kwerendę i naciskamy guzik Dodaj (Add)
25/08/2001 7
Usuwanie tabel/kwerend - krok 4 z 6
Aby usunąć tabelę/kwerendę z okna relacji:
1. Wynieramy ją klikając na pasek tytułowy (w środku tabeli jedno z pól zostanie zaznaczone).
2. Naciskamy klawisz Delete.
25/08/2001 8
Dodawanie/usuwanie pól - krok 5 z 6
Aby dodać pole należy:Dwukrotnie kliknąć pole w tabeli/kwerendzie
w oknie relacji - pole pojawi się w oknie selekcji na dole
Przeciągnąć pole z tabeli/kwerendy w oknie relacji do okna selekcji na dole
Wpisać nazwę pola w oknie selekcji Aby usunąć pole należy:
Skasować (wyczyścić) nazwę polaZaznaczyć kolumnę i nacisnąć klawisz Delete
25/08/2001 9
Zapisywanie kwerendy - krok 6 z 6
1. Po wprowadzeniu wszystkich pól wybieramy z menu Plik (File) polecenie Zapisz (Save) lub naciskamy na pasku narzędzi guzik
2. W oknie Zapisz jako (Save As) wpisujemy nazwę tabeli (proponowana jest Table1)
3. Naciskamy guzik OK
25/08/2001 10
Edycja projektu kwerendy
1. Klikamy kwerendę, której budowę chcemy zmienić
2. Klikamy guzik Projekt (Design)
3. W następnych krokach postępujemy tak samo ja podczas tworzenia kwerendy.
25/08/2001 11
Otwieranie kwerendy
W oknie projektu bazy danych w widoku obiektów Kwerendy (Query) pokazane są wszystkie kwerendy w bazie danych. Aby otworzyć kwerendę, należy ją zaznaczyć i nacisnąć guzik Otwórz (Open) lub kliknąć kwerendę dwukrotnie myszą.
25/08/2001 12
Definiowanie warunków
Kryteria wpisujemy w wierszu Kryteria (Criteria)
W kryteriach możemy używać: operatory porównania: >,<,=,<=,>= sprawdzania istnienia wartości w
polu: IS NULL (jest puste) , IS NOT NULL (nie jest puste)
Znaku * zastępującego dowolny ciąg znaków
Przykład po prawej: warunek >100 powoduje, że zostaną wybrane tylko rekordy, których wartość w polu Ilosc jest większa niż 100
25/08/2001 13
Przykłady definiowania warunków
Warunek Opis działania
>100 Rekordy, których pole ma wartość większą niż 100
Is Not Null Rekordy, których pole nie jest puste
"Ala" Rekordy, których pole jest równe "Ala"
"Kow*" Rekordy, których pole jest równe "Kow" i jakikolwiek ciąg znaków np: "Kowalski", "Kowalewski", "Kowal"
25/08/2001 14
Warunek logiczny I (AND)
Warunki wpisane w tym samym wierszu muszą być spełnione wszystkie naraz, czyli łączy je operator logiczny I (AND)
W przykładzie po prawej zapisano warunek, że:pole Ilosc ma być większe niż 100Ipole IDTowaru ma być równe "DELX"
25/08/2001 15
Warunek logiczny LUB (OR)
Warunki wpisane w różnych wierszach muszą być spełnione alternatywnie, czyli łączy je operator logiczny LUB (OR)
W przykładzie po prawej zapisano warunek, że:pole Ilosc ma być większe niż 1000LUBpole Ilosc ma być mniejsze niż 20
25/08/2001 16
Warunek logiczny I (AND) dla jednego pola
Warunek logiczny I (AND) dla jednego pola można zapisać:
W oddzielnych kolumnach dla tego samego pola używając prostych operatorów:
>20<30
W jednej kolumnie używając wyrażeń z operatorami logicznymi
>20 AND <30 W przykładzie powyżej obie definicje są
równoważne
25/08/2001 17
Grupowanie
Grupowanie (inaczej agregowanie) dotyczy zawsze pewnych wybranych pól i polega na pogrupowaniu rekordów o takich samych wartościach wybranych pól
Kwerenda w której jest grupowanie mogą pojawić się tylko:
pola według których odbywa się grupowanie
funkcje agregujące Przykład: dane w tabeli zostały w
kwerendzie pogrupowane według pola Kraj (GROUP BY Kraj). Jak widać wartości puste (NULL) też są uznawane za oddzielną grupę i znajdują się w wyniku kwerendy. Ostatecznie otrzymujemy wszystkie unikalne wartości pola Kraj, które znajdują się w tabeli.
Kraj
Czeska RepublikCzeska RepublikLitwaLitwaLitwaLitwaNiemcyNiemcyNiemcyNiemcyNiemcyNiemcyNiemcyPolskaPolskaPolska
Kraj
Czeska RepublikLitwaNiemcyPolska
GROUP BY Kraj
25/08/2001 18
Przykład
Przykład: dane w tabeli zostały pogrupowane według pola Kraj i WojewodztwoRegion (GROUP BY Kraj, WojewodztwoRegion). W wyniku kwerendy otrzymujemy wszystkie unikalne kombinacje wartości pola Kraj i WojewodztwoRegion, które znajdują się w tabeli.
Wniosek: kwerenda w której jest grupowanie według wszystkich pól tabeli spowoduje wybranie wszystkich unikalnych kombinacji wartości tabeli, czyli – jeśli tabela ma klucz – zostaną wybrane wszystkie rekordy z tabeli.
Kraj WojewodztwoRegionLitwa WilnoNiemcy Detmold-LippeNiemcy BayernLitwa WilnoLitwa WilnoLitwa WilnoNiemcy BayernNiemcy SachsenCzeska Republik OstravaNiemcy NiedersachsenNiemcy NiedersachsenNiemcy BayernCzeska Republik Brno
Kraj WojewodztwoRegionCzeska Republik BrnoCzeska Republik OstravaLitwa WilnoNiemcy BayernNiemcy Detmold-LippeNiemcy NiedersachsenNiemcy Sachsen
GROUP BY Kraj,WojewodztwoRegion
25/08/2001 19
Tworzenie kwerendy z grupowaniem
1. Tworzymy kwerendę i dodajemy pola według których chcemy grupować
2. Naciskamy na pasku narzędzi guzik lub wybieramy z menu Widok (View) polecenie Podsumowanie (Totals)
3. Na dole okna kwerendy pojawia się nowy wiersz Podsumowanie (Totals), w którym dla każdego wybranego pola pojawia się domyślnie wartość Group By.
Aby wyłączyć grupowanie trzeba wykonać punkt 2.
25/08/2001 20
Funkcje agregujące
Funkcje agregujące są to funkcje, których argumentami są wartości jednego wybranego pola ze wszystkich lub z grupy rekordów.
Notacja: nazwa_funkcji(nazwa_pola). Przykład: MIN(Cena) Funkcje agregujące mogą być używane razem z grupowaniem.
Ich argumenty są wtedy ograniczone do rekordów z jednej grupy.
SugerowanaCena20,75 zł19,00 zł18,00 zł27,75 zł34,00 zł23,00 zł32,25 zł15,75 zł21,00 zł33,25 zł17,50 zł27,75 zł18,25 zł16,25 zł35,00 zł
MIN(SugerowanaCena)MinOfSugerowanaCena
15,75 zł
25/08/2001 21
Przykład
Przykład: dane w tabeli zostały pogrupowane według pola VAT (GROUP BY Vat) i funkcja agregująca MIN dla pola SugerowanaCena ograniczona jest do rekordów z każdej grupy oddzielnie.
VAT SugerowanaCena7,00% 20,75 zł7,00% 19,00 zł7,00% 18,00 zł7,00% 27,75 zł7,00% 34,00 zł7,00% 23,00 zł7,00% 32,25 zł7,00% 15,75 zł7,00% 21,00 zł
22,00% 33,25 zł22,00% 17,50 zł22,00% 27,75 zł22,00% 18,25 zł22,00% 16,25 zł22,00% 35,00 zł
VAT MinOfSugerowanaCena7,00% 15,75 zł
22,00% 16,25 zł
GROUP BY VATMIN(SugerowanaCena)
25/08/2001 22
Wybrane funkcje agregujące
Nazwa Opis działania
SUM Suma
COUNT Policz
MIN Minimum
MAX Maksimum
WHERE Pozwala zdefiniować kryteria wyboru rekordów
AVG Średnia
STDEV Odchylenie standardowe
25/08/2001 23
Tworzenie kwerendy z funkcjami agregującymi
1. Tworzymy kwerendę i dodajemy pola, dla których chcemy użyć funkcji agregujących
2. Naciskamy na pasku narzędzi guzik lub wybieramy z menu Widok (View) polecenie Podsumowanie (Totals)
3. Na dole okna kwerendy pojawia się nowy wiersz Podsumowanie (Totals), w którym dla każdego wybranego pola pojawia się domyślnie wartość Group By.
4. Zmieniamy wartość tego pola klikając na nie i wybierając z listy rozwijanej nazwę funkcji, której chcemy użyć.
25/08/2001 24
Przykład
Przykład: funkcja COUNT(SugerowanaCena) zwraca ilość niepustych pól SugerowanaCena (13) ze wszystkich rekordów (15)
COUNT(SugerowanaCena)
SugerowanaCena
18,00 zł27,75 zł34,00 zł23,00 zł32,25 zł15,75 zł21,00 zł33,25 zł17,50 zł27,75 zł18,25 zł16,25 zł35,00 zł
CountOfSugerowanaCena13
25/08/2001 25
Zagnieżdżanie kwerend
Zagnieżdżona kwerenda jest to kwerenda, która jako źródło rekordów używa kwerendy.
Przykład: kwerenda qryKraje zwraca kraje. Kwerenda qryPoliczKraje zwraca za pomocą funkcji COUNT liczbę rekordów z kwerendy qryKraje o niepustym polu Kraj.
25/08/2001 26
Kwerenda z parametrem
Załóżmy, że istnieje potrzeba stworzenia kwerendy, która powinna zwracać rekordy spełniające jakiś warunek, który musi być formułowany za każdym razem. Możemy powiedzieć, że warunek ten będzie zdefiniowany za pomocą parametru, który musi być podany przez użytkownika.
Przykładem takiej kwerendy jest kwerenda zwracąca wszystkie dane z faktury o konkretnym numerze. Zamiast zmieniać za każdym razem kryteria wyboru faktury, lepiej zdefiniować parametr odpowiadający numerowi faktury, którego podania komputer będzie za żądał za każdym uruchomieniem kwerendy. Jeżeli stworzymy raport w formie wydruku faktury oparty na tej kwerendzie, to przy każdym uruchomieniu raportu komputer też będzie żądał podania numeru faktury. Dzieki temu możemy w prosty sposób stworzyć funkcjonalność do drukowania faktur.
25/08/2001 27
Tworzenie kwerendy z parametrem
Jeżeli w definicji kwerendy umieścimy jakikolwiek ciąg znaków w nawiasach kwadratowych [], którego komputer nie może powiązać z istniejącymi elementami zapytania, to będzie traktował ten ciąg znaków jako parametr i żądał jego podania przy każdym uruchomieniu kwarendy
W przykładzie zdefiniowano parametr [Podaj numer faktury:] jako kryterium dla pola NumerFaktury z tabeli Faktura. Przy uruchomieniu kwerendy komputer pokazuje okno dialogowe, w którym żąda wprowadzenia wartości dla tego parametru. Wynikiem zapytania będą dane dotyczące faktury o numerze podanym w tym oknie.