Mikołaj Mierzejewski
Mikołaj MierzejewskiData Scientist & AI @ Samsung R&D Institute Poland

Dlaczego warto uczyć się SQL?

Sprawdź, do czego przyda Ci się SQL i dowiedz się, jak wielu profesjonalistów go używa.
30.05.20215 min
Dlaczego warto uczyć się SQL?

SQL, czyli Structured Query Language, to język używany przede wszystkim do przeglądania, modyfikacji i zarządzania danymi w relacyjnych bazach danych. Jeśli pracujesz z dużą ilością informacji, których struktura opiera się na wierszach i kolumnach znajdujących się w tabelach, to ucząc się SQLa, prawdopodobnie poczujesz się jak w domu, bo dokładnie tak relacyjne bazy porządkują informacje. Ich prawdziwa moc polega na super efektywnym pobieraniu danych, zwłaszcza w przypadku istnienia wielu różnych, związanych ze sobą tabel. Łączenie ze sobą różnych źródeł danych jest szybkie i intuicyjne.

Technologia obecna w każdej branży, czyli kto używa SQL?

W skrócie - prawie wszyscy. SQL jest wszędzie tam, gdzie praca związana jest z przechowywaniem i przetwarzaniem danych. Począwszy na inżynierach uczenia maszynowego, poprzez specjalistów z branż finansowych, web developerów, a skończywszy na ekspertach wizualizacji danych, czy nawet dziennikarzach. Bazy danych oparte na SQL pozwalają na efektywne tworzenie zapytań i statystyk, a także ułatwiają pracę ze skomplikowanymi, relacyjnymi danymi. Full-stack i backend deweloperzy muszą wiedzieć jak pracować z bazą danych. Tak samo inżynierowie danych (data engineer), specjaliści od Big Data czy machine learningu, eksperci od geoinformatyki czy administratorzy systemów. Ekonomiści, specjaliści od obliczania ryzyka, oraz SEO - nie uciekną od SQLa, gdy tylko przyjdzie zająć się coraz większymi danymi.

SQL to sposób na wiecznie zawieszającego się Excela

W teorii arkusze Excela pomieszczą milion wierszy lub dane wielkości 2GB. W praktyce każdy, kto pracował dłużej z tym programem, wie, że praca w Excelu z danymi większymi niż 50 MB to igranie z losem, a używanie funkcji przy tym rozmiarze danych to gwarantowany restart aplikacji. W takich sytuacjach świetnie sprawdzi się nawet najprostsza baza relacyjna, jak SQLite, która poradzi sobie bez problemu z kilkunastoma gigabajtami danych w jednym pliku. Jak powiedział mi znajomy statystyk: “Przeniosłem moją pracę z Excela na SQL i zmiana jest ogromna - przestałem słyszeć wycie wiatraczka w laptopie”. Liczenie korelacji, regresji i używanie funkcji rangowych z poziomu SQL jest tak łatwe, jak napisanie CORR(Y, X).

SQL jest łatwy w nauce i prosty w użyciu

Chcesz znaleźć tytuły filmów, które weszły na ekrany po 2015 roku? Nic prostszego, piszesz: “SELECT title FROM films WHERE release_year > 2015;”, gdzie “films” to nazwa twojej tabeli, a “title” i “release_year” to odpowiednie kolumny. Potrzebujesz szybko sprawdzić średnią zarobków w zespole? Piszesz: “SELECT AVG(salary) FROM team;”, gdzie AVG() to funkcja zwracająca średnią, “salary” to kolumna wynagrodzeń, a “team” to tabela opisująca zespół. SQL w swojej budowie przypomina język naturalny, którym posługujemy się na co dzień, co znacznie ułatwia jego naukę, debuggowanie i pisanie złożonych zapytań (komend, które po wykonaniu przez bazę zwrócą jakiś jej podzbiór).  

Technologie się zmieniają - SQL nie przemija

Rozwój technologii sprawia, że praca w IT wiąże się z koniecznością ciągłego rozwoju. I bardzo dobrze - problemy, które rozwiązujemy, są coraz bardziej skomplikowane i wymagają nowych narzędzi. I o ile część z nich odchodzi w zapomnienie, jak np. rzadko dziś używany język Perl, tak problem ten nie dotyczy SQLa - technologii obecnej od lat 80., która używana jest codziennie na całym świecie. Wcześniej, do lat 60. dane przechowywano na dużych taśmach magnetycznych - była to wciąż epoka “small data”, a wydobycie konkretnych danych mogło zająć do 4 godzin. Wynalezienie relacyjnych baz danych to wszystko zmieniło. SQL to standard od ponad 40 lat.

