TOP 50 zapytań SQL

Poznaj 50 najważniejszych zapytań SQL – od podstaw SELECT po zaawansowane JOINy i modyfikację danych. Idealny przewodnik dla początkujących i średniozaawansowanych.
16 marca 2026
blog
Poziom:

Artykuł przeznaczony dla czytelników, dla których brak jest dostępnej treści do oceny i dlatego nie da się określić grupy docelowej.

Z tego artykułu dowiesz się

  • Jakie informacje i wnioski zawiera artykuł?
  • Dla kogo przeznaczona jest treść i jakie problemy pomaga rozwiązać?
  • Jaki poziom wiedzy jest potrzebny, aby zrozumieć przedstawione zagadnienia?

Wprowadzenie do zapytań SQL

SQL (Structured Query Language) to język służący do komunikacji z relacyjnymi bazami danych. Jego podstawowym celem jest umożliwienie użytkownikom tworzenia, modyfikowania i pobierania danych z baz danych w sposób efektywny i zrozumiały. Dzięki SQL możemy zarządzać zarówno strukturą bazy danych, jak i jej zawartością, niezależnie od konkretnego systemu zarządzania bazą danych (DBMS), takiego jak MySQL, PostgreSQL, Oracle czy Microsoft SQL Server.

Zapytania SQL dzielą się na kilka głównych kategorii, z których każda odpowiada za inny aspekt pracy z danymi:

  • Zapytania selekcyjne umożliwiają odczyt danych z bazy i prezentowanie ich w żądanym formacie. Są one podstawą do analizy i wizualizacji informacji zgromadzonych w tabelach.
  • Filtrowanie danych pozwala zawęzić wyniki zapytania według określonych warunków. Dzięki temu można skupić się tylko na interesujących nas rekordach.
  • Agregacja danych umożliwia podsumowywanie informacji, np. obliczanie średnich, sum czy liczby wystąpień. Tego typu zapytania są często wykorzystywane do raportowania.
  • Łączenie tabel pozwala zestawiać dane przechowywane w różnych tabelach na podstawie wspólnych wartości. To kluczowa funkcjonalność w relacyjnych bazach danych.
  • Modyfikacja danych obejmuje dodawanie, edytowanie i usuwanie rekordów w tabelach. To fundamentalne operacje w zarządzaniu danymi.
  • Zarządzanie strukturą bazy dotyczy tworzenia, zmieniania i usuwania tabel oraz innych obiektów w bazie danych. Pozwala dostosować strukturę bazy do zmieniających się potrzeb aplikacji i użytkowników.

Znajomość SQL jest niezbędna dla analityków danych, programistów, administratorów baz danych i wszystkich, którzy na co dzień pracują z informacjami przechowywanymi w systemach bazodanowych. Opanowanie zapytań SQL pozwala nie tylko sprawnie zarządzać danymi, ale również wydobywać z nich wartościowe informacje wspierające procesy decyzyjne.

Zapytania selekcyjne (SELECT)

Podstawą pracy z bazą danych w SQL jest polecenie SELECT, które służy do pobierania danych z jednej lub wielu tabel. Dzięki niemu możliwe jest przeglądanie zawartości bazy, wybieranie konkretnych kolumn, a także sortowanie i ograniczanie liczby wyników.

Zapytania selekcyjne mogą być bardzo proste – pobierające wszystkie dane z jednej tabeli – ale mogą też przyjmować bardziej złożone formy, umożliwiające zaawansowaną analizę i prezentację informacji. W Cognity często spotykamy się z pytaniami na ten temat podczas szkoleń, dlatego postanowiliśmy przybliżyć go również na blogu.

Najczęstsze zastosowania zapytań SELECT obejmują:

  • wyświetlanie wszystkich lub wybranych kolumn z tabeli,
  • zmienianie kolejności wyników według jednej lub wielu kolumn,
  • ograniczanie liczby zwracanych wierszy,
  • łączenie danych z różnych tabel (poprzez różne typy JOIN),
  • tworzenie aliasów dla kolumn i tabel w celu zwiększenia czytelności wyników.

Użycie SELECT jest fundamentem dalszej pracy z SQL i stanowi punkt wyjścia do bardziej zaawansowanych konstrukcji, które pozwalają filtrować, agregować i modyfikować dane w sposób bardziej precyzyjny i kontrolowany.

