oracle数据类型

 

    长度单位-字节 长度单位-字符

一般

储存

字符 char 定长字符串,用空格补齐,最多2000字节,不指定时默认为1   性别01
varchar2 变长字符串,最多4000字节(一个英文1字节,一个汉字3字节)   姓名
nvarchar2  

包含UNICODE格式数据的变长字符串,最多存储4000字节,

一个UNICODE占4字节,单位是字符,所以nvarchar2(20)可以存20个汉字

 
数字 number

number(P,S),P有效数字位数,即小数点左边位数,

最多38个有效数字;S小数点数字的位数

   
integer

integer是number的子类型,它等同于number(38,0),

用来存储整数。

若插更新的数值有小数,则会被四舍五入。

   
浮点数 binary float

BINARY FLOAT 是 32位、单精度浮点数字数据类型。

可以支持至少6位精度,每个BINARY FLOAT 的值需要5个字节,

包括长度字节。

   
binary double

BINARY DOUBLE 是为 64位,双精度浮点数字数据类型。

每个BINARY DOUBLE的值需要 9个字节,包括长度字节。

   
日期 date

DATE 是最常用的数据类型,日期数据类型存储日期和时间信息。

虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型

具有特殊关联的性。为每个日期值,Oracle存储以下信息: 世纪、年、

月、曰期、小时、分钟和秒。一般占用7个字节的存储空间。

   
timestamp

这是一个7字节或 12字节的定宽日期,时间数据类型。它与 DATE 数据

类型不同,因为TIMESTAMP 可以包含小数秒,带小数秒的 TIMESTAMP

在小数点右边最多可以保留9位。

   
timestamp with time zone 这是 TIMSTAMP 类型的变种,它包含了时区偏移量的值。    
timestamp withlocal time zone 将时间数据以数据库时区进行规范化后进行存储    
LOB

CLOB 类型

(Character Large Object)

二进制数据,存储单字节和多字节字符数据。最大长度 4G   非常多文字

BLOB 类型

(BinaryLarge Object)

它存储非结构化的二进制数据大对象,它可以被认为是没有

字符集语义的比特流,一般是图像、声音、视频等文件。最大长度 4G。

  图片、影音
NCLOB 数据类型   存储 UNICODE 类型的数据,最大长度4G。  

LONG

 

LONG

 

它存储变长字符串(超长字符串),最多达 2G 的字符数据

(2GB是指2千兆字节,而不是 2千兆字符)。存储大于varchar2小于clob

 
LONG RAW 能存储 2GB 的原始二进制数据,可存放多媒体图象声音等。    
RAW

用于存储二进制或字符类型数据,必须制定长度。这种数据类型

存储的数据不会发生字符集转换。可存放多媒体图象声音等。

   

 

float数据类型

float(n)

n代表的是2进制的精度,转换为10进制需要乘0.3

1.234567e6=1.234567*10的6次幂

如果插入数据是1234567

float(3)的结果是1000000,可以理解为1.234567e6, 3*0.3=0.9,小数点后保留0位,就是1e6.

float(4)的结果是1200000,可以理解为1.234567e6, 4*0.3=1.2,小数点后保留1位,就是1.2e6.

float(5)的结果是1200000,可以理解为1.234567e6, 5*0.3=1.5,小数点后保留1位,就是1.2e6.

float(7)的结果是1230000,可以理解为1.234567e6, 7*0.3=2.1,小数点后保留2位,就是1.23e6.

float(11)的结果是1234000,可以理解为1.234567e6, 11*0.3=3.3,小数点后保留3位,就是1.234e6.

 

sqlplus更改session日期会话

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

select sysdate from dual;

select to_date('2013-02-09 23:59:59','yyyy-mm-dd hh24:mi:ss') from dual;

 

alter session set nls_timestamp_format='yyyy-mm-dd hh24:mi:ss.ff';

select to_timestamp('2013-02-09 23:59:59.123','yyyy-mm-dd hh24:mi:ss.ff') from dual;

 

alter session set nls_timestamp_tz_format='yyyy-mm-dd hh24:mi:ss.ff tzh:tzm';

select systimestamp from dual;

 

确定一个时间范围:

select 'TRUE' from dual where to_date('2013-04-05 13:48:22','YYYY-MM-DD HH24:MI:SS') between date'2013-04-05' and date'2013-04-06'-1/86400;

select 'TRUE' from dual where to_date('&X','YYYY-MM-DD HH24:MI:SS') between date'2013-04-05' and date'2013-04-06'-1/86400;

select 'TRUE' from dual where to_date('&X','YYYY-MM-DD HH24:MI:SS') >= date'2013-04-05' and to_date('&X','YYYY-MM-DD HH24:MI:SS')<= date'2013-04-06'-1/86400;

select 'TRUE' from dual where to_char(to_date('&X','YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD') = '2013-04-05';

显示日期

select to_char(sysdate,'YYYY"年"MM"月"DD"日"') from dual;
select to_char(sysdate,'YYYY"年"MM"月"DD"日" HH24"点"MI"分"SS"秒"') from dual;

 

char(1) 最小1最大2000,代表字节;定长

char(12 char) 表示可以存12个字符

varchar2和char基本一样;可变长

可以用lengthb来测试字符所占据的字节数

posted @ 2021-09-01 17:20  十方劫  阅读(318)  评论(0编辑  收藏  举报