Ostatnia aktualizacja 19 kwietnia, 2023
SQL, czyli Structured Query Language, to język zapytań strukturalnych wykorzystywany do komunikacji z bazami danych. Pozwala na zarządzanie, tworzenie, modyfikowanie i pobieranie informacji ze zgromadzonych zasobów. W tym wprowadzeniu omówimy podstawowe koncepcje, które pomogą Ci zrozumieć pracę z danymi. Zapraszamy do zapoznania się z poradnikiem “SQL dla początkujących krok po kroku”, za pomocą którego sprawdzisz, czy praca z analizą danych to coś dla Ciebie.
Składniki bazy danych w SQL-u
Baza danych w SQL składa się z kilku kluczowych elementów, które razem tworzą spójną strukturę do przechowywania oraz zarządzania danymi. W jej skład wchodzą:
- Tabele – w SQL-u określa się jako TABLE. To podstawowe jednostki przechowujące dane, zorganizowane w kolumny i wiersze.
- Kolumny (atrybuty) – części tabel, które definiują rodzaj przechowywanej informacji poprzez określony typ danych. W SQL-u przyjmują polecenie COLUMN.
- Wiersze (rekordy) – zbiór wartości dla wszystkich kolumn w tabeli, reprezentujący pojedyncze dane. W kodzie SQL-a widnieją jako ROW lub RECORD.
- Klucze podstawowe – PRIMARY KEY to polecenie dla unikalnych identyfikatorów wierszy w tabeli, gwarantujących unikalność rekordów.
- Klucze obce – FOREIGN KEY to kolumny lub zestawy kolumn, które odnoszą się do klucza podstawowego innej tabeli.
- Relacje między tabelami – połączenia tworzone dzięki kluczy obcych, które uporządkowują dane i zachowują integralność informacji. Tworzy się je dzięki komendy JOIN (np. INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN).
SQL dla początkujących – tworzenie i modyfikacja tabel
Aby utworzyć tabelę, używamy polecenia CREATE TABLE. Następnie definiujemy kolumny oraz ich typy danych. W poniższym przykładzie znajduje się kod SQL-a, który pozwala stworzyć tabelę o nazwie “Pracownicy” z pięcioma kolumnami, w których zawrzemy informacje na temat ID, imienia, nazwiska, stanowiska oraz ich pensji.
CREATE TABLE pracownicy ( id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50), stanowisko VARCHAR(50), pensja DECIMAL(10,2) );Liczba 50 w nawiasach przy personaliach i stanowisku określają maksymalną liczbę znaków. W przypadku wartości 10,2 występującej w pensji chodzi o precyzję i skalę liczby dziesiętnej. 10 oznacza, iż maksymalnie tyle cyfr może wystąpić w liczbie, a 2 to maksymalna liczba cyfr po przecinku.
W celu modyfikacji tabeli stosujemy polecenia ALTER TABLE, które pozwala na dodawanie, usuwanie lub zmianę kolumn.
ALTER TABLE pracownicy ADD COLUMN email VARCHAR(100);Modyfikacja dotyczy w tym przypadku dodania nowej kolumny do tabeli, która zawiera miejsce na e-mail. Polecenie VARCHAR(100) określa ciąg znaków o zmiennej długości, przy czym maksymalna długość ciągu znaków może wynieść 100.
Zapytania SELECT i filtrowanie danych
Polecenie SELECT pozwala na pobranie danych z tabeli:
SELECT * FROM pracownicy;Aby je przefiltrować, możemy użyć klauzuli WHERE:
SELECT * FROM pracownicy WHERE stanowisko = 'Programista';W ten sposób z tabeli zawierającej dane na temat pracowników, filtrujemy wszystkich, którzy zajmują stanowisko programisty.
Relacje i łączenie tabel
Relacje między tabelami są kluczowym elementem baz danych. Istnieją różne rodzaje relacji, takie jak:
- jeden-do-jednego
- jeden-do-wielu
- wiele-do-wielu
Do łączenia tabel używamy polecenia JOIN.
SELECT * FROM pracownicy JOIN dzialy ON pracownicy.dzial_id = dzialy.id;Powyższe zapytanie sprawi, iż każdy wiersz z tabeli “Pracownicy” zostanie połączony z odpowiednim wierszem z tabeli “Działy”, dzięki czemu otrzymamy pełne informacje o pracownikach oraz działach, w których pracują.
Im więcej różnych danych, tym większy poziom skomplikowania zapytań. Wiele firm poszukuje specjalistów, których głównym zadaniem jest optymalizacja kodu SQL-a, aby skracać czas wykonywania zapytań.
Dlaczego warto uczyć się SQL-a i kto go wykorzystuje?
SQL jest szeroko stosowany w praktycznie każdej dziedzinie biznesu, nauki czy technologii. Znajomość języka SQL jest kluczowa dla takich zawodów jak analityk danych, inżynier baz danych, programista, administrator czy tester oprogramowania.
Według raportu No Fluff Jobs o rynku pracy IT w 2022 roku, znajomość SQL-a była najczęstszą umiejętnością wymienianą wśród wszystkich ogłoszeń o pracy – znalazła się w 18,37% publikacji. W przypadku podziału na kategorie, SQL znalazł się w 26,47% ogłoszeń dla backdendowców oraz 25,36% ogłoszeń w kategorii Testing/QA.