wtorek, 27 września 2016

MySQL PART III: zadania dot. zaawansowanego wyszukiwania informacji



Hejo ponowie,

Tak, jak pisałem wcześniej, zrobiłem sobie zadanko domowe polegające na wyciąganiu informacji z bazy danych zbudowanej z trzech tabel powiązanych ze sobą dwiema relacjami. To, jak rozwiązałem każde z zadań opiszę poniżej. Enjoy!

Lista zadań oraz baza danych została stworzona przez wielokrotnie wspominanego tutaj Mirosława Zelenta.

Lista zadań wyglądała następująco:


A stworzona baza danych, zaimportowana już przeze mnie na mój zdalny serwer na localhost/phpmyadmin/ prezentowała się tak (wybaczcie tylko jeden shot, uznałem, że bez sensu będzie pokazywać zestaw trzech tabel, skoro sami możecie wykonać to ćwiczenie poprzez blog Mirosława :) ):



Okay, zadanie pierwsze i jego rozwiązanie wyglądało następująco: 


Interesowało nas imię i nazwisko klienta, którego numer przypisany przez system do tabeli klienci w bazie danych wynosił 4. Prosta sprawa, myślę, że tego kodu nie muszę tłumaczyć : )

Zadanie drugie i jego rozwiązanie to: 



 Interesowały nas wszelkie informacje zawarte w tabeli auta dot. samochodów z rocznika 2010. Prosta sprawa, jak wyżej :)

Zadanie trzecie i jego rozwiązanie to: 



Interesowały nas wszystkie dane z tabeli auta, które dotyczyły marki Ford. Prościej być nie mogło.

Zadanie czwarte i jego rozwiązanie to: 


Interesowały nasz wszystkie auta, których numer przypisany do tabeli auta (identyfication number) mieścił się w zakresie od 2 do 4. Prosta sprawa, jeśli zna się polecenie BETWEEN. Można było to również zapisać w taki sposób:

SELECT * FROM auta WHERE idauta>=2 AND idauta<=4 

Nadal, opcja BETWEEN jest bardziej seksi ;)

Zadanie piąte i jego rozwiązanie to:



Interesował nas wykaz imienia oraz nazwiska klienta/ów z Katowic mieszkających na ulicy Rolnej. Również fajna sprawa, jeśli pamiętało się o zastosowaniu polecenia LIKE oraz użyło się %% przy nazwie ulicy, które to mówią serwerowi o tym, że przed i po nazwie ulicy może być również tekst :)

Zadanie szóste i jego rozwiązanie to:



Interesowała nas marka, model oraz ubezpieczenie (tak, wiem, że nie ale chciałem poznać jego wartość, meh) auta, którego ubezpieczenie będzie najwyższe. Tutaj oczywiście kłania się sortowanie ORDER BY oraz ustawienie wartości malejącej DESC, jak i limitowanie wyświetlanych wyników do jednego rekordu (tego tłumaczyć już nie muszę, co?)

Zadanie siódme i jego rozwiązanie to:



Interesowała nas informacja o numerze auta, jego modelu, marce oraz dacie wypożyczenia wg. dat. Kod jest logiczny, warto zaznaczyć, iż musieliśmy nakreślić tutaj maszynie pierwszą relację pomiędzy tabelami auta oraz wypozyczenia, a kolumną, jaka stanowiła relację w tych dwóch tabelach to oczywiście idauta :) Szeregowaliśmy otrzymane rekordy rosnąco :)

Zadanie ósme i jego rozwiązanie to:



Interesowali nas klienci z imienia i nazwiska, którzy wypożyczyli kiedykolwiek auto o numerze identyfikacyjnym 1. Warto zaznaczyć, iż 1 jako wartość cyfry stałej INT nie musiałem umieszczać w nawiasie :) Nawiązałem tutaj również dwie relacje, tak, aby maszyna nie zwróciła nam wyników z kosmosu. Jakie to relacje? Przeczytacie sobie z kodu, ruszyć mózgi! : )

Zadanie dziewiąte i jego rozwiązanie to:



Interesowała nas marka, model auta, które było wypożyczone przez klienta o numerze identyfikacyjnym 4. Sprawa ma się podobnie, jak wyżej, nakreślone są obydwie relacje pomiędzy tabelami klienci, a wypożyczenia oraz auta, a wypożyczenia. Prosty ale jakże efektowny kod ^_^

Zadanie dziesiąte, a zarazem ostatnie to:



Interesowała nas marka, model auta, które było wypożyczane kiedykolwiek przez klienta o nazwisku Pastewniak. Sprawa wyglądała podobnie, jak wyżej, ponownie nakreślaliśmy dwie relacje pomiędzy trzema tabelami danych ale uściśliliśmy wynik do tego jednego, konkretnego nazwiska, którego dane były przetrzymywane w tabeli o nazwie klienci :)

I to wszystko : )

Nie będę ukrywać, że obsługa MySQL wchodzi mi do głowy ultra szybko ale myślę, że wynika to ze specyfiki tego programu - komendy wpisuje się praktycznie tak, jakbyśmy pisali po angielsku, a jedyne, co musimy potrafić to dokładne i logiczne zastanowienie się nad stawianymi przez nas pytaniami odnośnie infa, jakie chcemy wyciągnąć : )

Polecam pobawić się samemu, uważam, że to fajny trening dla naszej głowy. W sam raz na tak chłodny wieczór, jak ten dzisiejszy. Kurde, chyba brzmię jak nerd, co nie?

Pozdrawiam cieplutko, kochane mys1e_pys1e <3

F.

Brak komentarzy:

Prześlij komentarz