Jak i po co uczyć się SQL? Czym jest język SQL? Czy warto uczyć się SQL w pierwszej kolejności?

20.02.2022

Ciężko sobie wyobrazić, że coś może nam przynieść dużo korzyści w stosunkowo szybkim czasie. Warto zauważyć, że w moim przypadku tak było z SQL’em. Jak i po co uczyć się SQL? Czy SQL jest dla Ciebie? 

Sprawę prawdopodobnie Ci wyjaśnię w moim krótkim filmiku.

Skąd pomysł na wpis - jak i po co się uczyć SQL?

Zaczynając, temat na dzisiejszy wpis powstał na jednym z ostatnich wietrznych spacerów z psem, podczas którego wpadło mi do głowy ciekawe pytanie: 

“Co dało mi najwięcej, w najkrótszym czasie.” 

Nie, nikt nie pytał…, Tak po prostu, rzuciłem sobie hasło i postanowiłem sobie na nie odpowiedzieć. Nie trwało to długo. Odpowiedź przyszła jakby z automatu… SQL

Po co uczyć SQL? 

Po pierwsze język ten prawdopodobnie zmienił mój sposób pracy. Nauczyłem się ściągać wybrane dane szybciej, bez żmudnego wyszukiwania danych z różnych programów za każdym razem Niewątpliwie, dał również dużo satysfakcji, dzięki któremu rozwiązałem mnóstwo problemów ad-hock, w rezultacie przyspieszając pracę innym. Wygląda na naukę w stylu: win-win.

Jak zacząć pracę z językiem i jak się uczyć SQL?

Tak jak wspomniałem w moim filmowym wstępie, SQL wymaga bazy danych. W środowisku biznesowym są to przede wszystkim serwery w chmurze, fizycznym serwerze, czy w programach jak na przykład Microsft Access.

Istotnie ilość możliwości jest całkiem spora. Choć problem się robi z udostępnieniem tego użytkownikowi. Wydaje się, że  najłatwiej przy braku możliwości ćwiczyć SQL’a niczym główna bohaterka serialu “Gambit Królowej”, najprościej w głowie. Tak w skrócie wyglądały moje pierwsze kroki z SQL’em. Nie miałem dostępu do żadnego serwera.  Tobie daję tą możliwość. W podsumowaniu, wrzucam stronę szkoleniową, która pozwala popraktykować na prostym serwerze.

SQL, nauka w głowie, gambit królowej, sztuka analitycznej perfekcji, nauka SQL na przykładach, realne bazy w sql, ćwiczenia z SQL na prostych przykładach, jak się nauczyć sql?

Teoria i praktyka języka bazodanowego SQL

Jest wiele platform do obsługi tego języka i wiele odnóg, które nieznacznie się od siebie różnią. Moim dzisiejszym zadaniem jest nauczenie Cię podstawowego schematu w SQL’u na przykładach! Jak zatem zacząć swoją przygodę z SQL? Oczywiście na przykładach!

Zacznijmy od podstawowej linijki kodu.

Podstawowa składnia SQL to:

Select * from nazwa_tabeli

gdzie: 

Select – z angielskiego “wybierz” – słowo otwierające każde zapytanie (kwerendę

* – oznacza wszystkie elementy danego zbioru, docelowo będziemy zastępować konkretnymi kolumnami

from nazwa_tabeli – pobierz z/skąd i definiujemy naszą bazę z której chcemy pobrać nasze dane.

Prosty przykład użycia SQL

Zacznijmy od zadania praktycznego.

Pracujemy w firmie, która zajmuję sprzedażą jedzenia dla zwierząt. Załóżmy, że mamy bazę o nazwie: Spis_transakcji (zdjęcie poniżej), z której chcemy pobrać wszystkie dane. Robiąc to przy pomocy SQL, wyglądałoby to mniej prawdopodobnie tak:

Select * from spis_transakcji

i otrzymujemy naszą bazę:

Baza transakcji sklepowej. Wstęp do SQL na przykładzie prostej bazy danych, prosta baza sql na przykładzie, dodawanie bazy danych w sql, praca na kwerendach sql, czym jest kwerenda? Po co tworzymy kwerendy? Jak przyspieszyć ściąganie danych do Excela? Co moge zrobić aby ściągać dane szybciej?

W powyższej bazie w wyniku mamy 11 kolumn, i 10 wirtualnych transakcji. Podczas pracy z SQL głównie chodzi o to, aby zaczytywać tylko to czego aktualnie potrzebujemy. Ze względu na obciążenie pliku, który byśmy generowali kwerenda: “Select * from spis_transakcji” jest nieefektywna, bez wątpienia nie powinna być przez nas zbyt często stosowana. Dlaczego? Po to, aby nie zaciągać całej bazy za każdym razem. Ze względu na to, że nasze bazy mogą zawierać nawet kilka milionów rekordów ściąganie za każdym razem całej bazy nie będzie optymalnym sposobem pracy z danymi. 

Reasumując, wybierając najbardziej leniwy sposób będziemy ściągać gigantyczne pliki prawdopodobnie w dłuższym czasie. Nie o to w tym chodzi.

No więc jak uczyć się SQL?

Warto ograniczać bazy, na początku nawet wyświetlając nie wszystkie wyniki naszych kwerend. Poniżej zaprezentuję przykład, w wyniku, którego wyświetlimy tylko 3 pierwsze wiersze.

Select * from spis_transakcji

limit 3

Select * from limit 3. Ograniczenia w SQL

Select konkretny element, czyli pobieramy z SQL to co chcemy

Pracując w SQL jeszcze bardziej chodzi o ograniczanie elementów. W tym celu maksymalnie zmniejszamy ilość pobieranych informacji. W przeciwieństwie do Excela, gdzie lubimy widzieć gigantyczny zbiór, w tym języku chodzi o to, aby ten zbiór był jak najmniejszy.

Jeżeli byśmy chcieli zobaczyć wybrane produkty sprzedane w grupie, wyświetlić cenę zakupu i cenę sprzedaży i ilość. Wystarczyło by napisać:

Select Produkt, Grupa, Cena_Zakupu, Cena_Sprzedazy, Ilość from spis_transakcji

limit 5

gdzie: 

Produkt, Grupa, (…) to nazwy kolumn naszej tabeli

 

W następstwie otrzymujemy: 

ograniczenie odczytu bazy danych, Przykłady prostych kwerend, prosta baza danych, jak nauczyć się programu? Jak rozwinąć jakieś umiejętności? Jakie umiejętności do rozmowy o pracę?

Ćwiczenie

Załóżmy, że chcesz wiedzieć, który Klient, z którego Regionu i jaki Produkt zamówił i jaka była Cena_Sprzedazy tego produktu. Pozostałe informację Cię nie interesują!

Jakbyś to zrobił/a?

Rozwiązanie

Select Klient, Region, Produkt, Cena_Sprzedazy from spis_transakcji

limit 5

jak zacząć pracę z SQL, baza klientów w SQL, jak zaciągnąć kwerendę w SQL, Czym jest kwerenda w SQL? SQL podstawy

Jak wprowadzić warunki w SQL

Po wstępie, w których zapoznałeś się z podstawową strukturą pobierania danych, czuję, że możemy pójść krok dalej. Zaczniemy pobierać wybrane informację po zdefiniowaniu konkretnych warunków. Do tego służy słowo WHERE, z angielskiego “gdzie” i tak wpisując np. 

Select Klient, Region, Produkt, Cena_Sprzedazy from spis_transakcji

where Klient=’Klient2′

i otrzymujemy taką bazę:

wykaz transakcji jednego klienta

W której wybraliśmy dane tylko dla jednego konkretnego klienta. Załóżmy, że chcielibyśmy ściągnąć dane dla dwóch klientów (Klient1 i Klient2) moglibyśmy użyć warunku logicznego, w tym wypadku używając słowa OR (z angielskiego “LUB”) lub zagnieździć informację w grupie przy pomocy słowa IN ( z angielskiego “W”).

Rozwiązanie 1

Select Klient, Region, Produkt, Cena_Sprzedazy from spis_transakcji

where Klient=’Klient2′ or Klient=’Klient1′

Rozwiązanie 2

Select Klient, Region, Produkt, Cena_Sprzedazy from spis_transakcji

where Klient in (‘Klient2’,‘Klient1’)

Niezależnie od wyboru, w wyniku otrzymalibyśmy:

Więcej warunków przy wprowadzeniu zapytania w SQL

Powyżej wykonaliśmy operację dla jednej kolumny. Zaletą SQL jest to, że możemy również łączyć i mieszać warunki.

Załóżmy, że chcieliśmy otrzymać tabelę ze wszystkimi produktami, cenami sprzedaży i ilości,  dla dostawcy “Twój Pies”, w których cena sprzedaży była wyższa od 1000 zł.

Kwerenda dla tego zapytania wyglądała by mniej więcej tak:

 

Select Dostawca, Produkt, Cena_Sprzedazy, Ilość from spis_transakcji

where Dostawca=’Twój Pies’ and Cena_Sprzedazy>1000

Wynik zapytania byłby następujący:

Dlaczego używamy SQL ?

Wstępnie podsumowując, SQL specjalnie niczym się nie różni od “bazy danych” używanej w zwykłym Excelu. Jak może zauważyłeś, wszystkie te operacje, które wprowadzaliśmy polegały na wyborze konkretnych danych i zastosowaniu filtrów. Kiedy mamy małe bazy, trzymane chociażby w Excelu, operacje na nich są bardzo proste. 

Jednak prawdopodobnie schody się robią, kiedy mamy kilkanaście niepotrzebnych kolumn i kilkadziesiąt tysięcy wierszy. Niewątpliwie, wtedy Excel staje się naszym największym wrogiem. W wyniku, coś, co było proste staje się przekleństwem. W rezultacie program może się przywiesić. Uwierz mi, że w przypadku dużego pliku, zakładanie filtra na wybrane dane i kopiowanie ich w Excelu, to istne piekło. To właśnie po to zaczynamy się uczyć SQL.

W tym celu dane ładujemy do baz, z których każdy sobie może wygodnie zaciągnąć, tylko to co faktycznie chce i czego potrzebuję. W efekcie, w trakcie odświeżania danych możesz iść zrobić sobie pyszną kawę.

 

SQL case biznesowy - zrób to sam

Załóżmy, że jesteś analitykiem w firmie zajmującej się sprzedażą w czterech regionach Polski (W,Z,P,PP). Twoim początkowym zadaniem jest nauczyć się i opanować SQL. 

W pierwszym tygodniu pracy dostajesz polecenie zapoznania się z bazą sumującą transakcje o nazwie Transakcje_Regiony za lata 2019-2021. Dostajesz do rozwiązania 3 zadania: 

a) W związku z tym, wyciągnij wszystkie transakcje z miesięcy wakacyjnych (lipiec-sierpień), pomiń kolumnę Region. 

