Pisz po ludzku.
Dostajesz poprawny SQL.
Wgraj schemat bazy, zadaj pytanie i od razu zobacz wynik.
AI-SQL-Chat generuje jedno, bezpieczne zapytanie SELECT i wykonuje je na Twojej bazie.
Generator SQL z języka naturalnego — dla kogo i jak działa?
AI-SQL-Chat to lekki i bezpieczny generator SQL z języka naturalnego. Wpisujesz zapytanie po polsku, a narzędzie zwraca jedno, poprawne zapytanie SELECT zgodne z Twoim schematem bazy danych. Teraz możesz również wkleić własny schemat bezpośrednio na stronie Wklej schemat i wygenerować zapytanie SQL jednorazowo — bez logowania i bez zapisywania danych.
Jeśli chcesz zachować swój schemat na stałe, wystarczy go wcześniej przygotować zgodnie z instrukcją na stronie
Instrukcja: wklej schemat i zapisać w formacie .json.
Po zalogowaniu możesz go wgrać na stronie
Załaduj schemat,
aby w dowolnym momencie wracać do swojego schematu i generować nowe zapytania SQL bez ponownego wklejania danych.
Najważniejsze korzyści
- Tylko SELECT — zapytania tylko-do-odczytu z wymuszonym
LIMIT 1000. - Własny schemat — możesz wkleić go ręcznie lub wgrać plik JSON.
- Zgodność z danymi — generowany SQL odnosi się do tabel i kolumn Twojej bazy.
- Bez wysyłki danych — przetwarzanie odbywa się wyłącznie w przeglądarce.
- Bezpieczeństwo — filtry anty-SQLi, limity zapytań i ochrona przed DDoS, opisane w Bezpieczeństwie.
Jak zacząć w 2–3 minuty
- Wygeneruj schemat swojej bazy danych wg instrukcji i przygotuj wynik w formacie JSON.
- Użyj strony Wklej schemat, aby jednorazowo wkleić schemat i wygenerować zapytanie SQL.
- Jeśli chcesz zachować swój schemat na później — zaloguj się i wgraj plik JSON na stronie Załaduj schemat. Od tej chwili możesz wracać do niego w każdej sesji i generować zapytania SQL w dowolnym momencie.
SELECT s_rodzajdomu.rodzajDomu,
SUM(wynik_wycenymoduly.liczbaModulow) AS liczba_sprzedanych_modulow,
ROUND(SUM(wynik_wycenymoduly.cenaBrutto), 2) AS wartosc_wyceny
FROM wynik_wycenymoduly
JOIN dane_domu ON wynik_wycenymoduly.id_dane_klienta = dane_domu.id_dane_klienta
JOIN s_rodzajdomu ON dane_domu.rodzaj_domu = s_rodzajdomu.id_rodzajDomu
GROUP BY s_rodzajdomu.rodzajDomu
LIMIT 1000;
Jak to działa
Trzy proste kroki od pytania do wynikuWygeneruj i wgraj schemat
Wygeneruj i wczytaj JSON ze strukturą tabel i kolumn. Możesz też użyć naszego przykładowego schematu.
Zadaj pytanie
Napisz zwykłym językiem. Silnik wygeneruje jedno SELECT z walidacją i limitami.
Odbierz wynik
Pokażemy SQL i tabelę wynikową. Liczby zaokrąglamy do 2 miejsc — gotowe do prezentacji.
Wgrywanie własnego schematu
Wgrywanie własnego schematu oraz generowanie zapytań SQL na podstawie promptów jest dostępne po zalogowaniu. Po zalogowaniu Twój schemat zostaje zapisany i dostępny w kolejnych sesjach.
Wygeneruj schemat JSON z własnej bazy danych
Nie masz jeszcze pliku schematu? W 2–3 minuty przygotujesz go z MySQL, PostgreSQL, SQL Server lub Oracle.
Uruchom krótkie zapytanie, a wynik wyeksportuj do .json.
Optymalizuj swoje zapytanie
Nowa funkcja optymalizacji zapytań SQL pozwala przeanalizować dowolny SELECT i otrzymać gotowe rekomendacje dotyczące indeksów, filtrów oraz planów wykonania. Możesz uzyskać pełny raport optymalizacyjny na stronie
Dlaczego AI-SQL-Chat?
Bezpieczeństwo, użyteczność i szybkość wdrożeniaJedno bezpieczne SELECT
Blokujemy DDL/DML, OUTFILE/INFILE, SLEEP/BENCHMARK. Wymuszamy LIMIT oraz pojedynczą instrukcję.
Ochrona & Rate-limit
Slowdown, limity per IP, shedder na pętli zdarzeń — ochrony przed nadużyciami i DDoS.
Łatwa integracja
Własny schemat JSON, prosty deployment (Node + Nginx), działa lokalnie i w chmurze.
Bezpieczeństwo danych
Projekt od początku zorientowany na bezpieczeństwo operacji SQL i odporność na nadużycia.
- Brak przechowywania wyników — wszystko w pamięci.
- Twarde filtrowanie SQL (pojedynczy SELECT + zakazane wzorce).
- Ograniczenia rozmiaru body, brak „index of” w statykach.
- Helmet, HPP, CORS whitelist, nocache, kompresja.
if (!/^\s*SELECT\b/i.test(sql)) throw new Error('Tylko SELECT');
if (banned.test(sql)) throw new Error('Niedozwolone instrukcje');
if (!/\bLIMIT\b/i.test(sql)) sql = sql.replace(/;$/, '') + ' LIMIT 1000;';
if (toobusy()) return res.status(503).json({ error: 'Serwer przeciążony' });
FAQ
Czy modyfikujecie dane w bazie?
Nie. System generuje i wykonuje wyłącznie jedno zapytanie SELECT, z wymuszonym LIMIT i filtrami anty-SQLi.
Gdzie trafiają wyniki zapytań?
Tylko do przeglądarki. Backend nie przechowuje wyników — są w pamięci procesu wyłącznie na czas wykonania.
Czy mogę użyć własnego schematu?
Tak, wgraj plik JSON ze strukturą tabel/kolumn na stronie „Załaduj schemat”.
Czy mogę uruchomić on-premise?
Tak — oferuję konsultacje on-prem / VPC. Skontaktuj się ze mną.
Jak wygenerować schemat bazy danych (tabele i kolumny)?
Poniżej proste zapytania pokazujące nazwy tabel i kolumn dla popularnych silników. Wklej odpowiedni fragment w swojej bazie, a wynik możesz wyeksportować do JSON i użyć w AI-SQL-Chat.
MySQL / MariaDB
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'twoja_baza' -- <-- podmień ORDER BY TABLE_NAME, ORDINAL_POSITION;
PostgreSQL (przez information_schema)
SELECT table_name AS table_name, column_name AS column_name, data_type AS data_type, is_nullable FROM information_schema.columns WHERE table_schema = 'public' -- <-- podmień, np. public ORDER BY table_name, ordinal_position;
SQL Server (Azure SQL / MS SQL)
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS -- opcjonalnie zawęź: -- WHERE TABLE_CATALOG = 'TwojaBaza' AND TABLE_SCHEMA = 'dbo' ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
SQLite (lista tabel + kolumny dla każdej)
-- Tabele
SELECT name AS table_name
FROM sqlite_master
WHERE type = 'table' AND name NOT LIKE 'sqlite_%'
ORDER BY name;
-- Kolumny dla jednej tabeli (podmień):
PRAGMA table_info('twoja_tabela');
Oracle (Twoje tabele)
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE FROM USER_TAB_COLUMNS ORDER BY TABLE_NAME, COLUMN_ID;
Oracle (konkretna schema/OWNER)
SELECT OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE FROM ALL_TAB_COLUMNS WHERE OWNER = 'HR' -- <-- podmień na nazwę swojej schemy (zwykle WIELKIMI literami) ORDER BY TABLE_NAME, COLUMN_ID;
Nie pamiętasz nazwy schemy w Oracle? Sprawdź:
SELECT USER FROM dual; -- aktualnie zalogowany użytkownik SELECT username FROM all_users; -- dostępne schemy
Oracle: co wpisać w polu OWNER?
OWNER to nazwa schemy (zwykle równa nazwie użytkownika) w WIELKICH LITERACH, np. HR, SCOTT, APPUSER.
Jeśli nie jesteś pewny, uruchom:
SELECT USER FROM dual; -- pokaże bieżącego użytkownika (często to właściwy OWNER) SELECT username FROM all_users; -- lista wszystkich schem
Użyj tej wartości w klauzuli WHERE OWNER = 'TWOJ_OWNER' w zapytaniu do ALL_TAB_COLUMNS.
Dla kogo to narzędzie będzie szczególnie użyteczne?
Różne role, jeden cel — szybki dostęp do danych- Analitycy biznesowi, którzy nie znają SQL, ale potrzebują regularnie pobierać dane z bazy i przygotowywać zestawienia.
- Programiści oraz inżynierowie danych, którzy chcą szybko prototypować zapytania, sprawdzać hipotezy lub eksplorować bazę.
- Zespoły operacyjne i analityczne, które chcą dać dostęp do danych osobom nietechnicznym — bez ryzyka modyfikacji danych (tylko SELECT).
- Osoby eksperymentujące z AI w obszarze baz danych, generowania zapytań i semantycznego wyszukiwania w danych.
- Studenci, uczniowie oraz osoby początkujące, które chcą nauczyć się SQL i zrozumieć, jak wykorzystywać zapytania w praktycznej pracy z bazami danych.
Co użytkownicy mówią o AI-SQL-Chat?
Opinie o praktycznym wykorzystaniu narzędziaSzybko ułatwia pracę z danymi
świetnie sprawdziło się, gdy potrzebowałem szybko otrzymać poprawne zapytanie SQL — bez wertowania dokumentacji. Zaoszczędziło mi sporo czasu i zdjęło z głowy techniczne bariery.
Pomaga nawet wtedy, gdy znasz SQL
nie zastępuje pisania zapytań w 100%, ale jest świetnym pomocnikiem — generuje szkice, podpowiedzi i poprawne struktury SELECT, które mogłem od razu optymalizować.
Bezpieczny sposób na dostęp analityczny
osoby nietechniczne mogą korzystać z danych bez ryzyka modyfikacji w bazie. Tylko jeden SELECT i ochrona przed nadużyciami czynią to narzędzie pewnym i bezpiecznym.