Conversor de SQL a CSV

A veces la única copia de los datos que necesitas es un archivo .sql de una copia de seguridad, un volcado de sentencias INSERT INTO users (id, email, created_at) VALUES (...). Cargarlo en una base de datos solo para volver a exportarlo es lento. Este conversor lee la lista de columnas y cada tupla de VALUES directamente de la sintaxis del INSERT y genera un CSV que puedes abrir en Excel, Google Sheets, Numbers o pandas sin restaurar el esquema.

Cómo convertir INSERT de SQL a CSV

  1. 1

    Pega el SQL

    Suelta una o varias sentencias INSERT. Se admiten bloques VALUES (...) de una fila y de varias filas.

  2. 2

    Columnas detectadas automáticamente

    El analizador lee la lista `(col1, col2, ...)` justo antes de VALUES y la usa como fila de encabezado del CSV.

  3. 3

    Filas extraídas

    Cada tupla `(val1, val2, ...)` se convierte en una fila del CSV. Las cadenas entre comillas simples se desentrecomillan; los números y los NULL pasan como texto.

  4. 4

    Copia el CSV

    Toma la salida CSV y pégala en una hoja de cálculo, o guárdala con la extensión `.csv`.

Qué acepta el analizador

INSERT INTO users (id, email, created_at) VALUES
  (1, 'alice@example.com', '2024-01-12 09:00:00'),
  (2, 'bob@example.com',   '2024-01-13 10:30:00'),
  (3, 'carol@example.com', '2024-01-13 11:15:00');

Se convierte en:

id,email,created_at
1,alice@example.com,2024-01-12 09:00:00
2,bob@example.com,2024-01-13 10:30:00
3,carol@example.com,2024-01-13 11:15:00

Reglas de escape de CSV aplicadas

  • El delimitador es siempre una coma; no hay opción de separador.
  • Los campos que contienen comas, comillas dobles o saltos de línea se rodean de comillas dobles.
  • Las comillas dobles internas se duplican (" pasa a ""), según la RFC 4180.
  • Se eliminan las comillas simples inicial y final de los literales de cadena de SQL.
  • El NULL de SQL pasa como el texto literal NULL; sustitúyelo después si tus herramientas esperan celdas vacías.

Limitaciones que conviene conocer

  • Se requiere la lista de columnas. El analizador lee el encabezado de la lista (col1, col2, ...) anterior a VALUES. Un INSERT INTO t VALUES (...) sin la lista de columnas produce filas de CSV sin encabezado.
  • Una tabla a la vez. Si tu volcado mezcla INSERT de tablas distintas, sepáralos primero. Filas de anchos diferentes producen un CSV irregular.
  • Sin análisis de CREATE TABLE. No se usan los tipos de columna. Fechas, JSON y blobs binarios pasan como texto sin procesar.
  • Cada grupo de paréntesis se convierte en una fila. El analizador convierte cada grupo (...) en una fila, así que las cláusulas finales que contienen paréntesis (ON DUPLICATE KEY UPDATE, RETURNING), las llamadas a funciones como NOW() o los arreglos anidados como (1,2,3) dentro de un valor añaden filas sobrantes. Limita la entrada a tuplas INSERT ... VALUES simples y sustituye esas expresiones por literales antes de pegar.

Preguntas frecuentes

Sí, siempre que el INSERT siga la forma estándar INSERT INTO table (cols) VALUES (...), común a esas bases de datos. La herramienta no ejecuta un analizador de SQL completo: extrae la lista de columnas y las tuplas de valores entre paréntesis, así que limita cada sentencia a la sintaxis INSERT simple.

Las comas dentro de cadenas SQL entre comillas simples se conservan. En la salida, cualquier campo que contenga una coma, una comilla o un salto de línea se rodea de comillas dobles y las comillas internas se duplican, conforme a la RFC 4180. Los valores que contienen paréntesis pueden no separarse correctamente.

No. Tu SQL se envía a nuestro servidor, se analiza en una sola pasada y se devuelve, así que limita la entrada a unos pocos megabytes cada vez. Para volcados muy grandes, divide el archivo en fragmentos (un bloque INSERT por fragmento) y conviértelos por partes.

No, la salida es un CSV plano. Los tipos de columna, los índices y las restricciones viven en CREATE TABLE y quedan fuera del alcance de este conversor.

Tu SQL se envía a nuestro servidor solo para producir el CSV y no se almacena; guardamos un recuento anónimo de cuántas filas se convirtieron, nunca el texto del SQL.

Herramientas relacionadas

Herramienta disponible en otros idiomas