Filtrowanie danych (WHERE, BETWEEN, LIKE, IN)

Filtrowanie danych to jeden z najważniejszych elementów pracy z bazami danych. Dzięki odpowiednio zastosowanym warunkom możemy zwrócić tylko te rekordy, które spełniają określone kryteria. W SQL do filtrowania danych wykorzystuje się głównie klauzulę WHERE, która może być wspierana przez operatory takie jak BETWEEN, LIKE czy IN.

Poniżej przedstawiono krótkie porównanie tych konstrukcji:

Operator Zastosowanie Przykład
WHERE Podstawowe filtrowanie danych na podstawie warunku logicznego SELECT * FROM produkty WHERE cena > 100;
BETWEEN Sprawdza, czy wartość mieści się w określonym zakresie SELECT * FROM zamowienia WHERE data BETWEEN '2024-01-01' AND '2024-06-30';
LIKE Umożliwia dopasowanie wzorca tekstowego z zastosowaniem symboli wieloznacznych (% i _) SELECT * FROM klienci WHERE nazwisko LIKE 'Now%';
IN Sprawdza, czy wartość znajduje się wśród określonego zbioru SELECT * FROM produkty WHERE kategoria IN ('elektronika', 'meble');

Każdy z tych operatorów pozwala w inny sposób zawęzić zbiór wyników i stosowany jest w zależności od konkretnego typu danych oraz potrzeb analizy. Ich odpowiednie użycie wpływa bezpośrednio na wydajność zapytań oraz precyzję zwracanych wyników. Jeśli chcesz nauczyć się, jak praktycznie wykorzystywać te narzędzia w codziennej pracy z bazami danych, sprawdź Kurs SQL podstawowy - praktyczne wykorzystanie języka SQL i budowa baz danych.

Agregacja danych (GROUP BY, HAVING, funkcje agregujące)

Agregacja danych w SQL pozwala na przekształcenie wielu wierszy danych w zwięzłe podsumowania, takie jak suma, średnia czy liczba wystąpień. To kluczowy mechanizm przy przygotowywaniu raportów, analizie danych i prezentowaniu statystyk. W tej sekcji omówimy podstawowe mechanizmy agregacji: funkcje agregujące, klauzulę GROUP BY oraz filtrację wyników zgrupowanych przy pomocy HAVING. Na szkoleniach Cognity pokazujemy, jak poradzić sobie z tym zagadnieniem krok po kroku – poniżej przedstawiamy skrót tych metod.

Funkcje agregujące

Służą do wykonywania operacji matematycznych lub statystycznych na kolumnach. Działają na zestawach danych i zwracają pojedynczą wartość.

  • COUNT() – liczy liczbę wierszy
  • SUM() – sumuje wartości
  • AVG() – oblicza średnią arytmetyczną
  • MIN() – zwraca najmniejszą wartość
  • MAX() – zwraca największą wartość
SELECT COUNT(*) AS liczba_zamowien FROM zamowienia;

GROUP BY

Klauzula GROUP BY pozwala pogrupować dane według jednej lub więcej kolumn, dzięki czemu można uzyskać agregaty dla każdej grupy osobno.

SELECT klient_id, SUM(kwota) AS suma_zamowien
FROM zamowienia
GROUP BY klient_id;

Powyższe zapytanie grupuje zamówienia według klienta i oblicza sumę zamówień dla każdego z nich.

HAVING

W przeciwieństwie do WHERE, klauzula HAVING służy do filtrowania wyników już pogrupowanych przez GROUP BY. Jest używana głównie z funkcjami agregującymi.

SELECT klient_id, COUNT(*) AS liczba_zamowien
FROM zamowienia
GROUP BY klient_id
HAVING COUNT(*) > 5;

Ten przykład zwraca tylko tych klientów, którzy złożyli więcej niż pięć zamówień.

Porównanie: WHERE vs HAVING

KryteriumWHEREHAVING
ZastosowanieFiltruje dane przed GROUP BYFiltruje dane po GROUP BY
Obsługuje funkcje agregująceNieTak
PrzykładWHERE kwota > 100HAVING SUM(kwota) > 500

