达梦数据库支持的数据类型

时间:2024-03-13 13:10:19

达梦数据库支持的数据类型

达梦数据库的数据类型是很齐全的,oracle有的也基本有,达梦数据库为了跟oracle做兼容,特地设置了跟oracle一样的varchar2的类型。
字符型:char、varchar
数值类型:numberic、decimal、float、double等等
日期/时间类型:date、time、datetime(也可以写成timestamp)
大文本/多媒体类型:text、blob、clob、image等等

1、字符型
首先看一下字符类型char和varchar,这两类型的最大长度默认都是8188字节,具体情况受到页面大小和记录大小的共同限制。

create table tab_char
(
c1 char(10),
c2 varchar(10),
primary key(c1)
)
storage(on tbs1);
insert into tab_char values('aaa','bbb');
select * from tab_char;
达梦数据库支持的数据类型

2、数值类型
数值类型有numberic、decimal、float、double等等,number类型和Oracle的number类型并不完全一致,但是二者对于精度和标度的描述还是一致的。不过Oracle如果number不指定精度,则默认是38字节,而在达梦中,默认是20字节。
规律: number(a,b),b是小数位,a是表示整数位+小数位不能超过的和,可以等于。
另外整数位留下的机会是a-b得到的机会。
比如number(5,1), 表示留给整数位的有4位的机会(5-1=4),类似8.8888这类
比如number(5,4), 表示留给整数位的有1位的机会(5-4=1)。
比如number(5,0), 表示留给整数位的有5位的机会(5-0=5)。

create table tab_number
(c1 number,
c2 number(5, 1),
c3 number(5, 4),
c4 number(5, 0));

insert into tab_number values (1234567890123456789012, 1234.4, 0.1234, 132256);
insert into tab_number values (12345678901234567890, 1234.4, 0.1234, 12345);
select * from tab_number;
达梦数据库支持的数据类型

3、日期/时间类型
达梦数据库的日期相关类型:date、time、datetime(也可以写成timestamp),data类型把日期和时间分成了两个部分,对应两种不同的类型data和time,date的精度只到天,而time的精度到毫秒。达梦中也有即包括年月日也包括时分秒的数据类型datetime,也就是timestamp类型。
create table tab_date (date1 date, time1 time, datetime1 datetime);
insert into tab_date values ('2020-01-01', '16:22:57', to_date('2020-1-1 16:22:57', 'yyyy-mm-dd hh24:mi:ss'));
select * from tab_date;
达梦数据库支持的数据类型

4、大文本/多媒体类型
大文本/多媒体类型:text、blob、clob、image等等,text类型类似oracle中的long,不过没有long那么多的限制。text、blob、clob、image的最大长度都是1-2G,相当于oracle long字段的长度,blob和image类型的字段内容必须存储十六进制数字串内容。

create table tab_text (c1 text, c2 blob, c3 clob, c4 image );
insert into tab_text values('text','0x123456789','clob','0x987654321');
select * from tab_text;
达梦数据库支持的数据类型