Reklama
Wizyt
Dzisiaj: 252Wszystkich: 650749

Język SQL w programie Access

Technikum » SBD » Tworzenie lokalnych baz danych w programie MS Access » Język SQL w programie Access

 

Do konstruowania kwerend w programie Access można używać języka SQL (ang. Structured Query Language) lub QBE (ang. Query By Example).
Język SQL jest zbliżony do języka formalnego. Gdy tworzymy kwerendę, korzystając z szablonu QBE, program Access w tle konstruuje odpowiadające jej wyrażenie w języku SQL.

SQL formalnie jest podobny do języków programowania wysokiego poziomu, ale jest od nich o wiele prostszy. Edytowanie poleceń w języku SQL wymaga przejścia do trybu SQL. Uruchomienie zdefiniowanej w tym języku kwerendy odbywa się tak jak uruchomienie innych kwerend zdefiniowanych za pomocą szablonu, a wynik wyświetlany jest w postaci arkusza danych. Dla kwerend tworzonych w języku SQL program Access tworzy w tle szablon QBE.


Kwerenda wybierająca w języku SQL

Ogólna postać kwerendy wybierającej, dla której źródłem danych jest jedna tabela, ma postać:




Wyrażenie można zapisać w jednej linii, a jego strukturalność została wprowadzona w celu zwiększenia przejrzystości zapisu. Wyrażenie musi kończyć się średnikiem.
W wyrażeniu są stosowane następujące konwencje:

  • Słowa kluczowe pisane są dużymi literami.
  • Argumenty wyrażenia pisane są małymi literami.
  • W nawiasach kwadratowych umieszczone są opcjonalne elementy wyrażeń.
  • Pionowa kreska pełni funkcję słowa „lub" (wybór jednego elementu z listy).
  • Nawiasy klamrowe używane są, gdy jeden z elementów musi wystąpić w wyrażeniu.



Jedynie słowa kluczowe SELECT i FROM wraz z odpowiednimi argumentami muszą wystąpić w definicji kwerendy wybierającej. Argumentami dla słowa SELECT będą nazwy pól, a dla słowa FROM będzie to nazwa tabeli źródłowej kwerendy.


 


Parametr AS

Parametr ten pozwala ustawić nazwę kolumny w arkuszu danych. Może służyć również do nadania nazwy tabeli.


 


Parametr WHERE

Parametr ten stosujemy, gdy chcemy wyświetlić w kwerendzie tylko rekordy spełniające określony warunek. Po słowie WHERE musi wystąpić warunek w postaci wyrażenia. W arkuszu danych znajdą się tylko te rekordy, które spełniają warunek.




Parametr ORDER BY

Parametr ten stosujemy, gdy chcemy uporządkować dane. Po słowach ORDER BY należy wpisać nazwę pola lub wyrażenie, według którego nastąpi porządkowanie danych.
Dodatkowo można określić sposób porządkowania za pomocą słów:

  • ASC - rosnąco
  • DESC - malejąco.

Program Access domyślnie sortuje dane rosnąco, więc słowo ASC może zostać pominięte.





PARAMETERS

Parametr ten stosujemy, gdy chcemy utworzyć kwerendę z parametrem. Słowo PARAMETERS umieszczamy na początku całego wyrażenia, jeszcze przed słowem SELECT. Po nim deklarujemy nazwy parametrów wraz z typem danych.


Uruchomienie kwerendy spowoduje wyświetlenie pola dialogowego z tekstem, który jest nazwą parametru. Po wprowadzeniu parametru, czyli nazwiska klienta, zostanie wyświetlony arkusz danych zawierający dane klienta o podanym nazwisku. Nazwisko jest parametrem kwerendy.
Jeżeli chcemy wyświetlić dane jednego klienta i uniknąć wyświetlania danych wszystkich klientów noszących to samo nazwisko, należy zadeklarować drugi parametr, na przykład imię.



Parametry ALL, DISTINCT, DISTINCTROW, TOP

Są to predykaty używane do określenia, czy wyświetlane wartości mogą się powtórzyć i czy należy wyeliminować wiersze, w których wartości się powtarzają.

  • ALL - używany domyślnie.
  • DISTINCT - używany, gdy chcemy ograniczyć wystąpienia takich samych wartości w kolejnych rekordach. Odpowiada atrybutowi WARTOŚCI UNIKATOWE.
  • DISTINCTROW- używany wyłącznie w kwerendzie opartej na kilku tabelach. Eliminuje w zestawieniu identyczne rekordy. Odpowiada atrybutowi REKORDY UNIKATOWE.
  • TOP n — pozwała wybrać n pierwszych rekordów spełniających warunki określone w kwerendzie. Odpowiada atrybutowi NAJWYŻSZE WARTOŚCI. Liczbę wybranych rekordów można określać procentowo, używając predykatu TOP ze słowem PERCENT.



