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!