SQL Dataset Generator

Runs in browser Test Data

Define columns with types and generators, and produce ready-to-run seed scripts with batched INSERTs for MySQL, PostgreSQL, SQL Server, Oracle or SQLite.

TEST DATA ONLY — all generated names, contacts, identifiers and numbers are synthetic and do not belong to real people or accounts.
Privacy: This tool runs entirely in your browser. Your input never leaves your device.
Loading tool…

How to use SQL Dataset Generator

  1. Define the columns with generator types.
  2. Enter the table name, dialect and batch size.
  3. Press Generate and run the script against a test database.

SQL Dataset Generator features

  • CREATE TABLE with dialect-specific types inferred from the generators
  • Batched multi-row INSERTs or one per row; optional transaction
  • MySQL/MariaDB, PostgreSQL, SQL Server, Oracle (INSERT ALL) and SQLite
  • Strings stay strings (phones, codes) while numbers, booleans, dates and UUIDs get typed literals
  • Safe identifiers (snake_case) and primary key on the id column
  • Up to 5,000 rows, seedable, with statement count and size

SQL Dataset Generator example

PostgreSQL seed

Input:

id:id
full_name:fullName
phone:phone:SA
hired_on:date · Table: employees · Dialect: PostgreSQL

Output:

CREATE TABLE IF NOT EXISTS employees (
  id INT NOT NULL,
  full_name VARCHAR(40) NOT NULL,
  phone VARCHAR(20) NOT NULL,
  hired_on DATE NOT NULL,
  PRIMARY KEY (id)
);

INSERT INTO employees (id, full_name, phone, hired_on) VALUES
  (1, 'Freddie Mitchell', '+966545797509', '2021-05-31'),
  (2, 'Aurora Taylor', '+966590325497', '2019-06-10');

Frequently asked questions about SQL Dataset Generator

Which dialects are supported?

MySQL/MariaDB, PostgreSQL, SQL Server, Oracle (INSERT ALL) and SQLite, with dialect-specific quoting, boolean literals and date/time types.

How are column types chosen?

From the generator: integers become INT, decimals DECIMAL, booleans BOOLEAN/BIT/TINYINT(1), dates DATE, UUIDs UUID/CHAR(36) and text VARCHAR(n). Phone numbers and codes stay strings even when they look numeric.

Can I batch the INSERTs?

Yes — set rows per INSERT (SQL Server caps at 1000) or switch to one INSERT per row, and optionally wrap everything in a transaction.

How do I get NULL values in a column?

Append ? to the column name, e.g. manager_id?:int:1-20 or notes?:sentence. About 15% of that column's rows are then emitted as NULL, and the CREATE TABLE declares it nullable while every other column gets NOT NULL. A column named id is also declared as the PRIMARY KEY.