SPIS TREŚCI
Instrukcja SELECT
Aby pobrać dane zapisane w tabeli należy użyć zapytania SELECT. Jego postać ogólna prezentuje się następująco:
SELECT co_zaprezentować FROM nazwa_tabeli [WHERE warunki_wyszukiwania] [ORDER BY sortowanie [ASC | DESC], ...] [LIMIT [ofset,] ilość_wierszy];
W miejscu co_zaprezentować podaj (po przecinku) listę kolumn, które chcesz zawrzeć w zestawieniu. W miejscu nazwa_tabeli podaj nazwę tabeli, z której pobierzesz dane. Wybierając trzy kolumny do zestawienia z tabeli pracownicy napiszesz następująco:
SELECT imie, nazwisko, placa FROM pracownicy;
Spowoduje to wyświetlenie wszystkich rekordów, jednak w zestawieniu zostaną zaprezentowane jedynie wartości trzech pól: imie, nazwisko i placa:
+------------+--------------+---------+ | imie | nazwisko | placa | +------------+--------------+---------+ | Jan | Kowalski | 1200.00 | | Izabela | Kwiatkowska | NULL | | Aleksander | Borowiecki | 1500.34 | | Aniela | Michałkowska | 854.29 | | Katarzyna | Kowalska | 1200.00 | +------------+--------------+---------+
Aby w zestawieniu umieścić wszystkie pola można użyć w miejscu co_zaprezentować znaku '*’ (gwiazdki):
SELECT * FROM pracownicy;
Zostaną wówczas wyświetlone wszystkie rekordy znajdujące się w tabeli:
+------------+--------------+----------------+---------+ | imie | nazwisko | data_urodzenia | placa | +------------+--------------+----------------+---------+ | Jan | Kowalski | 2002-07-20 | 1200.00 | | Izabela | Kwiatkowska | NULL | NULL | | Aleksander | Borowiecki | 1952-08-06 | 1500.34 | | Aniela | Michałkowska | 1970-05-23 | 854.29 | | Katarzyna | Kowalska | 2002-07-02 | 1200.00 | +------------+--------------+----------------+---------+
Klauzula WHERE
Dzięki klauzuli WHERE jesteś w stanie wpłynąć na zakres prezentowanych danych. Dzięki niej możesz dokładnie definiować co chcesz uzyskać swoim zapytaniem. Specyfikując dokładne warunki wyszukiwania można z tabeli zawierającej setki tysięcy rekordów wybrać tylko kilka interesujących w danym momencie informacji.
Stosując operatory przyrównania możesz dokładnie określić, jakie informacje chcesz pobrać. Dozwolone w MySQL operatory przyrównania to:
= | równe |
> | większe |
>= | większe równe |
< | mniejsze |
<= | mniejsze równe |
<> lub != | różne |
LIKE | służy głównie do porównywania danych łańcuchowych |
Przykłady zastosowania:
Przykład 1
SELECT * FROM pracownicy WHERE placa >= 1000;
Spowoduje wyświetlenie listy pracowników, których płaca jest większa lub równa 1000:
+------------+------------+----------------+---------+ | imie | nazwisko | data_urodzenia | placa | +------------+------------+----------------+---------+ | Jan | Kowalski | 2002-07-20 | 1200.00 | | Aleksander | Borowiecki | 1952-08-06 | 1500.34 | +------------+------------+----------------+---------+
Przykład 2
SELECT imie, nazwisko, placa FROM pracownicy WHERE nazwisko = 'Kowalski';
Spowoduje wyświetlenie danych (tylko imię, nazwisko i placa) wszystkich pracowników, których nazwisko brzmi dokładnie Kowalski:
+------+----------+--------------------+ | imie | nazwisko | placa | +------+----------+--------------------+ | Jan | Kowalski | 1200.00 | +------+----------+--------------------+
Przykład 3
SELECT * FROM pracownicy WHERE nazwisko LIKE 'K%';
Spowoduje wyświetlenie wszystkich pracowników, których nazwisko rozpoczyna się na literę 'K’:
+-----------+-------------+----------------+--------------------+---------+ | imie | nazwisko | data_urodzenia | adres | placa | +-----------+-------------+----------------+--------------------+---------+ | Jan | Kowalski | 2002-07-20 | Kwiatowa 8, Poznań | 1200.00 | | Izabela | Kwiatkowska | NULL | NULL | NULL | | Katarzyna | Kowalska | 2002-07-02 | NULL | 1200.00 | +-----------+-------------+----------------+--------------------+---------+
Przykład 4
Zapytanie:
SELECT imie, nazwisko FROM pracownicy WHERE nazwisko LIKE 'Kowalsk_';
spowoduje wyświetlenie wszystkich pracowników, których nazwisko zaczyna się ciągiem znaków 'Kowalsk’ i zaraz po nim występuje jeden dowolny znak:
+-----------+----------+ | imie | nazwisko | +-----------+----------+ | Jan | Kowalski | | Katarzyna | Kowalska | +-----------+----------+
W momencie zastosowania operatora AND wszystkie połączone tak warunki muszą zostać spełnione, aby w wyniku pojawił się dany rekord. Jeśli zastosujesz do połączenia warunków operator OR – wówczas może zostać spełniony tylko jeden z warunków wchodzących w skład zapytania.
Przykład 5
Wydając zapytanie:
SELECT * FROM pracownicy WHERE (placa > 500 AND placa < 1000) OR nazwisko = 'Kowalski';
spowodujesz wyświetlenie w wyniku wszystkich pracowników, których płaca mieści się w zakresie 500-1000 oraz pracowników o nazwisku 'Kowalski’:
+--------+--------------+----------------+---------+ | imie | nazwisko | data_urodzenia | placa | +--------+--------------+----------------+---------+ | Jan | Kowalski | 2002-07-20 | 1200.00 | | Aniela | Michałkowska | 1970-05-23 | 854.29 | +--------+--------------+----------------+---------+
Przykład 6
Chcąc więc uszeregować listę pracowników rosnąco według nazwiska i malejąco według płacy wpiszesz następujące polecenie:
SELECT * FROM pracownicy ORDER BY nazwisko ASC, placa DESC;
ASC oznacza sortowanie rosnąco według podanego pola, DESC natomiast oznacza sortowanie malejące:
+------------+--------------+----------------+---------+ | imie | nazwisko | data_urodzenia | placa | +------------+--------------+----------------+---------+ | Aleksander | Borowiecki | 1952-08-06 | 1500.34 | | Katarzyna | Kowalska | 2002-07-02 | 1200.00 | | Jan | Kowalski | 2002-07-20 | 1200.00 | | Izabela | Kwiatkowska | NULL | NULL | | Aniela | Michałkowska | 1970-05-23 | 854.29 | +------------+--------------+----------------+---------+
Przykład 7
Aby pobrać dwa pierwsze rekordy napisz:
SELECT * FROM pracownicy LIMIT 2;
W wyniku otrzymasz:
+---------+-------------+----------------+---------+ | imie | nazwisko | data_urodzenia | placa | +---------+-------------+----------------+---------+ | Jan | Kowalski | 2002-07-20 | 1200.00 | | Izabela | Kwiatkowska | NULL | NULL | +---------+-------------+----------------+---------+
Przykład 8
Chcąc pobrać rekordy od 3 do 7 napisz następująco:
SELECT * FROM pracownicy LIMIT 2, 5;
Spowoduje to wyświetlenie pięciu rekordów (o ile tyle istnieje w bazie) poczynając od rekordu trzeciego:
+------------+--------------+----------------+---------+ | imie | nazwisko | data_urodzenia | placa | +------------+--------------+----------------+---------+ | Aleksander | Borowiecki | 1952-08-06 | 1500.34 | | Aniela | Michałkowska | 1970-05-23 | 854.29 | | Katarzyna | Kowalska | 2002-07-02 | 1200.00 | +------------+--------------+----------------+---------+
Przykład 9
MySQL pozwala na połączenie ze sobą wielu opcji, dzięki którym można bardzo dokładnie zawęzić poszukiwaną ilość informacji. Przykład bardziej złożonego zapytania można przedstawić następująco:
SELECT imie, nazwisko, placa FROM pracownicy WHERE placa >= 500 AND placa < 1200 ORDER BY nazwisko LIMIT 5;
Powyższe zapytanie spowoduje wygenerowanie następującego zestawienia:
+--------+--------------+--------+ | imie | nazwisko | placa | +--------+--------------+--------+ | Aniela | Michałkowska | 854.29 | +--------+--------------+--------+
Jak widać połączono w tym momencie warunek wyboru według płacy pomiędzy 500 a 1200 z sortowaniem danych według nazwiska i ograniczeniem wyniku tylko do pięciu pierwszych rekordów.
Hosting stworzony dla WordPressa
Masz stronę WWW na WordPressie? My też uwielbiamy ten system dla stron internetowych. Dlatego stworzyliśmy hosting specjalnie dla jego użytkowników.