Profesjonalni programiści używają SQL

Z ankiety przeprowadzonej przez StackOverflow, jednego z największych portali dla programistów, wynika, że SQL jest czwartym najpopularniejszym językiem, zarówno wśród wszystkich respondentów, jak i doświadczonych, zawodowych programistów.

Prawie 59% pytanych używa go na co dzień w pracy, co dało mu 4 miejsce na 25 wymienionych języków i technologii. Nic dziwnego, bez względu na specjalizację większości programistów przychodzi pracować z danymi a te dane - zazwyczaj przychodzą z bazy SQL.

Podobne dane znajdziemy w tegorocznym raporcie portalu Bulldogjob. Znajomość SQL deklarowało 54% ankietowanych, co dało tej technologii 4. miejsce spośród wszystkich wymienionych w pytaniu.

Bazy oparte o SQL są wśród najczęściej używanych

Bazy oparte na SQL królują wśród najpopularniejszych technologii baz danych, według tej samej ankiety Stack Overflow. Programiści znacznie częściej wybierają np. MySQL, SQL Server lub SQLite niż inne technologie, jak Elasticsearch czy MongoDB, nazwane zbiorczą nazwą NoSQL (Not Only SQL). Prawie 60% pytanych deklaruje pracę z MySQL, 41.2% z SQL Server,  prawie 33% z PostgreSQL.

SQL pomoże szybko zwizualizować dane

Tableau, Qlik, PowerBI - profesjonalne narzędzia do wizualizacji danych są używane przez analityków w większości dużych firm, można je spotkać w NGOsach, a nawet w niektórych redakcyjnych newsroomach. Dzięki zintegrowaniu tych aplikacji z SQLem można dopasować mapy, grafy i wykresy do konkretnych potrzeb, na przykład uwzględnić tylko pewien zakres danych, porównać obserwacje spełniające konkretny warunek, czy wybrać do wizualizacji tylko te rekordy, które zawierają konkretne słowo. SQL sprawdzi się do szybkiego tworzenia prototypów, jak i wielopoziomowych dashboardów. Bez względu na to, czy uważasz, że wykresy kołowe to zbrodnia.

Przyda Ci się, nawet jeśli chcesz korzystać przede wszystkim z dostępnych rozwiązań ORM

ORM, czyli object-relational mapping to sposób na “tłumaczenie” zapytań baz danych na paradygmat programowania obiektowego. Dzięki bibliotekom wykorzystującym ORM można wygodnie używać i komunikować się z bazami danych z poziomu skryptów i programów napisanych w popularnych językach. Często używanym rozwiązaniem dla Pythona jest SQLAlchemy a niektóre frameworki, jak Django, mają tego ORM wbudowane. Po co więc uczyć się SQL, skoro istnieją ORMy? Tak naprawdę warto znać oba. Programiści często zwracają uwagę, że ORM pozwala na szybkie prototypowanie na początku nowego projektu. Ale gdy zapytania stają się coraz bardziej skomplikowane, a przez to wolniejsze - najlepszym wyjściem jest zazwyczaj przepisanie zapytania na SQL, co znacznie poprawia wydajność.

Łatwo znaleźć sposób nauki dla siebie

Ponieważ SQL jest standardem obecnym od tak wielu lat, z pewnością każdy i każda znajdzie dla siebie odpowiednie źródła do nauki. 265 przewodników na temat SQL znalazłem w magazynie jednej z popularnych polskich sieci księgarni (wpisując “sql” w jej wyszukiwarkę). Początkującym polecam na przykład “Praktyczny SQL. Opowiadanie historii poprzez dane. Przewodnik dla początkujących“ Anthonego DeBarros lub “SQL. Praktyczny kurs” Danuty Mendrali. Bardziej zaawansowane osoby i tak skorzystają z dokumentacji, a jeśli czujesz, że najlepiej idzie ci nauka z nauczycielami, to możesz też skorzystać z kursu SQL infoShare Academy.

Absolutnych podstaw SQL nauczysz się w godzinę, a jeśli chcesz poćwiczyć na żywym organizmie, możesz pobrać przeglądarkę baz SQLite i zacząć pisać zapytania już dziś.

Na koniec

W ostatnim odcinku serialu Star Trek: Discovery pojawia się powyższa scena. Okazuje się, że być może jeszcze jednym powodem, aby nauczyć się SQL, jest to, że (wg serialu) jest on nadal używany w XXIII wieku ;)

<p>Loading...</p>