Praca z danymi

Projektowanie i tworzenie struktury bazy danych mamy już za sobą. Nadszedł czas pracy z danymi. Na początek wykonamy kilka prostych operacji w bazie danych, którą wykorzystują rodzice Tomka w swoim sklepie z produktami pszczelimi. W ciągu niedługiego czasu udało się zgromadzić całkiem pokaźną liczbę rekordów w każdej z tabel. Teraz po każdym dniu, tygodniu, miesiącu lub „na życzenie” można z takiej bazy uzyskiwać rozmaite zestawienia: podsumowania sprzedaży, informacje o produktach oraz klientach, które mogą być przydatne w opracowywaniu strategii marketingowej na kolejny sezon działalności produkcyjno‑handlowej.

Przypomnijmy sobie strukturę bazy danych:

RwYVPWhTIUiG9
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Zapytania do bazy danych

Skąd pochodzą nasi klienci?

Po kilku miesiącach funkcjonowania bazy danych właściciele sklepu są zainteresowani, skąd pochodzą ich klienci. Informacje na ten temat można uzyskać, tworząc zapytanie, zwane kwerendąkwerendakwerendą, a dokładniej – kwerendą wybierającąkwerenda wybierającakwerendą wybierającą.

W programie Microsoft Access zapytanie (kwerendę) możemy utworzyć za pomocą tzw. Kreatora kwerend, poprzez tzw. Projekt kwerendy lub zapytanie w języku SQL. Dwie pierwsze metody są dostępne w zakładce Tworzenie:

RD1kANfAMguj1
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Trzeci sposób – język SQL – jest dostępny, gdy tworzymy kwerendę za pomocą metody Projekt kwerendy po wyborze opcji Widok, a następnie Widok SQL:

R1KzlHon90mga
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Więcej o tworzeniu zapytań w języku SQL przeczytasz w dalszej części tego materiału.

Utwórzmy kwerendę wybierającą, korzystając z opcji Kreator kwerend.

W pierwszym okienku dialogowym wybieramy opcję Kreator prostych kwerend:

R1BTHsOyu4UN4
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W następnym okienku:

  1. wskazujemy tabelę, z której chcemy wyświetlać dane,

  2. spośród dostępnych pól tabeli wybieramy wszystkie lub tylko te, które nas interesują,

  3. wyboru pól oraz rezygnacji dokonujemy za pomocą dostępnych pośrodku czterech przycisków,

  4. upewniamy się, czy wybór jest odpowiedni,

  5. przechodzimy dalej.  

RE2D2gak6LuJz
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W kolejnym kroku możemy nadać nazwę tworzonej kwerendzie:

RD16MABES24aj
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W rezultacie otrzymujemy następujący arkusz danych:

R1LGRCqpAVEdO
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Zapisana kwerenda jest dostępna w lewej części widoku okna programu po rozwinięciu listy Kwerendy:

Rqp6pJWv9roOh
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Podsumowując, dzięki utworzonej kwerendzie wybierającej uzyskaliśmy fragment zawartości określonej tabeli bazy danych z pominięciem tych kolumn, których akurat nie potrzebowaliśmy.

Dla zainteresowanych

Operacja, którą właśnie wykonaliśmy, polegająca na wyselekcjonowaniu tylko niektórych kolumn, nazywana jest rzutowaniemrzutowanierzutowaniem (lub projekcją). To zagadnienie pochodzi z tzw. algebry relacji.

W programie LibreOffice Base kwerendę możemy utworzyć również na trzy sposoby:

  • za pomocą kreatora,

  • w widoku projektu,

  • w języku SQL.

RO6wFsor5L3oW
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Tworzenie opisanej wyżej kwerendy rozpoczniemy od sposobu z kreatorem. Z tabeli klienci wybieramy pole Imie, pole Nazwisko oraz pole Miejscowosc:

RItZwNRjMPsX5
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W kolejnym kroku określamy porządek sortowania:

