Bazy danych

Klauzule SELECT i WHERE

W poście zatytułowanym „Wstęp do SQL – podstawy” przedstawiono teoretyczne informacje o podziale języka ze względu na składnie, zaprezentowano również podstawowe kwerendy tworzące tabelę w bazie danych oraz zapytanie wybierające wszystkie dane z tabeli.

W tym poście postaramy się usystematyzować podstawy.

Instrukcja SELECT umożliwia odczytanie danych zapisanych w bazie, bez jakiejkolwiek ingerencji w ich zawartość i strukturę. To znaczy, że możemy wyświetlić wszystkie kolumny w danej tabeli lecz nie będziemy w stanie nic w niej zmienić.

Ponadto instrukcja SELECT definiuje z jakich tabel w bazie danych mają być pobrane dane oraz jakie warunki mają spełniać te dane.

Instrukcja SELECT składa się z kilku części, które nazywamy klauzulami.

Weźmy dla przykładu naszą pierwszą wykonaną instrukcję SELECT.

SELECT * FROM MIEJSCOWOSCI;

Po klauzuli SELECT umieszczamy wyrażenie, które definiuje nam np. kolumny z tebeli, które chcemy wyświetlić, * wybiera wszystkie kolumny.

FROM określa nazwę tabeli z której wybieramy rekordy.

W przypadku chęci wybrania konkretnych rekordów wymagana jest klauzula WHERE, która określa nam warunek, który musi zostać spełniony aby interesujące nas rekordy zostały wyświetlone.

Rozbudujmy zatem teraz nasze zapytanie o klauzulę WHERE, wybierając z tebeli miejscowosci miasto Zakopane.

SELECT * FROM miejscowosci 
WHERE nazwa='Zakopane';

Zwrotnie otrzymamy jeden wiersz, w którym znajdą się miejscowości ale tylko te, w których nazwa odpowiada Zakopanemu. W tabeli mamy jedno Zakopane.

Zwróć uwagę na zapis, Zakopane umieszczono pomiędzy apostrofami, ponieważ są to dane typu tekstowego. Przy wyborze danych tekstowych pamiętaj o apostrofach.

Teraz napiszemy zapytanie które zwróci nam wiersze dla id=2

SELECT * FROM miejscowosci 
WHERE id=2;

Zwrotnie otrzymamy wiersz z danymi odpowiadającymi id=2. Zwróć uwagę, że dane liczbowe typu INTEGER umieszcza się bez apostrofów.

Na dzisiaj to tyle informacji, w kolejnym poście rozbudujemy naszą bazę danych i przedstawimy sobie klauzulę DISTINCT, ORDER BY oraz operatory logiczne.