Język SQL jest jedną z podstaw jeśli chodzi o techniczne umiejętności konsultanta. Jeżeli jesteś osobą aspirującą do pracy w tej branży, a głowisz się jakie elementy języka SQL powinien znać Konsultant ERP – odpowiedź znajdziesz w poniższym wpisie.
O tym dlaczego warto uczyć się SQLa oraz jak do tego się zabrać mówiłem w 1 odcinku podcastu. Zapraszam do wysłuchania!
ESENCJA – ZAPYTANIA
W ramach elementarzu każdego konsultanta, jest posługiwanie się zapytaniami do bazy danych systemu z użyciem polecenia SELECT. Jest to pierwsze z czym się spotkasz po rozpoczęciu nauki. Będzie to również najczęściej wykorzystywany przez Ciebie element składni SQLa.
Za pomocą zapytań wykonuje się podstawowe czynności takie jak:
- Analiza problemów zgłaszanych przez klientów – wiele problematycznych sytuacji możemy dostrzec dopiero z poziomu bazy danych.
- Uzyskiwanie danych w celu przedstawienia ich w docelowej formie np. raportu.
PODSTAWY
Budując zapytania korzysta się z różnych elementów składni, które dają określone rezultaty. Pomagają one rozwiązać problem, nad którym się skupiasz. Do najważniejszych i najczęściej wykorzystywanych należą:
- Funkcje agregujące np. SUM, MAX, MIN, COUNT – wyliczenie sumy lub policzenie wystąpień danych wpisów jest bardzo częstą praktyką (szczególnie w raportowaniu). To łączy się z wykorzystaniem klauzuli GROUP BY i często również HAVING – dzięki niej możesz ustalić warunek dla agregowanej wartości.
- LEFT/RIGHT JOIN – złączenie lewo lub prawostronne ma bardzo przydatną funkcję – w momencie gdy do danego zbioru danych nie spełniony jest warunek łączenia przedstawiane są wartości NULL, które można interpretować jako „brak”. Dzięki temu możemy przedstawić np. wszystkie złożone zamówienia, zarówno te które mają, jak i nie mają jeszcze faktury.
- ORDER BY – pozwala na przedstawienie danych w danej kolejności np. alfabetycznej lub rosnącej w zależności od typu kolumny, po której następuje sortowanie.
- CONVERT oraz CAST – za pomocą tych funkcji wbudowanych można przekształcić zwracany typ danych w kolumnie. Przykładowo: jeżeli w kolumnie, która jest ustalona na typ tekstowy (np. NVARCHAR) mamy wartości liczbowe, to bez konwersji nie ma możliwości wykonywania operacji arytmetycznych czy agregujących dla takich wartości.
- Aliasy do kolumn – za pomocą klauzuli AS możemy zmienić nazwę kolumny. Często tabele w bazie mają swoją specyficzną strukturę i nazewnictwo, które nie sprzyja pokazaniu danych użytkownikowi w czytelny dla niego sposób.
- Podzapytania – są to zapytania stosowane w innym zapytaniu SQL. Oznacza się je nawiasami i mogą służyć np. jako kolumna skorelowana z zapytaniem głównym lub jako przetworzony wstępnie zakres danych (wtedy podzapytanie jest swego rodzaju „tabelą”).
- Widoki – pozwalają zapisać dane zapytanie SQL w bazie i odwoływać się do niej jak do każdej innej tabeli.
DLA BARDZIEJ ZAAWANSOWANYCH
Najczęściej wraz ze stażem w firmie rośnie skala problemów, z którymi się zmierzysz. Możesz (ale nie musisz!) spotkać się z bardziej wymagającymi operacjami do wykonania po stronie bazy. Przy tego typu zadaniach pomocne będą takie elementy języka jak:
- INSERT, UPDATE, DELETE – dodawanie, aktualizowanie, usuwanie wpisów z bazy. Najczęściej stosuje się je, gdy w wyniku błędu systemu dane są niepoprawnie zarejestrowanie w bazie. Takie sytuacje niestety się zdarzają, a to wymaga ręcznej korekty z poziomu bazy. Jest to trudna i odpowiedzialna praca. Wymaga ona wiedzy również na temat działania sytemu, by dane poprawnie skorygować.
- PROCEDURY, FUNKCJE – z ich pomocą możesz swój kod zapisać w formie, która pozwoli uruchomić go z użyciem parametrów. Funkcje są stosowane są najczęściej do obliczeń i zwrócenia wyniku, procedury mogą wykonywać skomplikowane operacje, zarówno z zapisywaniem danych lub ich zwracaniem w postaci zapytania. Bardzo często procedury wykonuje do wykonania operacji mających na celu np. eksport danych do określonego formatu.
- FOR XML PATH* – klauzula pozwalająca na zwrócenie wyniku zapytania SQL w formie pliku XML. Przykładowe wykorzystanie opisałem tutaj.
- KURSORY – mają na celu wykonanie kodu w pętli. Stosowane, gdy trzeba wykonać dany fragment skryptu dla pewnego zbioru danych.
- TRIGGERY – inaczej wyzwalacze. Służą do wykonania określonego kodu w zależności do tego, czy do danej tabeli został dodany nowy wpis, nastąpiła jego aktualizacja lub został usunięty.
- Widoki systemowe – zawierają informacje na temat struktury obiektów zawartych w bazie. Przydatne w momencie, gdy chcemy odszukać informacje o danym typie obiektu. Przykładowo: sprawdzić jakie triggery istnieją w całej bazie i z jakimi tabelami są związane.
- LINKED SERVERS, OPENQUERY ,OPENROWSET* – wykorzystywane do wskazania zewnętrznych źródeł danych i operowania na nich.
* wskazane elementy dotyczą środowiska Microsoft SQL Server. Niemniej oczywiście istnieją ich odpowiedniki w zależności od platformy, z którą będziesz miał możliwość pracować.
To wszystko?
Oczywiście to tylko przykładowe elementy języka SQL, które powinien znać Konsultant ERP. Wymieniłem je na podstawie doświadczenia i codziennej praktyki przez lata pracy z SQLem. Nie jest regułą, że będziesz tworzył zaawansowane zapytania i budował skomplikowane procedury. Niemniej warto zwrócić na nie uwagę, bo istnieje prawdopodobieństwo ze zetkniesz się z nimi w swoich codziennych wyzwaniach.
Podobał Ci się ten wpis? Zapraszam do mojej listy mailingowej by otrzymać więcej dodatkowych materiałów oraz być na bieżąco z nowościami!