5.3. Projektowanie zapytań
Zapytania pozwalają ograniczyć widok tabeli do wybranych wierszy i kolumn, a także dynamicznie łączyć dane z wielu tabel za pomocą relacji. Utworzysz teraz zapytanie Kontakty, które połączy dane z obu zaprojektowanych tabel.
5.3.1. Budowanie zapytania wybierającego z relacją między tabelami
Utwórz nowe puste zapytanie korzystając z polecenia
Zapytanie w menu Wstaw.
Użyj listy rozwijanej Tabela: znajdującej się w oknie projektu zapytania oraz przycisku Dodaj, aby dodać do zapytania uprzednio zaprojektowane tabele osoby oraz telefony, tak jak na rysunku poniżej.
Projekt zapytania Kontakty
Dodaj relację między tabelami: za pomocą myszy (techniką przeciągnij i upuść) kliknij pole id w tabeli osoby, po czym upuść je na pole osoba w tabeli telefony. Nastąpi powiązanie tych pól relacją: jednej osobie będzie mogło przypadać wiele numerów telefonów.
Dwukrotnie kliknij pola imie, nazwisko, ulica, nr_domu, miejscowosc w tabeli osoby, aby dodać je do list kolumn zapytania. Podobnie dodaj też pole telefon z tabeli telefony.
Projekt zapytania jest gotowy. Kliknij przycisk
Przełącz do widoku danych na pasku narzędzi, aby zakończyć projektowanie i przełączyć się do widoku danych, co umożliwi Ci zobaczenie wyniku zapytania.
Ponieważ projekt zapytania nie jest zapisany, musisz potwierdzić jego zapisanie pod wybraną nazwą. Podaj nazwę Kontakty.
Wyniki zapytania Kontakty
W wyniku zapytania widać, że dzięki utworzeniu relacji między polami tabel nastąpiło złączenie danych, przez co dla każdego telefonu są wyświetlane pełne dane osobowe (imię, nazwisko, itd.). W porównaniu z przeglądaniem tabeli Telefony, jest to pełna informacja, bardziej czytelna dla użytkownika bazy danych.
5.3.2. Sortowanie wierszy w zapytaniach
W projekcie zapytania istnieje możliwość określenia sposobu, w jaki wynik zapytania ma być posortowany. Dokonuje się tego przy pomocy czwartej kolumny (o nazwie Sortowanie) okna projektu zapytania. W kolumnie tej dostępna jest lista rozwijana, z której można wybrać wartość Rosnąco lub Malejąco. Standardowo, sortowanie jest wyłączone dla każdej kolumny zapytania. Aby usunąć sortowanie dla danej kolumny zapytania, należy rozwinąć listę Sortowanie i wybrać pierwszy (pusty) jej element. Można też nacisnąć klawisz Delete.
Gdy wybrano więcej niż jedną kolumnę do sortowania, o kolejności sortowanie decyduje kolejność kolumny: wcześniej położona kolumna zapytania jest sortowana najpierw, następnie sortowane są dalsze kolumny. Raz zdefiniowane sortowanie zapytania jest zawsze uwzględniane w widoku danych.
Przykład
Aby dla utworzonego poprzednio zapytania Kontakty na stałe ustawić sortowanie w porządku rosnącym według kolumny Nazwisko, należy:
- W widoku projektu przejść do drugiego wiersza, odpowiadającego kolumnie Nazwisko.
- Rozwinąć listę Sortowanie przy pomocy przycisku
(działa też klawisz F4) i wybrać wartość Rosnąco.
5.3.3. Kryteria w zapytaniach
Kolejnym po sortowaniu sposobem dostosowywania wyniku zapytania do swoich potrzeb są kryteria. Umożliwiają one wybór wyłącznie wskazanych wierszy. Kryteria ustawia się przy pomocy piątej kolumny (o nazwie Kryteria) okna projektu zapytania. W kolumnie są dostępne pola, do których można wpisać wartość kryterium dla danej kolumny zapytania. Można podawać kryteria dla wielu kolumn - w wyniku zapytania muszą być są one spełnione jednocześnie.
Reguły wpisywania wartości kryteriów
- Sposób, w jaki należy wpisywać wartości kryterium zależy od typu danych danej kolumny zapytania, do której kryterium ma się odnosić:
- wartości liczbowe wpisujemy jak zwykłe liczby, np. 123 lub 10,51
- wartości typu tekst wpisujemy z cudzysłowem, np. "Adam" lub 'Adam'
- akceptowane są także nazwy pól - wpisujemy je bez cudzysłowów; można w ten sposób porównywać dwa różne kolumny zapytania, np. wpisanie nazwy nazwisko jako kryterium dla kolumny imie wybierze tylko te osoby, które mają nazwisko takie samo jak imię
- Wartość kryterium można poprzedzić operatorem porównania. Dostępne operatory to >, <, >=, <=, <> lub != (,,różny od''). Gdy nie podano żadnego operatora stosowany jest operator równości = (inaczej: ==).
Przykładowe kryteria dla zapytania
Kontakty: a) poszukiwanie osób o imieniu ,,Adam'', b) poszukiwanie osób z numerem domu mniejszym od 10
Aby usunąć kryterium należy kliknąć na komórce je zawierającej, po czyn nacisnąć klawisz Delete. Program Kexi zgłasza na bieżąco niepoprawne wartości kryterium, umożliwiając poprawienie lub porzucenie dokonanych zmian.
Przykład
Aby dla utworzonego poprzednio zapytania Kontakty wyświetlić wyłącznie osoby o imieniu ,,Adam'', należy:
- W widoku projektu przejść do pierwszego wiersza, odpowiadającego kolumnie zapytania Imię.
- W komórce Kryteria wpisać słowo 'Adam' (z cudzysłowami).
5.3.4. Parametry zapytań
Każdorazowe wpisywanie przez użytkownika bazy danych może być uciążliwe, szczególnie dla osób nie znających się na pracy w widoku projektu. Aby uniknąć konieczności zmiany projektu zapytania, program Kexi oferuje definiowanie parametrów zapytań. Projektując zapytanie ustalamy wartości o które należy zapytać przed wyświetleniem wyników zapytania w widoku danych.
Parametry wpisuje się jako kryteria w piątej kolumnie (Kryteria) okna projektu zapytania. W kolumnie są dostępne pola, do których należy po prostu wpisać tekst komunikatu, który będzie widział użytkownik. Tekst ten należy otoczyć nawiasami kwadratowymi ,,[ ]''.
Przykład
Aby dla utworzonego poprzednio zapytania Kontakty zapytać użytkownika o imię, według którego chce wyszukiwać osoby, należy:
- W widoku projektu przejść do pierwszego wiersza odpowiadającego kolumnie zapytania Imię.
W komórce Kryteria wpisać [Podaj imię] (w nawiasach kwadratowych).
Definiowanie parametru zapytania
Po przejściu do widoku danych zostanie wyświetlone pytanie o wartość parametru. Tekst w oknie odpowiada dokładnie temu, co zostało uprzednio umieszczone w nawiasach kwadratowych.
Pytanie o wartość parametr zapytania
Po wpisaniu imienia, np. Joanna i kliknięciu przycisku OK lub naciśnięciu klawisza Enter, zapytanie zostanie wykonane - pojawią się osoby posiadające dane imię. Kliknięcie przycisku Anuluj lub naciśnięcie przycisku Esc anuluje wykonanie zapytania.
Uwagi
odobnie jak w przypadku klasycznych kryteriów ustalanych na sztywno, w zapytaniu można wpisywać dowolną liczbę parametrów. Po przejściu do widoku danych, dla każdego parametru będzie wyświetlane jedno okno z pytaniem o wartość parametru.