Generator CREATE TABLE
Zbuduj zapytanie SQL do utworzenia tabeli
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator CREATE TABLE — tabela bez błędów w składni
Pisanie zapytania CREATE TABLE z pamięci łatwo pomylić — jeden brakujący przecinek albo zły typ i zapytanie nie działa. Ten generator składa poprawną strukturę z listy kolumn.
Jak podać kolumny?
Wpisz każdą kolumnę w osobnej linii, w formacie nazwa TYP [ograniczenia], np.:
name VARCHAR(255) NOT NULL
email VARCHAR(255) NOT NULL UNIQUE
age INT UNSIGNED NULL
Generator automatycznie doda przecinki, zamknie definicję i doda kodowanie utf8mb4.
Najczęstsze typy
| Typ | Zastosowanie |
|---|---|
| INT / BIGINT | liczby całkowite, klucze |
| VARCHAR(n) | teksty o ograniczonej długości |
| TEXT | długie teksty |
| DECIMAL(m,n) | kwoty i wartości precyzyjne |
| TIMESTAMP / DATETIME | daty i godziny |
| BOOLEAN / TINYINT(1) | wartości logiczne |
Dobre praktyki
- Używaj
utf8mb4— obsługuje emoji i pełny Unicode. - Klucz główny to zwykle
BIGINT UNSIGNED AUTO_INCREMENT. - Do kwot stosuj
DECIMAL, nigdyFLOAT. - Dodaj indeksy na kolumnach często używanych w warunkach WHERE.
Jak generator zamienia listę linii w instrukcję CREATE TABLE
Mechanizm jest w pełni deterministyczny. Narzędzie nie korzysta z żadnego słownika typów ani tablicy zależnej od wersji silnika bazy — nie ma tu czego zgadywać, bo cała logika sprowadza się do składania tekstu. Generator czyta dane wejściowe linia po linii i każdą niepustą linię traktuje jako jedną definicję kolumny. Puste linie oraz przypadkowe spacje na początku i końcu wiersza są ignorowane, więc możesz wklejać kolumny prosto z arkusza albo z dokumentacji.
Rozbiór pojedynczej linii jest pozycyjny. Pierwszy token to nazwa kolumny, drugi to typ razem z ewentualnym nawiasem i parametrami, a wszystko, co zostanie w tej samej linii dalej, jest przepisywane bez zmian jako ograniczenia i atrybuty kolumny. Dzięki temu generator nie musi rozumieć, co znaczy NOT NULL, UNIQUE, DEFAULT czy AUTO_INCREMENT — po prostu przenosi ten fragment do wyniku w takiej postaci, w jakiej go wpisałeś. Konsekwencja jest taka, że o poprawności merytorycznej decydujesz Ty, a narzędzie odpowiada wyłącznie za strukturę instrukcji.
Ostatni etap to klejenie całości. Zebrane definicje są łączone przecinkami — po każdej kolumnie poza ostatnią — a następnie opakowywane w nagłówek CREATE TABLE z nazwą tabeli, nawias otwierający, listę kolumn, nawias zamykający i średnik. Na końcu dopisywane jest kodowanie utf8mb4. Nie musisz więc pilnować, czy przecinek jest w dobrym miejscu ani czy instrukcja została domknięta, bo robi to jedna, powtarzalna reguła.
Przykład krok po kroku: cztery kolumny, trzy przecinki
- Wpisujesz kolejno, każdą w osobnej linii: id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT; email VARCHAR(255) NOT NULL UNIQUE; price DECIMAL(10,2) NOT NULL; created_at TIMESTAMP NULL. Łącznie cztery linie i cztery definicje kolumn.
- Generator rozbiera pierwszą linię: nazwa to id, typ to BIGINT, a reszta (UNSIGNED NOT NULL AUTO_INCREMENT) trafia do wyniku jako atrybuty tej kolumny.
- Druga linia: nazwa to email, typ to VARCHAR(255), a ograniczenia to NOT NULL UNIQUE. Nawias przy typie jest częścią drugiego tokenu, więc nie zostanie rozerwany.
- Czwarta linia jest najkrótsza: created_at, typ TIMESTAMP i jeden atrybut NULL. Linia bez dodatkowych ograniczeń też jest poprawna — nie musisz nic dopisywać.
- Generator liczy przecinki: przy czterech kolumnach stawianych jest cztery minus jeden, czyli trzy przecinki. Czwarta definicja jest ostatnia, więc kończy się bez przecinka.
- Wynikiem jest jedna instrukcja z czterema definicjami kolumn, trzema przecinkami, dwoma nawiasami i jednym średnikiem na końcu, z dopisanym kodowaniem utf8mb4.
Co generator robi z poszczególnymi elementami zapisu
| Element wejścia | Działanie generatora | Przykład |
|---|---|---|
| Pierwszy token w linii | Traktowany jako nazwa kolumny | |
| Drugi token w linii | Traktowany jako typ wraz z parametrami | VARCHAR(255) |
| Reszta linii | Przepisywana bez zmian jako ograniczenia i atrybuty | NOT NULL UNIQUE |
| Przecinek między kolumnami | Doklejany automatycznie po każdej kolumnie poza ostatnią | kolumna1, kolumna2 |
| Przecinek po ostatniej kolumnie | Nie jest dodawany — to najczęstsze źródło błędu składni | kolumna2 bez przecinka |
| Puste linie i spacje na brzegach | Pomijane, nie trafiają do wyniku | pusta linia między kolumnami |
| Zamknięcie definicji | Dodawane razem ze średnikiem | nawias zamykający i średnik |
| Kodowanie | Dopisywane na końcu instrukcji | utf8mb4 |
Jak wpisywać kolumny, żeby wynik był gotowy do wklejenia
- Jedna kolumna na linię — jeśli wpiszesz dwie definicje w jednym wierszu, generator potraktuje drugą nazwę jako kolejne ograniczenie i powstanie jedna długa, błędna definicja.
- Nazwa, potem typ, potem reszta — kolejność tokenów ma znaczenie, bo rozbiór jest pozycyjny. Ograniczenia zawsze stawiaj po typie, nigdy przed nazwą.
- Nie dopisuj przecinków samodzielnie — wklejony przecinek z arkusza zostanie potraktowany jako część definicji. Wpisuj czyste pary nazwa-typ i pozwól narzędziu rozdzielić kolumny.
- Uważaj na nazwy wymagające cytowania — jeśli kolumna nazywa się jak słowo zarezerwowane SQL albo zawiera spację, przygotuj jej nazwę w formie cytowanej już na wejściu, bo generator nie zmienia tego tokenu.
- Sprawdź wynik przed uruchomieniem — narzędzie gwarantuje strukturę, ale nie treść. Przejrzyj typy i ograniczenia oczami, zanim wkleisz instrukcję do konsoli bazy.
Czego ten generator nie zrobi za Ciebie
- Nie waliduje typów — narzędzie nie wie, czy wpisany typ istnieje w Twoim silniku bazy. Literówka w typie przejdzie do wyniku bez ostrzeżenia.
- Nie zna kontekstu bazy — nie sprawdzi, czy tabela o tej nazwie już istnieje, czy kolumny się nie powtarzają ani czy odwołania w kluczach obcych wskazują na istniejące tabele.
- Nie pilnuje limitów silnika — nie oceni, czy łączna długość kolumn w indeksie mieści się w limicie, ani czy wybrany typ uniesie przewidywany zakres wartości.
- Nie normalizuje formatowania wejścia — nadmiarowe spacje, tabulatory czy doklejone komentarze w linii zostaną przeniesione do wyniku i mogą zaburzyć podział na nazwę i typ.
Najczęstsze pytania
Czym różni się InnoDB od MyISAM?
InnoDB obsługuje transakcje, klucze obce i przywracanie po awarii — to domyślny i zalecany silnik. MyISAM jest starszy i nie ma transakcji.
Co daje utf8mb4_unicode_ci?
To zestawienie znaków i sortowanie obsługujące pełny Unicode, w tym polskie znaki i emoji. _ci oznacza porównania bez rozróżniania wielkości liter.
Czy mogę dodać klucze obce?
Tak — wpisz je ręcznie jako jedną z kolumn lub dodaj po wygenerowaniu, np. FOREIGN KEY (user_id) REFERENCES users(id).
Jak wygenerować CREATE TABLE z listy kolumn?
Wklej kolumny w polu tekstowym, każdą w osobnej linii, w formacie nazwa TYP oraz opcjonalne ograniczenia. Generator sam doda przecinki, domknie nawias i dopisze kodowanie utf8mb4, więc nie musisz pisać całej instrukcji od zera.
Dlaczego CREATE TABLE zwraca błąd przy przecinku?
Najczęstszą przyczyną jest przecinek po ostatniej kolumnie przed nawiasem zamykającym — takiej składni nie przyjmuje część silników. Generator dokleja przecinki tylko między kolumnami, dzięki czemu ten problem nie występuje.
Jak nazwać tabelę w CREATE TABLE?
Nazwę tabeli podajesz osobno i trafia ona do nagłówka instrukcji. Warto trzymać się jednego stylu w całej bazie i nie używać nazw, które są słowami zarezerwowanymi SQL, bo wtedy trzeba je cytować.
Czy generator sprawdzi poprawność typów kolumn?
Nie. Parser rozpoznaje w linii tylko nazwę, typ i resztę atrybutów, ale nie porównuje ich z listą typów obsługiwanych przez konkretny silnik. Literówkę w typie zobaczysz dopiero po uruchomieniu instrukcji na bazie.
Jak dodać klucz główny, gdy generator go nie tworzy?
Wpisz kolumnę z jej atrybutami jako jedną z linii, na przykład z AUTO_INCREMENT, a ograniczenie klucza głównego dodaj ręcznie po wygenerowaniu albo jako osobną linię w polu wejściowym. Generator przepisuje atrybuty bez zmian, więc oba podejścia zadziałają.