R1HiONTrB6bG0
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Następny krok Warunki przeszukiwania możemy w tej kwerendzie pominąć, ponieważ nie określamy żadnych warunków:

R1Hf2gkN1Ptof
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Ponieważ kroki 4, 5 i 6 są nieaktywne, w kroku 7. możemy poszczególnym polom nadać tzw. aliasy, czyli alternatywne nazwy, które zostaną wyświetlone zamiast pierwotnych nazw pól po uruchomieniu projektowanej kwerendy. Np. dla pola klienci.Imie możemy ustalić alias Imie:

RcXrG68u9DwBB
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W kroku 8. kończymy procedurę z zaznaczoną opcją Wyświetl kwerendę:

R1cSK3pCITmg9
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W rezultacie otrzymujemy następujący arkusz danych:

R19LDKe24uV4Q
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Rozszerzamy kwerendę o numer telefonu

Gotową kwerendę możemy zmodyfikować. Rozszerzmy więc zapytanie dotyczące miejscowości pochodzenia naszych klientów o numer telefonu. W tym celu, w programie Microsoft Access, klikając prawym przyciskiem myszy nad utworzoną wcześniej kwerendą, wskazujemy opcję Widok projektu:

R1IO68ViEcndO
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Otrzymujemy widok, w którego górnej części pokazana jest tabela służąca do uzyskania kwerendy, zaś w dolnej – projekt kwerendy z możliwością dokonania wyboru konkretnych pól, zastosowaniem sortowania oraz wskazania kryteriów filtrowania danych. Dołóżmy więc potrzebne pole Telefon, wybierając je z rozwijanej listy dostępnych pól w pierwszej wolnej kolumnie na wysokości etykiety Pole:

R1ZVnO6GYeCZw
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
REPOIPAdgLFEP
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Uruchamiamy zmodyfikowaną kwerendę za pomocą przycisku Uruchom:

RpTKcQaKQCyf9
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W rezultacie otrzymujemy następujący, poszerzony o kolumnę Telefon, arkusz danych:

RXVJ6rqLOliql
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Podczas próby zamknięcia widoku arkusza danych możemy zdecydować o zapisie zmodyfikowanej kwerendy:

RjIc5T3900wU4
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Analogicznie postępujemy w programie LibreOffice Base. Spod prawego przycisku myszy wybieramy opcję Edycja… nad zapisaną wcześniej kwerendą:

R1CtzcKdDod3M
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W widoku projektu kwerendy dodajemy potrzebne pole, korzystając z listy rozwijanej w pierwszym rekordzie pomocniczej siatki:

R1Q7lAX4mtFAU
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Po uruchomieniu kwerendy otrzymujemy następujący arkusz danych poszerzony o zadaną kolumnę Telefon:

R1UueMfpBCoiA
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Oprócz rzutowania polegającego na wyborze wszystkich rekordów zawierających wskazane pola o wiele ciekawszą możliwością wydaje się być tzw. filtrowaniefiltrowaniefiltrowanie, czyli wybór rekordów spełniających określone kryteria. Oto dwa przykłady dotyczące właśnie filtrowania:

Klienci z Poznania

Spróbujmy teraz wyłuskać z naszej bazy wszystkie informacje o naszych klientach, ale tylko tych, którzy pochodzą z określonej miejscowości. Korzystając z Kreatora kwerend w programie Microsoft Access, wybierzmy więc wszystkie pola z wyjątkiem pola IdKlienta:

R1JSKU7g7XlH7
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W widoku projektu określamy kryterium Poznań, zapisując je w odpowiedniej kolumnie:

R1H06WQk5SYRn
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Po uruchomieniu kwerendy otrzymujemy następujący arkusz danych prezentujący wybrane kolumny tabeli klienci dla tych spośród klientów, którzy pochodzą z Poznania:

R1KBz2SN7ybg1
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Korzystając z kreatora w programie LibreOffice Base, z tabeli klienci wybieramy wszystkie pola z wyjątkiem pola IdKlienta:

