MySQL – Praca na danych – filtrowanie

Poniższy artykuł to kontynuacja wpisu o operacjach wykonywanych na bazach danych, w pierwszej części opisaliśmy: podstawowe polecenia mysql , w dzisiejszy artykule opiszemy sposoby filtrowania danych w bazie.

Na początku przypomnijmy sobie strukturę naszej bazy danych, wyświetlmy znajdujące się w niej tabele:

show tables;

Aby wyświetlić zawartość tabel w konsoli wpiszemy polecenie:

select * from dzialy;

 

select * from pracownicy;

Pierwszym ćwiczeniem z jakim przyjdzie się nam zmierzyć to wyświetlenie z tabeli pracownicy wszystkich kobiet, warto zauważyć, że  nie mamy pola płeć. Jak tego dokonać? W większości wszystkie imiona żeńskie kończą się na literę „a” .

Polecenie like

select imie, nazwisko from pracownicy where imie like ‚%a’;

Już tłumaczę co oznacza nasze zapytanie:

select imie, nazwisko – wyświetl imię nazwisko;

skąd wyciągamy? z tabeli pracownicy ;

where – warunek (i teraz jaki warunek? na pewno będziemy porównywać pole imie, where imie równa się? nie nie chcemy porównywać dokładnie imion ale chcemy je dopasować,

dopasowanie to właśnie like – czyli imie jest jak i tu podajemy wzorzec w naszym przypadku to dowolne litery (wieloznacznik) w mysql za tą wartość odpowiada znak procenta – zastępuje on dowolną liczbę liter. Procent odpowiada za dowolną liczbę liter jednak na końcu zawsze jest litera „a”.

Wykonanie powyższego zapytania zwróci nam następujący wynik:

Jeżeli chcielibyśmy wyciągnąć dane Pań których imię zaczyna się na „G” i kończy na „A” modyfikujemy zapytanie:

select imie, nazwisko from pracownicy where imie like ‚g%a’;

Between – polecenie służące do wyjmowania wyników z pomiędzy dwóch zakresów

Jako że wszystko najlepiej wytłumaczyć na przykładzie to: otrzymaliśmy zadanie wyselekcjonowania tych pracowników, którzy zarabiają pomiędzy 1600 a 3000 tysiące zł
Można to zrobić na dwa sposoby pierwszy:

select * from pracownicy where zarobki > 1500 and zarobki < 3000;

jednak prościej można to zapisać za pomocą polecenia between

select * from pracownicy where zarobki between 1600 and 3000;

Zapytanie zwróciło dokładnie taki sam wynik.

Skoro tak dobrze nam idzie, wykonajmy kolejny przykład

Szef podał nam numery ID 3 pracowników (powiedzmy:1, 4, 5 ) których dane mamy wyciągnąć z bazy, również to zadanie można wykonać na dwa sposoby:

select * from pracownicy where id=1 or id=4 or id=5;

select *from pracownicy where id in (1,4,5);


in możemy przetłumaczyć na: gdzie id zawiera się w (1, 4, 5)

Gdybyśmy mieli wyciągnąć przykładowo 100 takich osób musielibyśmy 100 razy powtórzyć warunek or, natomiast dzięki parametrowi in wypisalibyśmy tylko interesujące nas numery.

Gotowy plik do pobrania i zaimportowania bazy na którym wykonywaliśmy ćwiczenia znajduje się tutaj

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *