SQL

SQL DDL Parser

Reads CREATE TABLE statements and lists every column with its type, nullability, key role and default.

Loading the tool…

Processing happens locally in your browser. What you paste or load is processed by this page and is not uploaded to a server. Nothing is stored unless you use a control that says it stores something, and you can clear anything this site has kept from the privacy page.

How to use this tool

  1. Paste one or more CREATE TABLE statements.
  2. Select Parse DDL to see every column with its type, nullability and key role.
  3. Download the table as CSV, or switch to the data dictionary output.

What sql ddl parser does

A DDL parser turns CREATE TABLE statements into a structured list: one row per column, with the declared type, whether nulls are allowed, whether the column is part of a key, and any default. It is the quickest way to answer "what is actually in this schema" when all you have been given is a script.

What comes out is exactly what the DDL declares, and no more. Table-level PRIMARY KEY and FOREIGN KEY constraints are promoted onto the columns they name, but a relationship that exists only in application code, or a type that is really an enum enforced elsewhere, cannot appear here because it is not in the text. Statements the parser does not recognise are skipped rather than failing the whole script.

Frequently asked questions

The common shape across PostgreSQL, MySQL, SQL Server, Oracle and Snowflake: column definitions with types, NOT NULL, DEFAULT, PRIMARY KEY, UNIQUE and REFERENCES, plus table-level PRIMARY KEY and FOREIGN KEY constraints. Anything it does not recognise is skipped rather than failing the file.

No, and it cannot. It reads the DDL text you paste. That means it knows exactly what the script declares and nothing about the data, the indexes created separately, or how the table is actually used.

Yes. Paste a whole schema script and every CREATE TABLE statement in it is parsed, with the table name on each row of the output.

Because the DDL did not say NOT NULL. A rule enforced by a trigger, a check constraint written separately, or the application layer is invisible here — the parser reports the declaration, not the practice.