CSV 转 SQL
CSV to SQL
从表格推断列的类型,生成指定方言的 CREATE TABLE 和 INSERT 语句。
把一张表变成 PostgreSQL、MySQL、SQLite 或 SQL Server 的 CREATE TABLE 和 INSERT 语句,列类型从数据推断。在写出任何东西之前,它先显示将要创建的列,这是你抓出一个以文本身份进来的数值列的地方。
把要转成 SQL 的 CSV 放到这里
在这个标签页里读取,不会上传。能认出韩文版、日文版、中文版和西文版 Excel 存出来的文件(CP949、Shift_JIS、GBK、Windows-1252)。
怎么用
选方言
它决定引号风格、自增语法和文本类型。SQL Server 用 NVARCHAR 而不是 VARCHAR,这是存下中文和存下一串问号的区别。
检查推断出的类型
SQL 上方的表显示每一列、它将得到的标识符、类型以及是否可为空。你以为是 INTEGER 的列显示为 TEXT,说明里面有一个杂值。
设置批大小
每条 INSERT 一百行是不错的默认值。一行一条更容易调试,运行起来慢得多。
常见问题
为什么每个标识符都加了引号?
因为叫 order、group 或 desc 的列是保留字,而只在必要时加引号意味着要把四种方言的保留字表都弄对。无条件加引号很无趣,但永远管用。
中文列名安全吗?
加引号之后,四种方言里都安全。如果你的服务器仍然拒绝它们,“仅 ASCII”选项会把标识符转写,数据保持不动。
我数据里的引号会怎样?
它们会被写成两个,这是 SQL 标准的转义方式。对 MySQL,反斜杠也会写成两个,因为只有 MySQL 把字面量里的反斜杠当作转义——不这样做,C:\temp 到了数据库里会带着一个制表符。
空单元格还是 NULL?
由你选,而且这很要紧:在 SQL 里空字符串是一个值,NULL 是值的缺失,它们在比较、COUNT 和唯一索引里表现不同。默认是 NULL。
可以从这些接进来
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
CSV 清洗
CSV Cleaner
去掉单元格首尾空白、统一表头、修正数字和日期格式,并报出列数对不上的行。
用 SQL 查询 CSV
SQL over CSV
在浏览器里对拖进来的 CSV 或 TSV 跑 SQL——SELECT、WHERE、GROUP BY/HAVING、ORDER BY、LIMIT、CASE,以及两表 JOIN——语法就印在页面上。
列表格式转换
List Formatter
把多行文本转成逗号列表、带引号的 SQL IN 子句、JSON 数组或项目符号列表,也能反着来。
SQL 格式化
SQL Formatter
按可配置的关键字大小写、缩进和逗号位置格式化 SQL,覆盖主流方言。
CSV 查看器
CSV Viewer
打开很大的分隔符文件,识别列类型、给出列统计和排序,全程不把整份文件读进内存。
汇率换算
Currency Converter
按欧洲央行每日参考汇率经欧元交叉换算三十来种货币,也可以直接填入你自己拿到的那个汇率。