R1OA1EQ1wP3N8
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W kroku 3. (Warunki przeszukiwania) ustalamy, że wartość w polu Miejscowosc ma być równa Poznań:

R1DITMqq2shIa
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W rezultacie otrzymujemy następujący arkusz danych:

R1mzmlgCHW8kG
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Dzień Kobiet

W związku ze zbliżającym się Dniem Kobiet rodzice Tomka postanowili wszystkim paniom – klientkom sklepu – przesłać specjalny kod rabatowy na zakupy. Aby to zrobić, potrzebne są takie dane jak imię, nazwisko oraz adres e‑mail:

RPJy6zJkIxT2p
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Wykorzystując pewną własność imion żeńskich w języku polskim (kończą się na literę „a”), w widoku projektu określamy kryterium dla pola Imie jako: Like „*a”:

RzpnJRrjoPbHJ
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W zapisie tym symbol gwiazdki (*) oznacza dowolny ciąg znaków (w tym również pusty ciąg znaków), zaś litera „a” sygnalizuje, że tą literą kończy się poszukiwany ciąg znaków, a po niej nie następuje już żaden inny znak.

Po uruchomieniu kwerendy otrzymujemy następujący arkusz danych:

RNOrDlkbQZYvD
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Jeśli w kryteriach zapytań zaszłaby potrzeba znajdowania określonej długości tekstów, można posłużyć się znakiem „?”, który zastępuje dokładnie jeden dowolny znak alfanumeryczny.

W programie LibreOffice Base zaczęlibyśmy podobnie tzn. od zaprojektowania tabeli wynikowej składającej się z: pola Imie, pola Nazwisko oraz pola Email:

R1L93cdtZ7guO
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W kroku 3. (Warunki przeszukiwania) ustalamy, że wartość w polu Imie ma być jak *a:

R8T5dw97BiaWc
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W rezultacie otrzymujemy następujący arkusz z wynikami:

RsXPS9W7CBg6G
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Zapytania do bazy danych w języku SQL

Po otworzeniu kwerendy w widoku projektu lub arkusza danych dostępny jest jeszcze jeden widok: Widok SQL. W programie Microsoft Access uzyskujemy ten widok po wyborze opcji Widok SQL z opcji Widok, po otwarciu konkretnej kwerendy:

RVvml4m1lVckJ
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Kwerenda pochodzenie klientów, która wybierała z tabeli klienci kolumny Imie, Nazwisko oraz Miejscowosc, w języku SQL przybiera następującą postać:

SELECT klienci.Imie, klienci.Nazwisko, klienci.Miejscowosc

FROM klienci;

W programie LibreOffice Base widok SQL uzyskujemy, wybierając spod prawego przycisku myszy – po najechaniu na wybraną kwerendę – opcji Edycja w widoku SQL…:

R1S0G3L6nOnkF
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Polecenie SELECT pozwala wybrać pola wymienione po tym słowie (np. pole Imie – zwróć uwagę na zapis: klienci.Imie), które pochodzą z tabeli wskazanej po słowie FROM.

Słownik

filtrowanie
filtrowanie

operacja polegająca na wyselekcjonowaniu z relacji (tabeli) rekordów spełniających określone kryteria

kwerenda
kwerenda

rodzaj operacji wykonywanej w bazie danych, która umożliwia wyświetlanie, dodawanie, usuwanie lub zmienianie danych

kwerenda wybierająca
kwerenda wybierająca

zapytanie do bazy danych umożliwiające pobranie danych z jednej lub więcej tabel z zastosowaniem filtrowania według określonych kryteriów (warunków)

rzutowanie
rzutowanie

operacja polegająca na wyselekcjonowaniu z relacji (tabeli) niektórych kolumn

SQL
SQL

język zapytań baz danych wykorzystywany do definiowania struktury bazy danych, nadawania uprawnień do zarządzania bazą, aktualizacji danych w bazie oraz uzyskiwania danych spełniających określone kryteria