b) Załóżmy, że zostajesz poproszony o przygotowanie transakcji powyżej 150 000, za rok 2019 dla Regionu Wschodniego (W). Pomiń w prezentacji kolumnę Region i Rok. Tylko Miesiąc i Wartość.

c) Kończąc, przygotuj raport transakcji z kwartału 3 za rok 2020 dla Regionu Południowego (PP).

ROZWIĄZANIA ZNAJDZIESZ NA SAMYM KOŃCU STRONY

Baza Transakcje_Regiony wygląda nastepująco:

raport_handlowy

Podsumowanie - jak i po co uczyć się SQL i co dalej?

Na zakończenie, w artykule zaprezentowałem wstęp do SQL’u. Prawdopodobnie brakowało Ci czegoś. To bardzo dobrze. W powyższym artykule po krótkim wstępie, zaprezentowałem Ci tylko możliwość odczytu danych ze względu na zdefiniowane przez nas warunki. Mam nadzieję, że nie było to dla Ciebie zbyt trudne. Moim celem nie było Cię zamęczyć. Pierwsze nauki prawdopodobnie nie powinny być zbyt długie, w przypadku tematów zupełnie nowych. W rezultacie spędziłeś nad tym pewnie maksymalnie tylko kilkanaście minut.Mając jednak na uwadze rosnącą liczbę danych, znaczenie języka SQL prawdopodobnie z roku na rok rośnie, co niewątpliwie widać w liczbie ofert pracy.Wracając, to czego Ci nie pokazałem, a prawdopodobnie dobrze gdybyś znał na poziomie podstawowym to składnia grupująca, która jest niewątpliwą siłą SQL’a. Mając to na uwadze, pojawi się to u mnie na blogu, jednak trochę później.  Jeżeli jednak połknąłeś/ełaś haczyk i nie chcesz czekać, to z tematów niezbędnych do zgłębiania warto zaznajomić się ze składnią:
  • Group by – grupowanie elementów
  • Sum, count, min, max, avg –  pozwalające na proste kalkulacje
  • poznanie dalszych operatorów logicznych jak np. between, like, rozbudowane kwerendy z OR i AND z nawiasami etc.
  • Join’y – łączenie kilku tabel
Polecam do tego stronę: https://www.w3schools.com/sql/
Poniżej prezentuję jeszcze rozwiązania Casa Biznesowego.Mam nadzieję, że odpowiedziałem Tobie na pytanie: “Jak i Po co uczyć się SQL?”. Na zakończenie, dziękuję Ci za Twój poświęcony czas. Jeżeli coś byłoby dla Ciebie niezrozumiałego po prostu napisz do mnie.Pozdrawiam,Mariusz

Rozwiązania Case Bizesowy

a) W związku z tym, wyciągnij wszystkie transakcje z miesięcy wakacyjnych (lipiec-sierpień), pomiń kolumnę Region. 

Select Miesiąc, Rok, Wartość

from Transakcje_Regiony

where Miesiąc >= 7 And Miesiąc <= 8

lub

Select Miesiąc, Rok, Wartość

from Transakcje_Regiony

where Miesiąc in (‘7′,’8’)

Prezentacja rezultatu: 

wykaz_transakcj, sql, warunki większe mniejsze
b) Załóżmy, że zostajesz poproszony o przygotowanie transakcji powyżej 150 000, za rok 2019 dla Regionu Wschodniego (W). Pomiń w prezentacji kolumnę Region i Rok. Tylko Miesiąc i Wartość.

Select Miesiąc, Wartość

from Transakcje_Regiony

where Region = ‘W’ and Rok=2019 and Wartość > 150000

Prezentacja rezultatu: 

SQL transakcje rok 2019
c) Kończąc, przygotuj raport transakcji z kwartału 3 za rok 2020 dla Regionu Południowego (PP).
 

Select Rok, Miesiąc, Region, Wartość

from Transakcje_Regiony

where Miesiąc >= 7 and Miesiąc <=9 and Rok = 2020 and Region = ‘PP’

Prezentacja rezultatu: 

Transakcje za trzeci kwartał dla danego regionu

Jeżeli się podobało zapraszam do mojej społeczności: