Nasza strona używa cookies. Dowiedz się więcej o celu ich używania i zmianie ustawień w przeglądarce. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Wprowadzenie do podstaw SQL-a

Randy Macaraeg Data Scientist / Analyst / Metis
Naucz się pisać proste zapytania za pomocą SQL-a.
Wprowadzenie do podstaw SQL-a

Podczas nauki data science w Metisie, jedną z rzeczy, których musieliśmy się nauczyć, był Structured Query Language (SQL). SQL był dla mnie czymś nowym, więc poświęciłem trochę czasu, aby go poznać i zrozumieć, jak działa.

Postanowiłem stworzyć przewodnik, który będzie zawierał wszystkie podstawy języka SQL, abym mógł do niego wracać w trakcie mojej nauki o danych. Mam nadzieję, że Tobie również pomoże. Kod źródłowy do tutorialu znajdziesz na moim GitHubie.

W tym artykule przejdziemy przez następujące zagadnienia:

  1. Podstawowe zapytania.
  2. Filtrowanie (klauzula where).
  3. Wiele warunków
  4. Sortowanie wartości.
  5. Unikalne wartości.
  6. Funkcje agregacji.
  7. Grupowanie według.



Dane

Do tych przykładów użyję bazy danych Chinook z samouczka SQLite.

Baza danych Chinook w całej okazałości

Patrząc na bazę danych Chinook, nazwy na górze każdej tabeli są wyświetlane na ciemnoniebieskim tle (media_types, playlists, employees itp.).

W każdej tabeli znajdują się kolumny, takie jak ArtistId, Name, Title, InvoiceDate itd. Aby uzyskać dostęp do informacji w każdej z tych tabel, wykorzystujemy SQL.


Podstawowe zapytania

Zacznijmy od prostych rzeczy. Aby pobrać wszystkie kolumny i wiersze z tabeli (użyjmy tabeli utworów), użyjemy:

SELECT * 
FROM tracks;


To zwróci 3503 wierszy danych z 9 kolumnami.

Normalnie nie chcielibyśmy widzieć wszystkich danych w tabeli w ten sposób i moglibyśmy użyć tego do szybkiego sprawdzenia kilku wierszy, upewniając się, że nic dziwnego się nie dzieje:

SELECT * 
FROM tracks 
LIMIT 10;


To zapytanie działa tak samo, jak to powyżej, ale tym razem ogranicza wyniki do pierwszych 10 wierszy/wyników.


Filtrowanie (klauzula where)

Możemy wejść nieco głębiej w nasze zapytania za pomocą filtrowania.

Korzystając z tej samej tabeli, wyobraź sobie, że chcieliśmy sprawdzić, jaka jest 222. piosenka na liście.

Aby to zrobić, użylibyśmy klauzuli WHERE:

SELECT name, composer
FROM tracks
WHERE trackid = 222;


Spowoduje to wyświetlenie Vida Boa od Fausto Nilo-Armandinho.

Idąc o krok dalej, możemy użyć wielu operatorów w klauzuli WHERE, aby znaleźć wiersze danych pasujące do tego, co chcemy otrzymać:

SELECT * 
FROM tracks
WHERE milliseconds>300000 
  AND bytes<5000000;


Spowoduje to wyświetlenie trzech utworów, które pasują do obu filtrów. Dzięki klauzuli WHERE możemy znaleźć konkretne dane, które są zgodne dokładnie z tym, czego potrzebujemy do naszej analizy.

AND/OR są powszechnie używane w zapytaniach SQL.


Sortowanie wartości

Jeśli dodasz ORDER BY z nazwą kolumny, zwróci to informacje z tabeli uporządkowanej według tej kolumny, w porządku rosnącym (domyślnie jest sortowanie rosnące).

SELECT *
FROM tracks
ORDER BY name;


Zwraca to wszystkie wiersze w tabeli utworów, uporządkowane według tytułu piosenek (zaczynając od „40” i kończąc na Último Pau-De-Arara).

Aby to zmienić i uzyskać informacje w kolejności malejącej:

SELECT *
FROM tracks
ORDER BY name DESC;


Zwróci to tę samą listę, ale w odwróconej kolejności.


Unikalne wartości

Czasami będziemy pracować z bazami danych, które będą zawierać mnóstwo zduplikowanych informacji. Aby temu sprostać, wykorzystamy klauzulę DISTINCT:

SELECT DISTINCT(composer)
FROM tracks;


To zapytanie usuwa zduplikowane wartości w kolumnach autorów i zwraca rzeczywistą ilość autorów. Ilość wierszy ograniczy się z ilości 3503 do 853.


Funkcje agregacji

W SQL-u jest 5 najważniejszych funkcji agregacyjnych:

  • COUNT()
  • SUM()
  • AVG()
  • MIN()
  • MAX()


Dzięki tym funkcjom możemy zacząć manipulować danymi jeszcze dokładniej, aby uzyskać bardziej wnikliwe wyniki.

Oto kilka przykładów zapytań:

SELECT COUNT(*)
FROM tracks
WHERE name LIKE 'a%';


Funkcja działa w tabeli utworów, wyszukuje i zlicza wszystkie nazwy utworów, które zaczynają się na literę A. Ten kod generuje 199 utworów zaczynających się na literę A.

SELECT MAX(unitprice)
FROM invoice_items;


Zwraca to 1,99, maksymalną cenę dowolnego przedmiotu w tabeli invoice_items.


Grupowanie według

Klauzula GROUP BY zwykle używana jest w połączeniu z funkcją agregującą. Grupuje wiersze według danej wartości kolumny, a następnie oblicza agregat dla każdej grupy.

SELECT composer, SUM(milliseconds)
FROM tracks
GROUP BY composer;


Zwraca całkowitą ilość czasu (w milisekundach) dla każdego kompozytora w tabeli.

SELECT composer, COUNT(trackid)
FROM tracks
GROUP BY composer;


To zapytanie zlicza liczbę ID ścieżek na kompozytora.


Podsumowanie

Mam nadzieję, że jest to coś, co pomoże Ci lepiej zacząć naukę trudniejszych zagadnień SQL-a. Przyjemnego kodowania i zgłębiania wiedzy dalej samodzielnie!


Oryginał tekstu w języku angielskim przeczytasz tutaj.

Masz coś do powiedzenia?

Podziel się tym z 120 tysiącami naszych czytelników

Dowiedz się więcej
Rocket dog