这里展示 BlueNova 对所有支持的 SQL 数据库的具体类型的功能实现情况。
- ✅: 表示已支持
- ❌: 表示未支持。驱动暂时不能处理,即使读取也会报错。
- 🔢: 表示当作数字来处理
- 🔤: 表示当作字符串来处理
- 🅱️: 表示当作 Bytes 来处理,表现为 Base64 编码的字符串。
- 0️⃣1️⃣: 表示当作二进制字符串来处理,表现为仅含 0 和 1 的字符串。
- -: 表示不确定。
SQLite
SQLite 只有四种数据类型,全部支持。
MySQL
| 类型 | 读取、展示和导出 | 编辑 | 导入 |
|---|---|---|---|
| BIT | 🅱️ | 🅱️ | ✅ |
| TINYINT | ✅ | ✅ | ✅ |
| BOOL | 🔢 | 🔢 | ✅ |
| SMALLINT | ✅ | ✅ | ✅ |
| MEDIUMINT | ✅ | ✅ | ✅ |
| INT | ✅ | ✅ | ✅ |
| BIGINT | ✅ | ✅ | ✅ |
| DECIMAL | ✅ | ✅ | ✅ |
| FLOAT | ✅ | ✅ | ✅ |
| DOUBLE | ✅ | ✅ | ✅ |
| DATE | ✅ | ✅ | ✅ |
| TIME | ✅ | 🔤 | ✅ |
| DATETIME | ✅ | ✅ | ✅ |
| TIMESTAMP | ✅ | ✅ | ✅ |
| YEAR | 🔢 | 🔢 | ✅ |
| CHAR | ✅ | ✅ | ✅ |
| VARCHAR | ✅ | ✅ | ✅ |
| BINARY | ✅ | ✅ | ✅ |
| VARBINARY | ✅ | ✅ | ✅ |
| BLOB | ✅ | ✅ | ✅ |
| TEXT | ✅ | ✅ | ✅ |
| ENUM | 🔤 | 🔤 | ✅ |
| SET | 🔤 | 🔤 | ✅ |
| GEOMETRY | 🅱️ | 🅱️ | ✅ |
| POINT | 🅱️ | 🅱️ | ✅ |
| LINESTRING | 🅱️ | 🅱️ | ✅ |
| POLYGON | 🅱️ | 🅱️ | ✅ |
| MULTIPOINT | 🅱️ | 🅱️ | ✅ |
| MULTILINESTRING | 🅱️ | 🅱️ | ✅ |
| MULTIPOLYGON | 🅱️ | 🅱️ | ✅ |
| GEOMETRYCOLLECTION | 🅱️ | 🅱️ | ✅ |
| JSON | ✅ | ✅ | ✅ |
PostgresQL
| 类型 | 读取、展示和导出 | 编辑 | 导入 |
|---|---|---|---|
| bigint | ✅ | ✅ | ✅ |
| bigserial | ✅ | ✅ | ✅ |
| bit | 0️⃣1️⃣ | 0️⃣1️⃣ | ✅ |
| bit varying | 0️⃣1️⃣ | 0️⃣1️⃣ | ✅ |
| boolean | ✅ | ✅ | ✅ |
| box | 🔤 | 🔤 | ✅ |
| bytea | ✅ | ✅ | ✅ |
| character | ✅ | ✅ | ✅ |
| character varying | ✅ | ✅ | ✅ |
| cidr | 🔤 | 🔤 | ✅ |
| circle | 🔤 | 🔤 | ✅ |
| date | ✅ | ✅ | ✅ |
| double precision | ✅ | ✅ | ✅ |
| inet | 🔤 | 🔤 | ✅ |
| integer | ✅ | ✅ | ✅ |
| interval | 🔤 | 🔤 | ✅ |
| json | ✅ | ✅ | ✅ |
| jsonb | 🔤 | ✅ | ✅ |
| line | 🔤 | 🔤 | ✅ |
| lseg | 🔤 | 🔤 | ✅ |
| macaddr | 🔤 | 🔤 | ✅ |
| macaddr8 | 🔤 | 🔤 | ✅ |
| money | 🔤 | 🔤 | ✅ |
| numeric | ✅ | ✅ | ✅ |
| path | 🔤 | 🔤 | ✅ |
| point | 🔤 | 🔤 | ✅ |
| polygon | 🔤 | 🔤 | ✅ |
| real | ✅ | ✅ | ✅ |
| smallint | ✅ | ✅ | ✅ |
| smallserial | ✅ | ✅ | ✅ |
| serial | ✅ | ✅ | ✅ |
| text | ✅ | ✅ | ✅ |
| time | ✅ | ✅ | ✅ |
| timestamp | ✅ | ✅ | ✅ |
| tsquery | 🔤 | 🔤 | ✅ |
| tsvector | 🔤 | 🔤 | ✅ |
| uuid | 🔤 | 🔤 | ✅ |
| xml | 🔤 | 🔤 | ✅ |
| * array | 🔤 | 🔤 | ✅ |
| hstore | 🔤 | 🔤 | ✅ |
| * range | 🔤 | 🔤 | ✅ |
MsSQL
| 类型 | 读取、展示和导出 | 编辑 | 导入 |
|---|---|---|---|
| tinyint | ✅ | ✅ | ✅ |
| smallint | ✅ | ✅ | ✅ |
| int | ✅ | ✅ | ✅ |
| bit | bool | bool | ✅ |
| decimal | ✅ | ✅ | ✅ |
| numeric | ✅ | ✅ | ✅ |
| money | ✅ | ✅ | ✅ |
| smallmoney | ✅ | ✅ | ✅ |
| float | ✅ | ✅ | ✅ |
| real | ✅ | ✅ | ✅ |
| date | ✅ | ✅ | ✅ |
| time | ✅ | ✅ | ✅ |
| datetime2 | ✅ | ✅ | ✅ |
| datetimeoffset | ✅ | ✅ | ✅ |
| datetime | ✅ | ✅ | ✅ |
| smalldatetime | ✅ | ✅ | ✅ |
| char | ✅ | ✅ | ✅ |
| varchar | ✅ | ✅ | ✅ |
| text | ✅ | ✅ | ✅ |
| binary | ✅ | ✅ | ✅ |
| varbinary | ✅ | ✅ | ✅ |
| image | ✅ | ✅ | ✅ |
| geography | 🅱️ | 🅱️ | ✅ |
| geomerty | 🅱️ | 🅱️ | ✅ |
| hierarchyid | 🅱️ | 🅱️ | ✅ |
| json | ✅ | ✅ | ✅ |
| uniqueidentifier | 🔤 | 🔤 | ✅ |
| xml | 🔤 | 🔤 | ✅ |
Oracle DB
| 类型 | 读取、展示和导出 | 编辑 | 导入 |
|---|---|---|---|
| CHAR | ✅ | ✅ | ✅ |
| NCHAR | ✅ | ✅ | ✅ |
| VARCHAR2 | ✅ | ✅ | ✅ |
| NVARCHAR2 | ✅ | ✅ | ✅ |
| NUMBER | ✅ | ✅ | ✅ |
| FLOAT | ✅ | ✅ | ✅ |
| BINARY_FLOAT | ✅ | ✅ | ✅ |
| BINARY_DOUBLE | ✅ | ✅ | ✅ |
| CLOB | ✅ | ✅ | ✅ |
| NCLOB | ✅ | ✅ | ✅ |
| BLOB | ✅ | ✅ | ✅ |
| DATE | ✅ | ✅ | ✅ |
| TIMESTAMP | ✅ | ✅ | ✅ |
| INTERVAL | 🔤 | 🔤 | 🔤 |
| LONG RAW | ✅ | ✅ | ✅ |
| JSON | ✅ | ✅ | ✅ |
| BOOLEAN | 🔢 | 🔢 | 🔢 |
| *VECTOR | 🔤 | 🔤 | 🔤 |
| XMLTYPE | 🔤 | 🔤 | 🔤 |
| OBJECT | 🔤 | - | - |
NOTE
关于 Oracle 的 OBJECT 类型,读取时会转换成 JSON 字符串。编辑和导入时将输入也当作 JSON 字符串处理, 并根据 Column Type 获得ObjectType,然后调用ObjectType#FromJSON方法将 JSON 字符串转换为对象。
但是驱动的FromJSON实现不够完善,基于测试, 只能处理简单的结构(比如HTMLURITYPE这些,而对于SDO_GEOMETRY这些就会报错)。 而且好像很多其他语言的驱动也都是这样(感觉应该是 ODPI-C 的任务)。
如有需要可以使用 Raw SQL 来实现编辑。
NOTE
在 Mac 平台上,BlueNova 提供的是 X64 的二进制,但是 Oracle Instant Client 的 X64 最新驱动版本为 19.16,所以行为可能与上表不一致。
DuckDB
| 类型 | 读取、展示和导出 | 编辑 | 导入 |
|---|---|---|---|
| BIGINT | ✅ | ✅ | ✅ |
| BLOB | ✅ | ✅ | ✅ |
| BOOLEAN | ✅ | ✅ | ✅ |
| DATE | ✅ | ✅ | ✅ |
| DECIMAL | ✅ | - | - |
| DOUBLE | ✅ | ✅ | ✅ |
| FLOAT | ✅ | ✅ | ✅ |
| HUGEINT | ✅ | ✅ | ✅ |
| INTEGER | ✅ | ✅ | ✅ |
| JSON | ✅ | ✅ | ✅ |
| SMALLINT | ✅ | ✅ | ✅ |
| TIME | ✅ | ✅ | ✅ |
| TIMESTAMP | ✅ | ✅ | ✅ |
| TINYINT | ✅ | ✅ | ✅ |
| UBIGINT | ✅ | ✅ | ✅ |
| UINTEGER | ✅ | ✅ | ✅ |
| USMALLINT | ✅ | ✅ | ✅ |
| UTINYINT | ✅ | ✅ | ✅ |
| UUID | 🔤 | 🔤 | ✅ |
| VARCHAR | ✅ | ✅ | ✅ |
| ARRAY | 🔤 | - | - |
| LIST | 🔤 | - | - |
| MAP | 🔤 | - | - |
| STRUCT | 🔤 | - | - |
| UNION | 🔤 | - | - |
| INTERVAL | 🔤 | 🔤 | ✅ |
| BIT | ❌ | ❌ | ❌ |
| BIGNUM | ❌ | ❌ | ❌ |
| UHUGEINT | ❌ | ❌ | ❌ |
NOTE
ClickHouse
NOTE
ClickHouse 的 Update 是高级别的操作且异步,所以不提供 UI 上的编辑功能。
| 类型 | 读取、展示和导出 | 导入 |
|---|---|---|
| Int8 | ✅ | ✅ |
| Int16 | ✅ | ✅ |
| Int32 | ✅ | ✅ |
| Int64 | ✅ | ✅ |
| Int128 | ✅ | ✅ |
| Int256 | ✅ | ✅ |
| UInt8 | ✅ | ✅ |
| UInt16 | ✅ | ✅ |
| UInt32 | ✅ | ✅ |
| UInt64 | ✅ | ✅ |
| UInt128 | ✅ | ✅ |
| UInt256 | ✅ | ✅ |
| Float32 | ✅ | ✅ |
| Float64 | ✅ | ✅ |
| BFloat16 | ✅ | ✅ |
| Decimal | ✅ | ✅ |
| Decimal32 | ✅ | ✅ |
| Decimal64 | ✅ | ✅ |
| Decimal128 | ✅ | ✅ |
| Decimal256 | ✅ | ✅ |
| String | ✅ | ✅ |
| FixedString | ✅ | ✅ |
| Date | ✅ | ✅ |
| Date32 | ✅ | ✅ |
| Time | 🔢 | ✅ |
| DateTime | ✅ | ✅ |
| Time64 | ✅ | ✅ |
| DateTime64 | ✅ | ✅ |
| Enum | 🔤 | ✅ |
| UUID | 🔤 | ✅ |
| JSON | ✅ | ✅ |
| IPV4 | 🔤 | ✅ |
| IPV6 | 🔤 | ✅ |
| Array | 🔤 | ✅ |
| Bool | ✅ | ✅ |
| Tuple | 🔤 | ✅ |
| Map | 🔤 | ✅ |
| Variant | 🔤 | ✅ |
| Point | 🔤 | ✅ |
| Ring | 🔤 | ✅ |
| LineString | 🔤 | ✅ |
| MultiLineString | 🔤 | ✅ |
| Polygon | 🔤 | ✅ |
| MultiPolygon | 🔤 | ✅ |
IBM DB2
| 类型 | 读取、展示和导出 | 编辑 | 导入 |
|---|---|---|---|
| SMALLINT | ✅ | ✅ | ✅ |
| INTEGER | ✅ | ✅ | ✅ |
| BIGINT | ✅ | ✅ | ✅ |
| FLOAT | ✅ | ✅ | ✅ |
| DECIMAL | ✅ | ✅ | ✅ |
| CHAR | ✅ | ✅ | ✅ |
| VARCHAR | ✅ | ✅ | ✅ |
| CLOB | ✅ | ✅ | ✅ |
| Inline CLOB | ✅ | ✅ | ✅ |
| GRAPHIC | ✅ | ✅ | ✅ |
| VARGRAPHIC | ✅ | ✅ | ✅ |
| DBCLOB | ✅ | ✅ | ✅ |
| Inline DBCLOB | ✅ | ✅ | ✅ |
| BINARY | ✅ | ✅ | ✅ |
| VARBINARY | ✅ | ✅ | ✅ |
| BLOB | ✅ | ✅ | ✅ |
| Inline BLOB | ✅ | ✅ | ✅ |
| DATE | ✅ | ✅ | ✅ |
| TIME | ✅ | ✅ | ✅ |
| TIMESTAMP | ✅ | ✅ | ✅ |
| XML | 🔤 | 🔤 | ✅ |