SQL (Structured Query Language) to język, który pozwala komunikować się z relacyjnymi bazami danych. Dzięki SQL możesz pobierać, dodawać, zmieniać i usuwać dane, a także zarządzać strukturą bazy. To jedno z najważniejszych narzędzi każdego, kto pracuje z danymi!
>>Spis treści
- Czym jest SQL?
- Do czego służy SQL?
- Typowe zastosowania SQL
- Podstawowe elementy składni SQL
- Podstawowe polecenia SQL (szczegółowo)
- Warunki i filtrowanie danych (WHERE)
- Sortowanie wyników (ORDER BY)
- Ograniczanie wyników (LIMIT)
- Tworzenie i modyfikacja tabel
- Klucze i relacje
- Dobre praktyki w SQL
- Praktyczne zadania
- Podsumowanie
>>Czym jest SQL?
SQL (Structured Query Language) to standardowy język zapytań służący do pracy z relacyjnymi bazami danych (np. MySQL, PostgreSQL, SQLite, Oracle). Pozwala na:
- pobieranie danych (wyszukiwanie, filtrowanie, sortowanie),
- dodawanie i edycję informacji,
- usuwanie danych,
- zarządzanie strukturą bazy (tworzenie i modyfikacja tabel).
Jest wykorzystywany na całym świecie przez programistów, analityków, administratorów baz danych i naukowców danych.
>>Do czego służy SQL?
- Pobieranie danych – m.in. wyświetlanie listy klientów, produktów, zamówień.
- Wyszukiwanie i filtrowanie – np. znajdź wszystkich użytkowników powyżej 18 lat.
- Dodawanie nowych danych – np. rejestracja nowego klienta.
- Aktualizacja danych – np. zmiana adresu e-mail lub stanu zamówienia.
- Usuwanie danych – np. usunięcie nieaktualnych rekordów.
- Tworzenie i zmienianie struktury – zakładanie nowych tabel, dodawanie kolumn.
>>Typowe zastosowania SQL
- Systemy sklepów internetowych
- Systemy bankowości i finansów
- Zarządzanie zasobami przedsiębiorstw (ERP)
- Aplikacje społecznościowe
- Analiza i raportowanie danych (Business Intelligence, Data Science)
- Systemy rejestracji użytkowników i ich autoryzacja
>>Podstawowe elementy składni SQL
- SQL nie rozróżnia wielkości liter (SELECT, select, Select są równoważne), ale zwykle używa się wielkich liter dla poleceń.
- Każde polecenie kończy się średnikiem (
;
). - Nazwy tabel i kolumn są podawane bez cudzysłowów (chyba, że zawierają znaki specjalne).
- Łańcuchy znaków (teksty) zapisujemy w pojedynczych apostrofach, np.
'Jan'
.
>>Podstawowe polecenia SQL (szczegółowo)
>>>SELECT
Opis: Służy do pobierania danych z jednej lub więcej tabel.
Przykład:
SELECT imie, nazwisko FROM Uzytkownicy WHERE wiek > 18;
Wyjaśnienie składni:
SELECT
– rozpoczyna zapytanie pobierające dane.imie, nazwisko
– nazwy kolumn, które chcesz pobrać (możesz użyć*
, by pobrać wszystkie).FROM Uzytkownicy
– nazwa tabeli, z której pobierane są dane.WHERE wiek > 18
– warunek wyboru (możesz go pominąć, by pobrać wszystkie rekordy).
>>>INSERT
Opis: Dodaje nowe rekordy do wybranej tabeli.
Przykład:
INSERT INTO Uzytkownicy (imie, nazwisko, wiek) VALUES ('Anna', 'Nowak', 25);
Wyjaśnienie składni:
INSERT INTO
– rozpoczyna polecenie dodania rekordu.Uzytkownicy
– nazwa tabeli.(imie, nazwisko, wiek)
– lista kolumn, do których będą przypisane wartości.VALUES ('Anna', 'Nowak', 25)
– wartości przypisane odpowiednio do wskazanych kolumn.
>>>UPDATE
Opis: Zmienia dane w istniejących rekordach.
Przykład:
UPDATE Uzytkownicy SET wiek = 26 WHERE imie = 'Anna' AND nazwisko = 'Nowak';
Wyjaśnienie składni:
UPDATE Uzytkownicy
– wskazanie tabeli, w której chcesz zmienić dane.SET wiek = 26
– określenie nowej wartości dla kolumny.WHERE imie = 'Anna' AND nazwisko = 'Nowak'
– warunek, które rekordy mają zostać zmienione (bardzo ważne, by nie pominąć WHERE!).
>>>DELETE
Opis: Usuwa rekordy z wybranej tabeli.
Przykład:
DELETE FROM Uzytkownicy WHERE wiek < 18;
Wyjaśnienie składni:
DELETE FROM Uzytkownicy
– wskazanie tabeli, z której rekordy mają być usunięte.WHERE wiek < 18
– warunek wyboru rekordów do usunięcia.
>>Warunki i filtrowanie danych (WHERE)
Opis: WHERE pozwala określić, które rekordy mają zostać wybrane, zmienione lub usunięte.
Przykład:
SELECT * FROM Uzytkownicy WHERE miasto = 'Warszawa' AND wiek > 18;
miasto = 'Warszawa'
– wybiera tylko rekordy, gdzie miasto to Warszawa.AND wiek > 18
– dodatkowy warunek: tylko osoby powyżej 18 roku życia.
Możliwe operatory:
- =, != (<>), >, <, >=, <=
- AND, OR, NOT
- LIKE (dopasowanie wzorca), IN (lista wartości), BETWEEN (zakres)
>>Sortowanie wyników (ORDER BY)
Opis: Pozwala posortować wyniki według jednej lub więcej kolumn.
Przykład:
SELECT imie, nazwisko FROM Uzytkownicy ORDER BY nazwisko ASC, imie DESC;
ORDER BY nazwisko ASC
– posortuj alfabetycznie po nazwisku rosnącoimie DESC
– jeśli nazwiska się powtarzają, sortuj po imieniu malejąco
>>Ograniczanie wyników (LIMIT)
Opis: LIMIT służy do ograniczenia liczby zwracanych wyników.
Przykład:
SELECT * FROM Produkty ORDER BY cena DESC LIMIT 3;
- Wyświetli 3 najdroższe produkty.
>>Tworzenie i modyfikacja tabel
Tworzenie tabeli:
CREATE TABLE Produkty (
id INT PRIMARY KEY,
nazwa VARCHAR(100),
cena DECIMAL(10,2)
);
CREATE TABLE Produkty
– utwórz nową tabelę o nazwie Produkty.id INT PRIMARY KEY
– kolumna "id" typu liczba całkowita, klucz główny (unikalny identyfikator).nazwa VARCHAR(100)
– kolumna "nazwa" typu tekstowego o maks. długości 100 znaków.cena DECIMAL(10,2)
– kolumna "cena" typu liczba zmiennoprzecinkowa (10 cyfr, w tym 2 po przecinku).
Dodawanie kolumny:
ALTER TABLE Produkty ADD COLUMN opis TEXT;
Usuwanie tabeli:
DROP TABLE Produkty;
>>Klucze i relacje
- Klucz podstawowy (PRIMARY KEY): Unikalnie identyfikuje każdy rekord w tabeli (np. id).
- Klucz obcy (FOREIGN KEY): Tworzy powiązanie między dwiema tabelami.
Przykład relacji:
CREATE TABLE Zamowienia (
id INT PRIMARY KEY,
id_produktu INT,
ilosc INT,
FOREIGN KEY (id_produktu) REFERENCES Produkty(id)
);
id
– unikalny identyfikator zamówienia.id_produktu
– odwołanie do kolumny "id" w tabeli Produkty.FOREIGN KEY...
– definiuje powiązanie (relację) między tabelami.
>>Dobre praktyki w SQL
- Zawsze używaj klauzuli WHERE, jeśli chcesz zmieniać lub usuwać tylko wybrane rekordy.
- Używaj czytelnych nazw tabel i kolumn.
- Twórz kopie zapasowe bazy przed poważnymi zmianami.
- Testuj zapytania SELECT przed wykonaniem UPDATE lub DELETE.
- Unikaj SELECT * w dużych projektach – wybieraj konkretne kolumny.
- Dokumentuj nietypowe zapytania i modyfikacje struktury bazy.
>>Praktyczne zadania
>>>Zadanie 1: Pobieranie danych
Wyświetl wszystkie dane z tabeli "Uzytkownicy".
Pokaż rozwiązanie
SELECT * FROM Uzytkownicy;
>>>Zadanie 2: Wstawianie nowych rekordów
Dodaj nowego użytkownika o imieniu "Anna", nazwisku "Nowak" i wieku 25.
Pokaż rozwiązanie
INSERT INTO Uzytkownicy (imie, nazwisko, wiek) VALUES ('Anna', 'Nowak', 25);
>>>Zadanie 3: Filtrowanie danych
Wyświetl imiona i nazwiska użytkowników, którzy mają więcej niż 18 lat.
Pokaż rozwiązanie
SELECT imie, nazwisko FROM Uzytkownicy WHERE wiek > 18;
>>>Zadanie 4: Aktualizacja danych
Zmień wiek użytkownika "Anna Nowak" na 26.
Pokaż rozwiązanie
UPDATE Uzytkownicy SET wiek = 26 WHERE imie = 'Anna' AND nazwisko = 'Nowak';
>>>Zadanie 5: Usuwanie danych
Usuń wszystkich użytkowników o wieku poniżej 18 lat.
Pokaż rozwiązanie
DELETE FROM Uzytkownicy WHERE wiek < 18;
>>>Zadanie 6: Tworzenie tabeli
Utwórz tabelę "Produkty" z polami: id (liczba całkowita, klucz podstawowy), nazwa (tekst), cena (liczba zmiennoprzecinkowa).
Pokaż rozwiązanie
CREATE TABLE Produkty (
id INT PRIMARY KEY,
nazwa VARCHAR(100),
cena DECIMAL(10,2)
);
>>>Zadanie 7: Relacja między tabelami
Utwórz tabelę "Zamowienia" zawierającą klucz obcy do "Produktów".
Pokaż rozwiązanie
CREATE TABLE Zamowienia (
id INT PRIMARY KEY,
id_produktu INT,
ilosc INT,
FOREIGN KEY (id_produktu) REFERENCES Produkty(id)
);
>>>Zadanie 8: Sortowanie i ograniczanie wyników
Wyświetl 5 najstarszych użytkowników (imie, nazwisko, wiek).
Pokaż rozwiązanie
SELECT imie, nazwisko, wiek FROM Uzytkownicy ORDER BY wiek DESC LIMIT 5;
>>>Zadanie 9: Łączenie warunków
Wyświetl wszystkich użytkowników z miasta "Warszawa" w wieku powyżej 18 lat.
Pokaż rozwiązanie
SELECT * FROM Uzytkownicy WHERE miasto = 'Warszawa' AND wiek > 18;
>>Podsumowanie
SQL to potężne i uniwersalne narzędzie do pracy z danymi w relacyjnych bazach danych. Pozwala efektywnie pobierać, modyfikować i zarządzać informacją. Warto poznać zarówno podstawy, jak i bardziej zaawansowane możliwości tego języka – to inwestycja, która przyda się w niemal każdej dziedzinie IT!