当前位置: 首页 > article >正文

数据库数据类型对比

1.数字类型

整数/固定精度

oracle

NUMBER(38,127)/DECIMAL

p有效数字的位数;s小数位数,可以大于p左边填充0,当s取负数时,将小数点左边的s位置为0,并四舍五入
s范围是-84到127
精确到小数点右边s位,并四舍五入。然后检验有效位是否<=p

达梦、sql server、mysql
达梦sql servermysql
BIGINT -2^63 - 2^63-1bigint 8字节 -2^63 - 2^63-1bigint 8字节 区分带符号和不带符号
INTEGER/INT -2^31 - 2^31-1int/integer 4字节 -2^31 - 2^31-1int 4字节 mediumint 3字节
SMALLINT -2^15 到 2^15-1smallint 2字节 -2^15 到 2^15-1smallint 2字节
TINYINT/BYTE -128 到 127tinyint 1字节 0-255tinyint 1字节 = bool类型
NUMERIC/DECIMAL/DEC/NUMBER(p,s) p精度 1-38 s标度 不超过精度 不可以作为自增decimal/numeric(p,s) 固定精度和小数位数 p精度 1-38 s小数位 不超过精度decimal(m,d) m<=65 ,d<=30且 d<m 是小数位 decimal/numeric,没有number 不可作为自增

近似数值类型/浮点数

不常用,容易出现精度丢失的问题

oracle达梦sql servermysql
FLOAT、BINARY_FLOAT、BINARY_DOUBLEFLOAT、DOUBLE、REALfloat、realfloat、double

2. 位串数据类型

Oracle: 无

达梦:bit 只能存储0 1 空值,与 SQL SERVER2000 的 BIT 数据类型相似

Mysql: bit存储0和1

3. 字符类型

注意字符和字节的区分

固定长度

Oracle: char 最大2000字节

达梦:CHAR/CHARACTER(n) 相同 不超过32767字节

Sql server: CHAR(n) n的范围是1到8000

Mysql: char固定长度字符串,最多255个字符

可变长度

oracle
  1. varchar2(size) varchar2是oracle特有的 最大4000个字节
  2. varchar(3 CHAR) 3个字符,能存三个汉字;varchar(3) 3个字节,不能存两个汉字
  3. 字符集ZHS16GBK一个汉字两个字节
  4. 查询BYTE还是CHAR:SELECT VALUE FROM nls_database_parameters WHERE PARAMETER = 'NLS_LENGTH_SEMANTICS';
  5. 查字符集:SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';
达梦
  1. VARCHAR2和VARCHAR(n) 相同,不超过32767
  2. 默认以字节为单位,也可以和oracle一样,使用VARCHAR2(3 CHAR)
  3. 字符集为:GB18030 一个汉字两个字节;字符集为:utf-8 一个汉字三个字节
Sql server

VARCHAR(n) n的范围是1到8000

Mysql

varchar(L),可变长字符串,字符为单位,跟编码有关,MySQL要求一个行的定义长度不能超过65535即64K

大文本

oracle达梦sql servermysql
CLOB 最大长度4G
LONG 最多2G,限制较多,推荐使用CLOB
TEXT/LONG/LONGVARCHAR/CLOB
最大为 100G-1 字节
TEXT 2^31-1个字节text类型

4. 日期和时间

oracle

  1. DATE 存储日期和时间 精确到秒
  2. TIMESTAMP 比DATE精度更高可以精确到微妙
  3. TIMESTAMP WITH TIME ZONE 时区信息保存在列数据中
  4. TIMESTAMP WITH LOCAL TIME ZONE 将用户输入的时间转换为数据库服务器所在时区的时间
达梦
  1. DATE 仅日期 TIME 仅时间 TIME(6)微妙级别
  2. TIMESTAMP / DATETIME 日期+时间 可以精确到小数秒 0-9,缺省精度 6,与 DATE 类型相同,DM 不计算’1582-10-05’到’1582-10-14’之间的 10 天。
  3. TIME WITH TIME ZONE 仅时间带时区
    DATETIME/TIMESTAMP WITH TIME ZONE 日期+时间带时区,时区部分的实质是 INTERVAL HOUR TO MINUTE 类型,取值范围:-12:59 与 +14:00
  4. TIMESTAMP WITH LOCAL TIME ZONE 可以将WITH TIME ZONE转化为本地时区类型
Sql server
  1. DATE 仅日期 0001-01-01到9999-12-31;TIME 仅时间 7位 100ns
  2. DATETIME类型:1753-01-01到9999-12-31
    DATETIME2类型: 0001-01-01到9999-12-31 秒7位 100ns
  3. datetimeoffset 同DATETIME2带时区
  4. TIMESTAMP 时间戳 数据发生变化自动更新,不可显示插值
Mysql
  1. date 3字节 yyyy-MM-dd
    time 3字节 HH:mm:ss
  2. datetime 8字节 yyyy-MM-dd HH:mm:ss 1000到9999 5.6支持毫秒
    timestamp 4字节 yyyy-MM-dd HH:mm:ss 1970年开始
  3. 时区业务层处理

参考

达梦数据库官网

Sql server官网

从Oracle迁移达梦:

  1. 数字类型,达梦NUMBER(p,s)标度不超过精度

  2. 字符串类型,达梦varchar和varchar2用法相同;varchar(3 char)是3个字符和varchar(3)不同;oracle插入空字符串变为NULL,跟达梦不同

  3. 日期类型,达梦DATE仅日期,带时间用timestamp或datetime


http://www.kler.cn/a/461181.html

相关文章:

  • uniapp——App下载文件,保存、打开文件(二)
  • 王佩丰24节Excel学习笔记——第二十三讲:饼图美化与PPT图表
  • ubuntu查看当前哪些进程在使用网络流量(好用的方法)
  • R语言6种将字符转成数字的方法,写在新年来临之际
  • 第17篇 使用数码管实现计数器___ARM汇编语言程序<四>
  • cad学习 day12客餐厅立面
  • 金融租赁系统助力企业转型与市场竞争力提升
  • 如何通过HTTP API更新Doc
  • 区块链技术在电商API接口中的应用探索与前景分析
  • 17000.机器学习-数字1-9实例
  • WPF使用OpenCvSharp4
  • 矩阵的因子分解2-满秩分解
  • PHP+Redis的基本操作方法
  • 动态吸震器在汽车降噪中的创新应用——电磁正反馈调节系统
  • 【机器学习篇】从新手探寻到算法初窥:数据智慧的开启之门
  • sql特殊查询记录
  • uniapp - 小程序实现摄像头拍照 + 水印绘制 + 反转摄像头 + 拍之前显示时间+地点 + 图片上传到阿里云服务器
  • 线性代数期末复习 [基础篇]
  • Three.js教程004:坐标辅助器与轨道控制器
  • <Uniswap v3 数学洞察>笔记(part 2)