Instrukcja SELECT - wydobywa informacje z bazy danych, określa:

Instrukcja SELECT składa się z części nazywanych klauzulami

 

Baza danych przyjmowania zamówień o nazwie OrderEntry, utworzona przez kreator bazy danych w Accessie.

Najprostsza postać instrukcji SELECT:

SELECT nazwa_kolumny,...
FROM nazwa_tabeli
[WHERE warunek];

(Uwaga: meta-nawiasy [ ] oznaczają opcjonalne fragmenty)

Aby wypisać imiona i nazwiska pracowników firmy, definiujemy kwerendę jako zapytanie SQL:

SELECT FirstName, LastName
FROM Employees;

Oto zapis w okienku Accessa w widoku SQL:

Oraz wynik zapytania:

 

Najprostszym zapytaniem jest wypisanie całej zawartości tabeli:

SELECT *
FROM Employees;

Zapis w okienku Accessa:

Wynik:

Aby wypisać pracowników w kolejności alfabetycznej według nazwisk:

SELECT FirstName, LastName
FROM Employees
ORDER BY LastName;

 LastName DESC - aby w odwrotnej kolejności alfabetycznej według nazwisk.

 Oto wynik:

 

Aby wypisać wszystkich kierowników:

SELECT FirstName, LastName
FROM Employees
WHERE Title = "Kierownik";

Wynik:

 

Aby wypisać numery telefonów pracowników bez powtórzeń:

SELECT DISTINCT WorkPhone
FROM Employees;

Wynik:

 

Operatory

Pracownicy, którzy mają określony numer wewnętrzny (Extension).

 

Pracownicy których identyfikatory znajdują się w określonym przedziale wartości.

 

Pracownicy których nazwiska zaczynają się na literę B.

 

Spójniki logiczne: AND, OR, NOT

SELECT FirstName, LastName
FROM Employees
WHERE LastName LIKE "*I" AND Extension IS NOT NULL;

Instrukcja INSERT

Dodaj wiersz do tabeli.

INSERT INTO Employees(FirstName,LastName, Title)
VALUES("Adam", "Sapieha", "Dyrektor");

 

Instrukcja DELETE

Usuń z tabeli wiersze spełniające warunek WHERE.

DELETE FROM Employees
WHERE Title="Dyrektor";

 

Instrukcja UPDATE

W tabeli dokonaj aktualizacji wskazanych przez klauzulę SET do wierszy spełniających warunek WHERE.

UPDATE Employees 
SET Extension = "200"
WHERE Extension = "155";

 


Kwerendy typu tylko SQL (Query -> SQL Specific)

Wypisz nazwiska wszystkich pracowników i klientów.

Oto rezultat:

 

Kwerenda definicji danych - instrukcje SQL defininiowania danych.

 

Pass-Through Query - zapytanie SQL, które ma być wykonane w odległej bazie danych – składnia rozumiana przez odległą bazę danych (wymaga określenia DSN do zewnętrznego źródła danych).

 

SELECT ze złączeniem tabel

Wyświetl zestaw klientów i numerów złożonych przez nich zamówień.

Zaprojektujmy kwerendę za pomocą kreatora lub w widoku projekt.

Widok SQL odkrywa nam odpowiadającą instrukcję SELECT:

Mamy do czynienia z wewnętrznym złączeniem INNER JOIN tabel Customers i Orders - z warunkiem złączenia postaci klucz_główny=klucz_obcy.

 

Wyświetl pracowników razem z przyjętymi przez nich zamówieniami.

 

Złączenie między pracownikami i zamówieniami jest zewnętrzne tzn. przy złączaniu uwzględniamy też zamówienia, którym nie został przypisany żaden pracownik.

Pojawia się słowo kluczowe RIGHT JOIN.

 

Operatory DISTINCT i  DISTINCTROW (nie ma go w Standardzie)

1. Instrukcja:
SELECT Customers.ContactFirstName, Customers.ContactLastName
FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

zwraca wynik:

 

2. Instrukcja:
SELECT DISTINCTROW Customers.ContactFirstName, Customers.ContactLastName
FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

zwraca wynik:

DISTINCTROW - dla każdego wiersza tabeli Customers osobny wiersz w wyniku.

 

3. Instrukcja:
SELECT DISTINCT Customers.ContactFirstName, Customers.ContactLastName
FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

zwraca wynik:

 

Podział na grupy i podsumowywanie grup

Dla każdego klienta wypisz ile złożył zamówień.

Widok SQL:

Arkusz danych:

 

Dla każdego pracownika wypisz ile przyjął zamówień.

Widok SQL:

 

Podzapytania

Wyznaczyć towar, który ma najwyższą cenę.

SELECT Max(UnitPrice) FROM Products - określa najwyższą cenę zapisaną w kolumnie UnitPrice tabeli Products.

Widok SQL:

Rezultat:

 

Kwerenda sparametryzowana

Czasami jest wygodnie mieć kwerendę uzależnioną od parametru  np. od nazwiska osoby, nazwy firmy itp. Oto metoda tworzenia takiej kwerendy w widoku projekt:

 

Odpowiada temu instrukcja SQL:

Przy obliczaniu wyniku zapytania wyświetla się okienko dialogowe do którego użytkownik wpisuje wartość parametru:

 

Typ danych parametru określa się w okienku „Query parameters” wywoływanym z menu Query -> Parameters.

 

Operator EXCEPT (MINUS) – różnica zapytań

 

MS Access nie wprowadza tego operatora. Można użyć podzapytania i operator NOT EXISTS.

 

Wyznaczyć pracowników, którzy nie przyjęli żadnego zamówienia.

 

Widok SQL

 

Widok Projekt

 

 

 

Widok Arkusz Danych

 

Operator INTERSECT – przecięcie wyników zapytań.

 

MS Access nie wprowadza tego operatora. Można użyć podzapytania i operator EXISTS.

 

Wyznaczyć pracowników, którzy jednocześnie reprezentują klientów.

 

Widok SQL

 

Widok Projekt

 

Widok Arkusz Danych