Example
id,name,signup_date,monthly_spend,active
1,Alice Martin,2026-01-05,49.00,true
2,Bob O'Neil,2026-02-11,0,falsebecomes (PostgreSQL):
CREATE TABLE "customers" (
"id" INT,
"name" TEXT,
"signup_date" DATE,
"monthly_spend" NUMERIC,
"active" BOOLEAN
);
INSERT INTO "customers" ("id", "name", "signup_date", "monthly_spend", "active") VALUES
(1, 'Alice Martin', '2026-01-05', 49.00, TRUE),
(2, 'Bob O''Neil', '2026-02-11', 0, FALSE);Type mapping by database
| CSV values | PostgreSQL | MySQL | SQLite | SQL Server |
|---|---|---|---|---|
| Whole numbers | INT / BIGINT | INT / BIGINT | INTEGER | INT / BIGINT |
| Decimals | NUMERIC | DECIMAL(18,6) | REAL | DECIMAL(18,6) |
| true / false | BOOLEAN | BOOLEAN | INTEGER (1/0) | BIT (1/0) |
| 2026-01-05 | DATE | DATE | TEXT | DATE |
| 2026-01-05T10:30:00Z | TIMESTAMP | DATETIME | TEXT | DATETIME2 |
| Anything else | TEXT | VARCHAR(50/255) or TEXT | TEXT | NVARCHAR(50/255/MAX) |
Loading big files with the database's own importer
-- PostgreSQL (psql)
\copy customers FROM 'customers.csv' WITH (FORMAT csv, HEADER true)
-- MySQL
LOAD DATA LOCAL INFILE 'customers.csv' INTO TABLE customers
FIELDS TERMINATED BY ',' ENCLOSED BY '"' IGNORE 1 LINES;
-- SQLite (sqlite3 shell)
.import --csv --skip 1 customers.csv customersWorking with JSON instead of CSV? Use JSON to SQL, or convert with CSV to JSON first.