🥔 Ziemniak w Dresie

Bazy w dresie #2.23 | Kwerendy (teoria)

📂 MySQL

Podział danych pomiędzy wiele powiązanych tabel pozwala wyeliminować nadmiarowość, ale jednocześnie utrudnia szybkie pobieranie informacji. Aby np. uzyskać nazwisko reżysera oraz listę filmów, które wyreżyserował, konieczne jest odczytanie danych z co najmniej dwóch powiązanych tabel. Podobne trudności dotyczą modyfikacji danych — niektórych operacji nie da się wykonać bezpośrednio z poziomu tabeli, np. nie można usunąć rekordu z tabeli podrzędnej, jeśli jest on używany w tabeli nadrzędnej.

Rozwiązaniem tego problemu są kwerendy, czyli obiekty bazy danych, które automatyzują pobieranie i modyfikowanie danych przechowywanych w tabelach. W Access kwerendy zapisują instrukcje języka SQL, który jest podstawowym narzędziem pracy w systemach zarządzania relacyjnymi bazami danych.

Rodzaje kwerend


W zależności od operacji wykonywanej przez kwerendę język SQL udostępnia różne typy instrukcji, a Access odpowiednio różne typy kwerend:

  • Kwerendy wybierające – bazują na instrukcji SELECT i umożliwiają pobieranie oraz przekształcanie danych.
  • Kwerendy krzyżowe – wykorzystują instrukcję SELECT … PIVOT oraz funkcję TRANSFORM charakterystyczną dla Access.
  • Kwerendy tworzące tabele – tworzone za pomocą instrukcji SELECT INTO, służą do generowania nowych tabel z danych pobranych z innych tabel.
  • Kwerendy aktualizujące – odpowiadają instrukcji UPDATE i umożliwiają modyfikowanie istniejących danych.
  • Kwerendy dołączające – wykorzystują instrukcję INSERT INTO, dodają nowe rekordy do wybranej tabeli.
  • Kwerendy usuwające – bazują na instrukcji DELETE i usuwają określone dane z tabel.

Kwerendy wybierające dane


Najczęściej stosowanym typem kwerend są kwerendy wybierające, bazujące na instrukcji SQL SELECT. Służą do pobierania danych z tabel, prezentowania ich użytkownikowi, filtrowania, sortowania oraz wyliczania wartości pochodnych (np. wyznaczania podatku na podstawie ceny).

Kwerenda wybierająca może pobierać tylko te kolumny, które użytkownika interesują w danym momencie. Przykładowo, jeśli chcemy znaleźć informację o tym, kto wypożyczył film o określonym tytule, nie potrzebujemy całej tabeli filmów – wystarczą jedynie tytuł filmu oraz nazwisko osoby, która go wypożyczyła.