Create Table
Basic Table
| Database | Output |
|---|---|
| PostgreSQL | CREATE TABLE users (id SERIAL, name VARCHAR, email VARCHAR) |
| MySQL | CREATE TABLE users (id INT AUTO_INCREMENT, name VARCHAR(255), email VARCHAR(255)) |
| MongoDB | Creates collection on first insert |
Data Types
| OmniQL Type | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
AUTO | SERIAL | INT AUTO_INCREMENT | ObjectId |
BIGAUTO | BIGSERIAL | BIGINT AUTO_INCREMENT | ObjectId |
INT | INTEGER | INT | Int32 |
BIGINT | BIGINT | BIGINT | Int64 |
SMALLINT | SMALLINT | SMALLINT | Int32 |
STRING | VARCHAR | VARCHAR(255) | String |
TEXT | TEXT | TEXT | String |
CHAR | CHAR | CHAR | String |
BOOLEAN | BOOLEAN | BOOLEAN | Boolean |
BOOL | BOOLEAN | BOOLEAN | Boolean |
TIMESTAMP | TIMESTAMP | TIMESTAMP | Date |
DATETIME | TIMESTAMP | DATETIME | Date |
DATE | DATE | DATE | Date |
TIME | TIME | TIME | String |
JSON | JSON | JSON | Object |
JSONB | JSONB | JSON | Object |
UUID | UUID | CHAR(36) | UUID |
DECIMAL | DECIMAL | DECIMAL | Decimal128 |
NUMERIC | NUMERIC | DECIMAL | Decimal128 |
FLOAT | DOUBLE PRECISION | DOUBLE | Double |
REAL | REAL | FLOAT | Double |
BINARY | BYTEA | BLOB | BinData |
BLOB | BYTEA | BLOB | BinData |
With Size
With Constraints
Constraints are added after the type using colons:| Database | Output |
|---|---|
| PostgreSQL | CREATE TABLE users (id SERIAL, name VARCHAR NOT NULL, email VARCHAR UNIQUE) |
Multiple Constraints
Complete Example
Drop Table
| Database | Output |
|---|---|
| PostgreSQL | DROP TABLE users |
| MySQL | DROP TABLE users |
| MongoDB | db.users.drop() |
Alter Table
Add Column
| Database | Output |
|---|---|
| PostgreSQL | ALTER TABLE users ADD COLUMN name VARCHAR |
Drop Column
Rename Column
Modify Column Type
Rename Table
| Database | Output |
|---|---|
| PostgreSQL | ALTER TABLE users RENAME TO customers |
| MySQL | RENAME TABLE users TO customers |
MongoDB Collections
For MongoDB, useCOLLECTION instead of TABLE:

