Oracle 数据类型
字符
char(2000)
2000个字节(2000个英文,666个汉字——utf8,1000个汉字——gbk)
nchar(1000)
1000个字符(1000个英文,1000个汉字——utf8,1000个汉字——gbk)
varchar2(4000)
4000个字节 (4000个英文,1333个汉字——utf8,2000个汉字——gbk)
nvarchar2(2000)
2000个字符(2000个英文,2000个汉字——utf8,2000个汉字——gbk)
char和nchar是固定长度存储(不足会自动补齐你指定的长度)
varchar和nvarchar是可变长度存储(按实际字符串长度存储)
n表示按字符存储(不加n按字节存储)
drop table t_user;
-- create table t_user (name char(10)); -- 10 6
-- create table t_user (name nchar(10)); -- 10 10
-- create table t_user (name varchar2(10)); -- 3 2
create table t_user (name nvarchar2(10)); -- 3 2
insert into t_user values ('Tom');
insert into t_user values ('我们');
select * from t_user;
select length(name) from t_user;
数值
int/long 存整数
number/float 存小数
number(m, n) 存指定精度的小数
number(5, 2) [-999.99, 999.99]
insert into t_user values (-999.99);
insert into t_user values (999.99);
insert into t_user values (-999.945); -- -999.95
insert into t_user values (-999.995); -- 超出精度
number(5, -2)
create table t_user (salary number(5, -2));
insert into t_user values (12345.99); -- 12300
insert into t_user values (12355.99); -- 12400
注意:没有double
时间日期
date 年月日时分秒
timestamp 年月日时分秒毫秒
create table t_user (birth date);
insert into t_user values (sysdate);
create table t_user (birth timestamp);
insert into t_user values (systimestamp);
二进制
blob binary large object
可以含有图片、影像、文本数据
clob character large object
只能含有文本数据
没有长度限制(比char类型有长度优势)