Wybór rekordów z bazy
Przypuśćmy, że posiadamy bazę, w której istnieje tabela pracownicy. W tabeli zgromadzone są imiona, nazwiska oraz pensje pracowników, oraz unikalny numer. W tabeli początkowo znajduje się pięć rekordów, dopisywanych po zatrudnieniu kolejnych pracowników (kolejność nie zależy od nazwisk ani wynagrodzeń).
Wśród programistów przyjęło się, że dla czytelności słowa kluczowe specyficzne dla zapytań piszemy wielkimi literami. Ciągi znaków należy otaczać apostrofami, natomiast nazwy kolumn opcjonalnie można otaczać apostrofami lub odwrotnymi apostrofami.
Wybór wszystkich rekordów i wszystkich kolumn
Aby wybrać wszystkie rekordy z bazy i wyświetlić wszystkie kolumny w kolejności występowania, zapytanie powinno wyglądać następująco:
Zobaczmy, jakie dane zwróci powyższe zapytanie:
| id | imię | nazwisko | wynagrodzenie |
|---|---|---|---|
| 1 | Jan | Kowalski | 2300 |
| 2 | Anna | Nowak | 2500 |
| 3 | Robert | Dąbrowski | 1700 |
| 4 | Wojciech | Jaworski | 1800 |
| 5 | Agnieszka | Ledwanowska | 3500 |
Wybór konkretnych kolumn
Przy większych bazach wybieranie tylko potrzebnych kolumn może przynieść oszczędność czasu i zasobów potrzebnych na zwrócenie danych przez bazę.
Otrzymamy tylko kolumny z imionami i nazwiskami:
| imię | nazwisko |
|---|---|
| Jan | Kowalski |
| Anna | Nowak |
| Robert | Dąbrowski |
| Wojciech | Jaworski |
| Agnieszka | Ledwanowska |
Wybór zakresu rekordów
Wyświetlenie osób zarabiających powyżej 2000 wymaga dopisania do zapytania warunku:
Jeśli chcemy wyświetlić osoby z określonego przedziału zarobków, możemy użyć łączenia warunków:
Warunki mogą posiadać również operator OR, a także być grupowane za pomocą nawiasów:
Sortowanie wyników
Baza danych oferuje sortowanie wyników według dowolnych kolumn i w dowolnym kierunku.
I tak, jeśli chcemy wyświetlić pracowników w kolejności alfabetycznej:
Od najmniej zarabiających:
Limitowanie rekordów
Wybierzmy z bazy trzech pracowników najlepiej zarabiających:
Witryny internetowe powszechnie stosują mechanizm stronicowania, na przykład wyświetlając tylko 10 komentarzy na jednej podstronie. Następne komentarze są wyświetlane na następnych podstronach. Przykładowe zapytanie dla trzeciej strony komentarzy mogło by wyglądać tak:
Pierwsza wartość oznacza od którego rekordu rozpoczynamy wybór rekordów (począwszy od zera), druga ile rekordów chcemy wybrać. Oczywiście w skryptach PHP, za pierwszą wartość podstawimy zmienną, by skrypt działał dla każdej podstrony z wynikami.
Dopisywanie rekordów
Jeżeli chcemy wypełnić wszystkie pola, możemy użyć poniższego zapytania:
Proszę zwrócić uwagę, że otaczamy apostrofami tylko te wartości, które są ciągami znaków.
Pole id jest polem o automatycznie zwiększanej wartości (auto increment), zatem nie musimy podawać tej wartości. Wówczas musimy określić do których pól dopisujemy dane:
Uaktualnianie rekordów
Uaktualnianie rekordów łączymy zazwyczaj z selekcją wyników, ponieważ gdybyśmy jej nie użyli, uaktualnilibyśmy wszystkie rekordy. Przykładowo, chcemy zwiększyć wynagrodzenie do kwoty 2000 tym pracownikom, którzy zarabiają mniej.
Możemy także zwiększyć wartość pola o konkretną wartość:
Usuwanie rekordów
Usuwanie rekordów również wymaga selekcji:
Łączenie tabel
Pobieranie danych z dwóch tabel jednocześnie jest bardzo dobrym pomysłem na ograniczenie liczby zapytań. Przypuśćmy, że posiadamy w bazie jeszcze jedną tabelę w której gromadzimy miejsce urodzenia naszych pracowników:
| id | miasto |
|---|---|
| 1 | Warszawa |
| 2 | Warszawa |
| 3 | Tarnów |
| 4 | Poznań |
| 5 | Bytom |
Nie przechowujemy w niej już imion i nazwisk, tylko identyfikatory użytkowników. Aby pobrać imiona, nazwiska i miejsce urodzenia, należy użyć następującego zapytania:
| imię | nazwisko | miasto |
|---|---|---|
| Jan | Kowalski | Warszawa |
| Anna | Nowak | Warszawa |
| Robert | Dąbrowski | Tarnów |
| Wojciech | Jaworski | Poznań |
| Agnieszka | Ledwanowska | Bytom |
Powyższy efekt możemy uzyskać także za pomocą aliasów:
