数据测试设计方案

一、 数据设计方案

1.1 数据表名

  • 大写(TABLE)
  • 小写(table)
  • 大小写混合(TABle)
  • 带特殊字符(.table,/table,_table,'table,"table,`table)
  • 关键字(datatime,string..)
  • 不同数据库支持的表名最大长度

1.2 字段名

  • 大写(COLUMN)
  • 小写(column)
  • 大小写混合(COLUmn)
  • 带特殊字符(.column,/column,_column)
  • 中文数字混合(列名1)
  • 不同数据库支持的列名最大长度

1.3 空字符

  • 数据表为空和数据表内某个字段的值为空

1.4 数据类型

  • 创建对应数据表的所有字段类型

二、 各数据源对应的字段类型

2.1 Oracle数据库

字段类型 字段说明 长度 示例
NUMBER 变长数据类型 22个字节 ---
FLOAT 浮点数类型 NUMBER(38),双精度 ---
BINARY_DOUBLE 现有的NUMBER类型的补充,oracle 10g以上的版本才能用 9个字节 12.3400002
BINARY_FLOAT 现有的NUMBER类型的补充oracle 10g以上的版本才能用 5个字节 34.560000000000002
DATE 日期 --- 2021-04-21 14:36:11
TIMESTAMP 日期存储小数秒 --- 2021-04-21 14:36:11.000000
TIMESTAMP WITH TIME ZONE 日期存储时区 13字节 2021-04-21 14:36:11.000000000 +08:00
TIMESTAMP WITH LOCAL TIME ZONE 该类型会转换成数据的时区来保存数据 7-11字节 2021-04-21 14:36:11.000000
INTERVAL YEAR TO MONTH 间隔使用年份和月份 --- +011-00
INTERVAL DAY TO SECOND 使用包括小数秒在内的天,小时,分钟和秒存储间隔 --- +012 10:23:01.123457
LONG 超长字符串 最大长度2G ---
BLOB 二进制数据 最大长度4G ---
CLOB 字符数据 最大长度4G ---
NCLOB 根据字符集而定的字符数据 最大长度4G ---
BFILE 存放在数据库外的二进制数据 最大长度4G ---
CHAR 固定长度字符串 最大长度2000字节 ---
VARCHAR 可变长度字符串 最大长度4000字节 ---

2.2 SQLServer数据库

字段类型 字段说明 长度 示例
char 非Unincode编码,长度是固定的 最大长度8000字节 ---
varchar 非Unincode编码,长度是可变 最大长度8000字节 ---
sql_variant 变长的数据类型,包含两部分信息:基础类型和Value,可以存储所有的SQLServer数据类型的数据。 -- ---
date 日期 --- 2032-03-23
time 时间 --- 09:33:32.0000000
smalldatetime 时间范围 4个字节 2021-04-08 12:08:00
float 近似数值型 4/8字节,依赖与float(n)的取值 -1.79E+308至1.79E+308
money 记录金额范围 8个字节 -92233720368577.5808至92233720368577.5807
numeric 精确数值型 --- 333
decimal 精确数值类型 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值
tinyint 最小的整数类型 1个字节 0至^8-1
smallint 正负数 2个字节 -215至215-1
int 正负数|4个字节 -231至231-1
bit 常用于布尔类型,0/1代表true/false --- 1/0
image 可变长的二进制字符串 最大2G 文件

2.3 MySQL数据库

字段类型 字段说明 长度 示例
tinyint 小整数值 1字节 (-128,127)、(0,255)
smallint 大整数值 2字节 (-32768,32767)、(0,65535)
mediumint 大整数值 3字节 (-8388608,8388607)、(0,16777215)
int 大整数值 4字节 (-2147483648,2147483647)、(0,4294967295)
bigint 极大整数值 8字节 (-9,223,372,036,854,775,808,9,223,372,036,854,775,807) 、(0,18446744073709551615)
float 单精度浮点数值 4字节 0,(1.175 494 351 E-38,3.402 823 466 E+38)
double 双精度浮点数值 8字节 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
decimal 小数值 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值
date 日期值 3字节 2009-01-26
time 时间值或持续时间 3字节 838:59:59
datetime 混合日期和时间值 8字节 2009-01-26 00:00:00
timestamp 混合日期和时间值,时间戳 4字节 2009-01-26 00:00:00
year 年份值 1字节 2009
char 定长字符串 0-255字节 ---
varchar 变长字符串 0-65535字节 ---
blob 二进制形式的长文本数据 0-65535字节 ---

2.4 PostgreSQL数据库

字段类型 字段说明 长度 示例
int2 smallint扩展,小范围整数 2 字节 -32768 到 +32767
int4 integer扩展,整数的典型选择 4字节 -2147483648 到 +2147483647
int8 bigint扩展,大范围整数 8字节 -9223372036854775808 到 +9223372036854775807
numeric 用户指定的精度,精确 可变长 小数点前 131072 位;小数点后 16383 位
float4 real-可变精度,不精确 4字节 6 位十进制数字精度
float8 double precision可变精度,不精确 8字节 15 位十进制数字精度
money(不建议使用,BI不支持) 货币金额 8字节 -92233720368547758.08 到 +92233720368547758.07
bool 布尔类型 -- f/t
char 定长,不足补空白 -- --
varchar 变长,有长度限制 --- --
date 只用于日期 4字节 2021-08-03
inet IPv4 或 IPv6 主机和网络 7 或 19 字节 ::ffff:10.4.3.2
text 变长,无长度限制 -- --
timestamptz 日期和时间(有时区) 8字节 2021-08-03 07:27:08+00
timestamp 日期和时间(无时区) 8字节 2021-08-03 15:27:06
time 只用于一日内时间 8字节 17:28:24
timetz 只用于一日内时间,带时区 12字节 12:28:34+08
tsvector 无重复值的 lexemes 排序列表 -- '[1,2,3]'
tsquery 存储用于检索的词汇 -- '("fuzzy dice",42,1.99)'
uuid 通用唯一标识符(UUID) 128字节 a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
point 平面中的点 16字节 (2,6)
line (无穷)直线(未完全实现) 32字节
lseg (有限)线段 32字节 [(1,1),(2,2)]
box 矩形 32字节 (2,2),(1,1)
path 闭合路径(与多边形类似) 16+16n字节 ((1,1),(2,2),(3,3),(4,4))
polygon 多边形(与闭合路径相似) 40+16n字节 ((1,1),(2,2),(3,3),(4,4))
circle 24字节 <(1,1),5>
json json 数据类型 --
jsonb json 数据类型 -- [[1, 5], [99, 100]]
varbit 位串类型,一串 1 和 0 的字符串 -- 00100010110011100111011010110011110

2.5 GreenPlum数据库

字段类型 字段说明 长度 示例
int2 smallint扩展,小范围整数 2 字节 -32768 到 +32767
int4 integer扩展,整数的典型选择 4字节 -2147483648 到 +2147483647
int8 bigint扩展,大范围整数 8字节 -9223372036854775808 到 +9223372036854775807
numeric 用户指定的精度,精确 可变长 小数点前 131072 位;小数点后 16383 位
float4 real-可变精度,不精确 4字节 6 位十进制数字精度
float8 double precision可变精度,不精确 8字节 15 位十进制数字精度
money(不建议使用,BI不支持) 货币金额 8字节 -92233720368547758.08 到 +92233720368547758.07
bool 布尔类型 -- f/t
char 定长,不足补空白 -- --
varchar 变长,有长度限制 --- --
date 只用于日期 4字节 2021-08-03
inet IPv4 或 IPv6 主机和网络 7 或 19 字节 ::ffff:10.4.3.2
text 变长,无长度限制 -- --
timestamptz 日期和时间(有时区) 8字节 2021-08-03 07:27:08+00
timestamp 日期和时间(无时区) 8字节 2021-08-03 15:27:06
time 只用于一日内时间 8字节 17:28:24
timetz 只用于一日内时间,带时区 12字节 12:28:34+08
tsvector 无重复值的 lexemes 排序列表 -- '[1,2,3]'
tsquery 存储用于检索的词汇 -- '("fuzzy dice",42,1.99)'
uuid 通用唯一标识符(UUID) 128字节 a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
point 平面中的点 16字节 (2,6)
line (无穷)直线(未完全实现) 32字节
lseg (有限)线段 32字节 [(1,1),(2,2)]
box 矩形 32字节 (2,2),(1,1)
path 闭合路径(与多边形类似) 16+16n字节 ((1,1),(2,2),(3,3),(4,4))
polygon 多边形(与闭合路径相似) 40+16n字节 ((1,1),(2,2),(3,3),(4,4))
circle 24字节 <(1,1),5>
json json 数据类型 --
jsonb json 数据类型 -- [[1, 5], [99, 100]]
varbit 位串类型,一串 1 和 0 的字符串 -- 00100010110011100111011010110011110

2.6 Impala数据库

字段类型 字段说明 长度 示例
int 有符号整型 4字节 333
tinyint 有符号整型 1字节 333
smallint 有符号整型 2字节 333
bigint 有符号整型 8字节 333
float 有符号单精度浮点数 4字节 33.93932322
double 有符号双精度浮点数 8字节 333
decimal 有符号双精度浮点数 -- 333
timestamp 时间戳 -- 2018-09-21 10:25:12.123
string 字符串 -- xxx
char 长度固定字符串 255 xxx
varchar 长度不定字符串 1-65535 xxx
boolean 布尔类型 -- true/false
binary 字节序列 -- --

2.7 Hive数据库

字段类型 字段说明 长度 示例
int 有符号整型 4字节 333
tinyint 有符号整型 1字节 333
smallint 有符号整型 2字节 333
bigint 有符号整型 8字节 333
float 有符号单精度浮点数 4字节 33.93932322
double 有符号双精度浮点数 8字节 333
decimal 有符号双精度浮点数 -- 333
timestamp 时间戳 -- 2018-09-21 10:25:12.123
date 日期 -- 2013-09-21
string 字符串 -- xxx
char 长度固定字符串 255 xxx
varchar 长度不定字符串 1-65535 xxx
boolean 布尔类型 -- true/false
binary 字节序列 -- --
array 包含同类型元素的数组,索引从0开始 ARRAY<data_type> -- ['a']
map<string,string> 字典 MAP<primitive_type, data_type> --
struct<t_struct_key:string> 结构体 STRUCT<> --
map<string,double> 字典 MAP<primitive_type, data_type> --
struct<t_struct_int_key:int> 结构体 STRUCT<> --
posted @ 2022-01-07 10:04  小喜_ww  阅读(178)  评论(0编辑  收藏  举报