Uruchomienie tej kwerendy spowoduje wyświetlenie informacji, z jakich miejscowości, poza Poznaniem, pochodzą klienci. Nazwa miejscowości pojawi się na liście tyle razy, ilu klientów jest z danej miejscowości. Aby ograniczyć się do pojedynczych wystąpień nazw miejscowości, należy dodać predykat DISTINCT.

 


Uruchomienie kolejnej kwerendy spowoduje wyświetlenie danych trzech najstarszych klientów.


 
GROUP BY ... HAVING

Polecenie to służy do grupowania wybranych w kwerendzie rekordów według identycznych wartości pól, których nazwy zostały wymienione w tym poleceniu. W tym przypadku można w wyrażeniu SELECT używać funkcji agregujących.

 


Wynikiem wykonania wyrażenia będzie pogrupowanie klientów według wartości pola Miejscowość. W każdej grupie liczone będą rekordy i wyświetlony zostanie rezultat obliczeń.
Aby wyeliminować rekordy po podziale na grupy, należy dodatkowo zastosować warunek HAVING.


Jeśli kwerenda zawiera polecenie GROUP BY, wymagane jest użycie każdego z pól wymienionych w wyrażeniu SELECT jako kryterium grupowania lub jako argumentu funkcji agregującej.


IN

Słowo to może wystąpić po słowie FROM i służy do określenia bazy danych, z której pochodzi tabela. Argumentem słowa IN może być ścieżka dostępu do pliku bazy danych.

 

Typy danych w języku SQL

 

 

Definiowanie połączeń między tabelami

Podczas definiowania kwerendy w wyrażeniu FROM można używać wielu tabel. Aby dane z tabel zostały prawidłowo powiązane, należy zdefiniować połączenia między tabelami. Kwerendy oparte na kilku tabelach różnią się od kwerend opartych na jednej tabeli tylko sposobem określenia źródła danych, więc zmiany ogólnej postaci kwerendy dotyczą jedynie wyrażenia FROM.





W wyrażeniu uwzględniono możliwość powiązania i wykorzystania w kwerendzie wielu tabel źródłowych. Oprócz określenia tabel źródłowych wyrażenie musi zawierać nazwy odpowiadających sobie pól z każdej tabeli. Oto postać wyrażenia dla dwóch tabel źródłowych:


Przed słowem kluczowym JOIN (połączenie) występuje określenie rodzaju połączenia:

  • INNER JOIN - połączenie zawężające,
  • LEFT JOIN - lewe połączenie rozszerzające,
  • RIGHT JOIN - prawe połączenie rozszerzające.

 


Wynikiem wykonania kwerendy będzie arkusz danych zawierający listę wszystkich klientów wraz z tytułami książek, które zamówili; lista będzie uporządkowana alfabetycznie według nazwisk.
 


Wynikiem wykonania kwerendy będzie yestawienie zawierające listę nazwisk wszystkich klientów wraz z informacją o dacie złożenia zamówienia i o dacie wysyłki. Na liście pojawią się też nazwiska klientów, którzy nie złożyli żadnego zamówienia, ale są zarejestrowani w bazie. W kwerendzie zdefiniowane jest połączenie między tabelami Klient i Zamówienia. Zostało zdefiniowane połączenie rozszerzające lewe, zatem z tabeli Klient zostaną wybrani wszyscy klienci. To, czy należy zastosować połączenie rozszerzające lewe, czy prawe, zależy od kolejności zapisywania nazw tabel w definiowanym połączeniu.

 

Zadania


Napisz kwerendę SQL wyświetlającą:

  1. listę wszystkich klientów z adresami.
  2. listę wszystkich klientów z Jabłonki.
  3. listę wszystkich klientów z miejscowości podanej jako parametr.
  4. alfabetyczną listę wszystkich klientów z adresami.
  5. listę miejscowości z których pochodzą klienci.
  6. alfabetyczną listę miejscowości z których pochodzą klienci.
  7. listę klientów według wieku od najmłodszego klienta.
  8. 5 najmłodszych klientów.
  9. ilość klientów z poszczególnych miejscowości.
  10. zestawienie zamówionych przez klientów książek.
Reklama