Generator zapytań SQL

Wybierz typ operacji, podaj tabelę i kolumny – generator stworzy poprawne zapytanie SQL. Dodawaj warunki WHERE, sortowanie i limity.

-- Wpisz nazwę tabeli

Czym jest SQL?

SQL (Structured Query Language) to standardowy język zapytań służący do zarządzania danymi w relacyjnych bazach danych. Pozwala na tworzenie, odczyt, aktualizację i usuwanie danych (operacje CRUD).

Podstawowe operacje SQL

SELECT – pobieranie danych

SELECT imie, nazwisko, wiek
FROM uzytkownicy
WHERE wiek >= 18
ORDER BY nazwisko ASC
LIMIT 10;

INSERT – wstawianie danych

INSERT INTO uzytkownicy (imie, nazwisko, email)
VALUES ('Jan', 'Kowalski', 'jan@example.pl');

UPDATE – aktualizacja danych

UPDATE uzytkownicy
SET email = 'nowy@example.pl'
WHERE id = 42;

DELETE – usuwanie danych

DELETE FROM uzytkownicy
WHERE ostatnie_logowanie < '2023-01-01';

CREATE TABLE – tworzenie tabeli

CREATE TABLE produkty (
    id INTEGER PRIMARY KEY,
    nazwa VARCHAR(100) NOT NULL,
    cena DECIMAL(10,2) DEFAULT 0,
    utworzono TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Klauzula WHERE – filtrowanie

OperatorZnaczeniePrzykład
=RównyWHERE status = 'aktywny'
!= / <>RóżnyWHERE rola <> 'admin'
>, <, >=, <=PorównanieWHERE cena > 100
BETWEENZakresWHERE wiek BETWEEN 18 AND 65
INLista wartościWHERE miasto IN ('Warszawa', 'Kraków')
LIKEWzorzecWHERE imie LIKE 'Jan%'
IS NULLBrak wartościWHERE email IS NULL
AND / ORLogiczneWHERE wiek > 18 AND miasto = 'Poznań'

JOIN – łączenie tabel

Typ JOINOpis
INNER JOINTylko pasujące rekordy z obu tabel
LEFT JOINWszystko z lewej + pasujące z prawej
RIGHT JOINWszystko z prawej + pasujące z lewej
FULL JOINWszystko z obu tabel
SELECT z.id, u.imie, p.nazwa
FROM zamowienia z
INNER JOIN uzytkownicy u ON z.user_id = u.id
INNER JOIN produkty p ON z.produkt_id = p.id;

Popularne typy danych

TypOpisPrzykład
INTEGER / INTLiczba całkowita42
VARCHAR(n)Tekst do n znaków'Warszawa'
TEXTTekst bez limituDługi opis
DECIMAL(p,s)Liczba dziesiętna99.99
BOOLEANPrawda/FałszTRUE
DATEData'2024-03-15'
TIMESTAMPData i czas'2024-03-15 14:30:00'
JSONDane JSON'{"klucz": "wartość"}'

Bezpieczeństwo – SQL Injection

Nigdy nie wstawiaj danych użytkownika bezpośrednio do zapytań SQL:

-- ŹLE (podatne na SQL Injection):
SELECT * FROM users WHERE name = '" + userInput + "'

-- DOBRZE (parametryzowane zapytanie):
SELECT * FROM users WHERE name = ?

Ochrona przed SQL Injection:

  • Używaj parametryzowanych zapytań (prepared statements)
  • Stosuj ORM (Sequelize, Prisma, SQLAlchemy, Hibernate)
  • Waliduj dane wejściowe po stronie serwera
  • Ogranicz uprawnienia konta bazodanowego

Dialekty SQL

CechaMySQLPostgreSQLSQLite
LicencjaKomercyjna/GPLOpen sourcePublic domain
JSONTakTak (JSONB)Tak
Auto incrementAUTO_INCREMENTSERIALAUTOINCREMENT
LimitLIMIT nLIMIT nLIMIT n
Komentarz-- lub #-- --
KonkatenacjaCONCAT()`

Najczęstsze błędy

  1. **SELECT *** – pobieranie wszystkich kolumn obciąża bazę
  2. Brak indeksów – zapytania na dużych tabelach bez indeksów są wolne
  3. N+1 problem – zapytanie w pętli zamiast JOIN
  4. Brak WHERE w UPDATE/DELETE – modyfikuje/usuwa wszystkie rekordy!
  5. Mieszanie NULLNULL = NULL zwraca FALSE, użyj IS NULL

Jeśli ten kalkulator był przydatny, sprawdź również: JSON, .htpasswd, CV i więcej kalkulatorów.

Kalkulator zawiera walidację danych wejściowych i działa lokalnie w przeglądarce. Dzięki temu możesz szybko porównać różne scenariusze bez przesyłania danych na serwer.

sqlgenerator sqlzapytanie sqlsql onlineselectinsertcreate table

Najczęstsze pytania (FAQ)

Co to jest SQL?

SQL (Structured Query Language) to język zapytań do baz danych relacyjnych. Pozwala tworzyć, czytać, aktualizować i usuwać dane (CRUD). Używany w MySQL, PostgreSQL, SQLite, SQL Server.

Czym jest SQL injection?

Atak polegający na wstrzyknięciu złośliwego kodu SQL przez formularz. Ochrona: parametryzowane zapytania (prepared statements), walidacja danych wejściowych, ORM.

MySQL vs PostgreSQL – co wybrać?

MySQL – prostszy, szybszy do prostych operacji, popularny w WordPress/PHP. PostgreSQL – bardziej zgodny ze standardem SQL, lepszy do złożonych zapytań, JSONB, full-text search.