Agregacja danych jest nieodzownym elementem pracy z dużymi zbiorami informacji. Dzięki niej można wydobyć wartościowe wnioski, upraszczając i analizując dane w sposób bardziej czytelny i efektywny.

Łączenie tabel (JOIN: INNER, LEFT, RIGHT, FULL)

W relacyjnych bazach danych dane są często rozdzielone na wiele tabel, a zapytania SQL umożliwiają ich łączenie w celu uzyskania pełniejszego obrazu informacji. Do tego celu służą różne typy klauzul JOIN, które pozwalają łączyć dane na podstawie powiązanych kolumn pomiędzy tabelami.

Poniżej przedstawiamy cztery podstawowe typy JOIN i ich główne zastosowania:

Typ JOIN Opis działania Wynik
INNER JOIN Łączy tylko te rekordy, które mają dopasowanie w obu tabelach. Tylko wspólne dane
LEFT JOIN (LEFT OUTER JOIN) Zwraca wszystkie rekordy z lewej tabeli i dopasowane z prawej. Jeśli brak dopasowania – uzupełnia wartościami NULL. Pełne dane z lewej tabeli
RIGHT JOIN (RIGHT OUTER JOIN) Działa odwrotnie do LEFT JOIN – zwraca wszystkie rekordy z prawej tabeli i dopasowane z lewej. Pełne dane z prawej tabeli
FULL JOIN (FULL OUTER JOIN) Zwraca wszystkie rekordy z obu tabel. Braki dopasowania uzupełnia NULL-ami. Wszystkie dane z obu tabel

Typ JOIN dobierany jest w zależności od kontekstu zapytania i tego, jakie dane chcemy uzyskać.

Przykładowe użycie INNER JOIN:

SELECT Pracownicy.imie, Dzialy.nazwa
FROM Pracownicy
INNER JOIN Dzialy ON Pracownicy.dzial_id = Dzialy.id;

W powyższym przykładzie wyświetlani są tylko ci pracownicy, którzy mają przypisany dział w tabeli Dzialy.

Znajomość różnych typów JOIN jest kluczowa przy pracy z bazami danych, ponieważ pozwala na efektywne zestawianie i analizę rozproszonych informacji. Jeśli chcesz pogłębić swoją wiedzę i poznać więcej praktycznych zastosowań JOIN-ów, sprawdź nasz Kurs SQL średniozaawansowany.

6. Modyfikacja danych (INSERT, UPDATE, DELETE)

SQL pozwala nie tylko na odczyt danych, ale także na ich modyfikację. Do tego celu służą trzy podstawowe instrukcje: INSERT, UPDATE oraz DELETE. Każda z nich pełni inną rolę i znajduje zastosowanie w różnych sytuacjach związanych z zarządzaniem zawartością tabel.

Instrukcja Zastosowanie Przykład ogólny
INSERT Dodawanie nowych rekordów do tabeli
INSERT INTO produkty (nazwa, cena) VALUES ('Długopis', 2.50);
UPDATE Modyfikowanie istniejących danych
UPDATE produkty SET cena = 2.99 WHERE nazwa = 'Długopis';
DELETE Usuwanie rekordów z tabeli
DELETE FROM produkty WHERE nazwa = 'Długopis';

Warto pamiętać, że operacje modyfikujące dane mogą być potencjalnie nieodwracalne – szczególnie DELETE oraz UPDATE bez odpowiedniego warunku WHERE. Dlatego tak ważne jest stosowanie ich z rozwagą i często poprzedzanie ich wykonania dodatkowymi zapytaniami weryfikującymi, jakich rekordów one dotyczą.

Podsumowując:

  • INSERT – dodaje nowe wiersze do tabeli,
  • UPDATE – zmienia dane w istniejących wierszach,
  • DELETE – usuwa dane z tabeli.

Dzięki tym trzem instrukcjom możemy aktywnie zarządzać zawartością bazy danych, reagując na zmieniające się potrzeby aplikacji i użytkowników.

Zarządzanie strukturą bazy danych (CREATE, ALTER, DROP)

SQL umożliwia nie tylko pobieranie danych, ale również zarządzanie samą strukturą bazy danych. Do tego celu służą polecenia CREATE, ALTER oraz DROP, które pozwalają tworzyć, modyfikować i usuwać obiekty w bazie danych, takie jak tabele, indeksy czy widoki.

