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
| Operator | Znaczenie | Przykład |
|---|---|---|
= | Równy | WHERE status = 'aktywny' |
!= / <> | Różny | WHERE rola <> 'admin' |
>, <, >=, <= | Porównanie | WHERE cena > 100 |
BETWEEN | Zakres | WHERE wiek BETWEEN 18 AND 65 |
IN | Lista wartości | WHERE miasto IN ('Warszawa', 'Kraków') |
LIKE | Wzorzec | WHERE imie LIKE 'Jan%' |
IS NULL | Brak wartości | WHERE email IS NULL |
AND / OR | Logiczne | WHERE wiek > 18 AND miasto = 'Poznań' |
JOIN – łączenie tabel
| Typ JOIN | Opis |
|---|---|
INNER JOIN | Tylko pasujące rekordy z obu tabel |
LEFT JOIN | Wszystko z lewej + pasujące z prawej |
RIGHT JOIN | Wszystko z prawej + pasujące z lewej |
FULL JOIN | Wszystko 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
| Typ | Opis | Przykład |
|---|---|---|
INTEGER / INT | Liczba całkowita | 42 |
VARCHAR(n) | Tekst do n znaków | 'Warszawa' |
TEXT | Tekst bez limitu | Długi opis |
DECIMAL(p,s) | Liczba dziesiętna | 99.99 |
BOOLEAN | Prawda/Fałsz | TRUE |
DATE | Data | '2024-03-15' |
TIMESTAMP | Data i czas | '2024-03-15 14:30:00' |
JSON | Dane 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
| Cecha | MySQL | PostgreSQL | SQLite |
|---|---|---|---|
| Licencja | Komercyjna/GPL | Open source | Public domain |
| JSON | Tak | Tak (JSONB) | Tak |
| Auto increment | AUTO_INCREMENT | SERIAL | AUTOINCREMENT |
| Limit | LIMIT n | LIMIT n | LIMIT n |
| Komentarz | -- lub # | -- | -- |
| Konkatenacja | CONCAT() | ` |
Najczęstsze błędy
- **SELECT *** – pobieranie wszystkich kolumn obciąża bazę
- Brak indeksów – zapytania na dużych tabelach bez indeksów są wolne
- N+1 problem – zapytanie w pętli zamiast JOIN
- Brak WHERE w UPDATE/DELETE – modyfikuje/usuwa wszystkie rekordy!
- Mieszanie NULL –
NULL = NULLzwraca FALSE, użyjIS 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.
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.