Lekcje >> Podstawy MySQL
Polimax

Drukarnia w Warszawie realizująca druk wizytówek, plakatów jak również fotoksiążki, fotoobrazy i fotokalendarze - z wysyłką na terenie całego kraju.

Wyszukiwanie według określonych kryteriów

Podczas poprzednich zajęć wyszukiwaliśmy dane zawarte we wskazanych kolumnach, wskazanej tabeli. Wynikiem były wszystkie rekordy wskazywanych kolumn. Możemy zawęzić wyszukiwanie tylko do rekordów, spełniajacych zdefiniowane przez nas warunki. W tym celu stosuje się klauzulę WHERE - określa ona kryteria, które są podstawą wyszukiwania.

Ćwiczenie 4_2_1_1. Wyszukanie we wskazanej tabeli, wierszy wskazanych kolumn. Wiersze mają spełniać kryteria, zdefiniowane poprzez zastosowanie operatora równości "="

Sprawdź w tabeli pokazującej operatory porównań

Na początku bardzo ważna uwaga. Ponieważ będziemy w niedalekiej już przyszłości stosować PHP do obsługi MySQL, należy rozróżnić znak "równy" stosowany w PHP == (podwójny znak "równa się") oraz znak "równy" w MySQL = (pojednynczy znak).

Zadanie polega na wyszukaniu w tabeli zamowienia wszystkich pól tych wierszy, których klient_id ma wartość równą 5. W tym celu należy zastosować następujący kod SQL:

SELECT *
FROM zamowienia
WHERE klient_id=5;
Wyszukanie w tabeli zamowienia wszystkich pól tych wierszy, których klient_id ma wartość równą 5.
Rysunek 4_2_1_1. Wyszukanie w tabeli zamowienia wszystkich pól tych wierszy, których klient_id ma wartość równą 5.
Tabela zamowienia z danymi
Rysunek 4_2_1_2. Tabela zamowienia z danymi

Porównaj obie tabele i sprawdź, czy wynik wyszukiwania jest poprawny.

Ćwiczenie 4_2_1_2. Wyszukanie przy zastosowaniu kilku operatorów porównań

Sprawdź w tabeli pokazującej operatory porównań

Zadanie jest rozszerzeniem poprzedniego ćwiczenia. Wyszukujemy w tabeli zamowienia wszystkie pola tych wierszy, których klient_id ma wartość równą 5 lub wartość 7. W tym celu należy zastosować następujący kod SQL:

SELECT *
FROM zamowienia
WHERE klient_id=5 OR klient_id=7;
Wyszukanie przy zastosowaniu kilku operatorów porównań
Rysunek 4_2_1_3. Wyszukiwanie w tabeli zamowienia wszystkich pól tych wierszy, których klient_id ma wartość równą 5 lub wartość równą 7

Zastosowanie operatora logicznego OR (logiczne lub, suma logiczna) spowodowało dodatkowe wyświetlenie tych wierszy, których klient_id ma wartość równą 7.

Operatory porównania, stosowane w klauzuli WHERE

W poprzednim ćwiczeniu zastosowaliśmy operator = w połączeniu z operatorem logicznym OR. Poniższa tabela zawiera zestawienie operatorów porównania, najczęściej stosowanych w klauzuli WHERE

Tabela 4_2_1_1. Operatory porównania, najczęściej stosowane w klauzuli WHERE
Nr ćwiczenia Operator Nazwa, jeżeli jest stosowana Przykład Opis
4_2_1_1, 4_2_1_2 = równy klient_id=5 sprawdza, czy obie wartości są sobie równe
4_2_1_3 > większy od wartosc>70.00 sprawdza, czy pierwsza wartość, jest większa od drugiej
4_2_1_4 < mniejszy od wartosc<70.00 sprawdza, czy pierwsza wartość, jest mniejsza od drugiej
4_2_1_5 >= większy lub równy wartosc>=66.30 sprawdza, czy pierwsza wartość, jest większa lub równa drugiej
4_2_1_6 <= mniejszy lub równy wartosc<=66.30 sprawdza, czy pierwsza wartość, jest mniejsza lub równa drugiej
4_2_1_7 != lub <> różny wartosc !=66.30 sprawdza, czy dwie wartości są różne
4_2_1_8 IS NOT NULL adres IS NOT NULL sprawdza, czy pole posiada wartość
4_2_1_9 IS NULL adres IS NULL sprawdza, czy pole jest puste
4_2_1_10 BETWEEN cena BETWEEN 25.30 AND 90.20 Sprawdza czy wartość należy do podanego przedziału wartości
4_2_1_11 IN miejscowosc IN('Krasnystaw', 'Warszawa') sprawdza, czy wartość należy do podanego zbioru wartości
4_2_1_12 NOT NOT IN miejscowosc NOT IN('Krasnystaw', 'Warszawa') sprawdza, czy wartość nie należy do podanego zbioru wartości
4_2_1_13 LIKE wyszukiwanie wzorca nazwisko LIKE 'Józef %' sprawdza, czy wartość pasuje do określonego wzorca
4_2_1_14 NOT LIKE wyszukiwanie wzorca nazwisko NOT LIKE 'Józef %' sprawdza, czy wartość nie pasuje do określonego wzorca
- REGEXP wyrażenie regularne nazwisko REGEXP '^Na.*' sprawdza, czy wartość pasuje do określonego wyrażenia regularnego. Nie znamy teorii wyrażeń regularnych, więc tego operatora nie będziemy stosować

Operatory pokazane w powyższej tabeli zastosujmy w praktyce.

Ćwiczenie 4_2_1_3

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT wartosc, data
FROM zamowienia
WHERE wartosc>70.00;
Testy klauzuli WHERE - operator >
Rysunek 4_2_1_3. Testy klauzuli WHERE - operator >

Ćwiczenie 4_2_1_4

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT wartosc, data
FROM zamowienia
WHERE wartosc<70.00;
Testy klauzuli WHERE - operator <
Rysunek 4_2_1_4. Testy klauzuli WHERE - operator <

Ćwiczenie 4_2_1_5

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT wartosc, data
FROM zamowienia
WHERE wartosc>=66.30;
Testy klauzuli WHERE - operator >=
Rysunek 4_2_1_5. Testy klauzuli WHERE - operator >=

Ćwiczenie 4_2_1_6

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT wartosc, data
FROM zamowienia
WHERE wartosc<=66.30;
Testy klauzuli WHERE - operator <=
Rysunek 4_2_1_6. Testy klauzuli WHERE - operator <=

Ćwiczenie 4_2_1_7

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT wartosc, data
FROM zamowienia
WHERE wartosc!=66.30;
Testy klauzuli WHERE - operator !=
Rysunek 4_2_1_7. Testy klauzuli WHERE - operator !=

Ćwiczenie 4_2_1_8

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT nazwisko, adres
FROM klienci
WHERE adres IS NOT NULL;
Testy klauzuli WHERE - operator IS NOT NULL
Rysunek 4_2_1_8. Testy klauzuli WHERE - operator IS NOT NULL

Ćwiczenie 4_2_1_9

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT nazwisko, adres
FROM klienci
WHERE adres IS NULL;
Testy klauzuli WHERE - operator IS NULL
Rysunek 4_2_1_9. Testy klauzuli WHERE - operator IS NULL

Ćwiczenie 4_2_1_10

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT tytul, cena
FROM ksiazki
WHERE cena BETWEEN 25.30 AND 90.20;
Testy klauzuli WHERE - operator BETWEEN
Rysunek 4_2_1_10. Testy klauzuli WHERE - operator BETWEEN

Ćwiczenie 4_2_1_11

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT nazwisko, adres, miejscowosc
FROM klienci
WHERE miejscowosc IN('Krasnystaw', 'Warszawa');
Testy klauzuli WHERE - operator IN
Rysunek 4_2_1_11. Testy klauzuli WHERE - operator IN

Ćwiczenie 4_2_1_12

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT nazwisko, adres, miejscowosc
FROM klienci
WHERE miejscowosc NOT IN('Krasnystaw', 'Warszawa');
Testy klauzuli WHERE - operator NOT IN
Rysunek 4_2_1_12. Testy klauzuli WHERE - operator NOT IN

Ćwiczenie 4_2_1_13

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT nazwisko, adres, miejscowosc
FROM klienci
WHERE nazwisko LIKE 'Józef %';
Testy klauzuli WHERE - operator LIKE
Rysunek 4_2_1_13. Testy klauzuli WHERE - operator LIKE

Ćwiczenie 4_2_1_14

Sprawdź w tabeli pokazującej operatory porównań

Zastosuj następujący kod SQL:

SELECT nazwisko, adres, miejscowosc
FROM klienci
WHERE nazwisko NOT LIKE 'Józef %';
Testy klauzuli WHERE - operator NOT LIKE
Rysunek 4_2_1_14. Testy klauzuli WHERE - operator NOT LIKE