Instrukcja CREATE służy do tworzenia nowych obiektów w bazie danych. Najczęściej wykorzystywana jest do zakładania nowych tabel, w których będą przechowywane dane. Dzięki niej możemy określić nazwy kolumn, typy danych i podstawowe ograniczenia strukturalne.

Polecenie ALTER umożliwia wprowadzanie zmian w już istniejących strukturach. Może to być dodanie nowej kolumny do tabeli, zmiana typu danych istniejącej kolumny lub nawet zmiana nazwy tabeli. Jest to przydatne, gdy projekt bazy danych ewoluuje w trakcie rozwoju aplikacji.

Z kolei DROP służy do usuwania obiektów z bazy danych. Operacja ta jest nieodwracalna i powinna być stosowana ostrożnie, ponieważ powoduje trwałą utratę danych zawartych w usuwanym obiekcie.

Poprawne zarządzanie strukturą bazy danych ma kluczowe znaczenie dla jej wydajności, skalowalności i bezpieczeństwa. Zrozumienie tych poleceń pozwala nie tylko na skuteczne tworzenie środowiska do przechowywania danych, ale również na jego elastyczne dostosowywanie do zmieniających się potrzeb.

Podsumowanie i najlepsze praktyki

Zapytania SQL stanowią fundament pracy z relacyjnymi bazami danych. Opanowanie ich składni i zasad działania pozwala na skuteczne pobieranie, modyfikowanie oraz zarządzanie informacjami przechowywanymi w tabelach. W praktyce biznesowej i technicznej SQL jest niezastąpionym narzędziem do analizy danych, raportowania oraz optymalizacji procesów operacyjnych.

Najważniejszą zaletą SQL jest jego uniwersalność — niemal każda relacyjna baza danych obsługuje ten język w standardzie, choć mogą występować drobne różnice w dialektach między systemami (np. PostgreSQL, MySQL, SQL Server, Oracle). Zrozumienie podstawowych poleceń, takich jak SELECT, WHERE, JOIN czy GROUP BY, pozwala tworzyć zapytania o różnym stopniu złożoności i elastycznie reagować na potrzeby analityczne.

W pracy z SQL warto kierować się kilkoma sprawdzonymi zasadami:

  • Czytelność zapytań: stosuj wcięcia i aliasy, aby kod był zrozumiały zarówno dla Ciebie, jak i innych użytkowników.
  • Bezpieczeństwo danych: przy modyfikacjach zawartości bazy zawsze wykonuj kopię zapasową lub testuj zapytania na danych próbnych.
  • Wydajność: zapytania można optymalizować, np. przez odpowiednie indeksowanie czy unikanie nadmiarowych złączeń.
  • Dokumentacja: opisuj bardziej złożone zapytania lub procedury, by w przyszłości ułatwić ich zrozumienie i utrzymanie.
  • Praktyka: regularne ćwiczenia i praca z rzeczywistymi danymi to najlepszy sposób na rozwijanie umiejętności SQL.

Solidne podstawy SQL pozwalają efektywnie działać w wielu obszarach — od analizy danych po projektowanie aplikacji. Warto dbać o jakość tworzonych zapytań i nieustannie doskonalić swoje podejście do pracy z bazami danych. W Cognity łączymy teorię z praktyką – dlatego ten temat rozwijamy także w formie ćwiczeń na szkoleniach.

Kurs NoSQL - zarządzanie bazami danych dla programistów, architektów oraz administratorów
średnio zaawansowany
cena
od 3895 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs NoSQL - zarządzanie bazami danych dla programistów...
Kurs SQL podstawowy - praktyczne wykorzystanie języka SQL i budowa baz danych
początkujący
cena
od 1450 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs SQL podstawowy - praktyczne wykorzystanie języka SQL...
Kurs SQL zaawansowany - wykorzystanie zaawansowanych opcji funkcji, procedur i zmiennych
zaawansowany
cena
od 2961 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs SQL zaawansowany - wykorzystanie zaawansowanych opcji...
Kurs SQL - podstawy relacyjnych baz danych i wirtualizacja
początkujący
cena
od 2961 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs SQL - podstawy relacyjnych baz danych i wirtualizacja...
icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments