data type
强数据类型
字符串:
char(size):
定长,不会自动回收,size:1-2000个字节
varchar2(size):
白哦长
DBMS在合适的时机回收剩余的字节空间
size:1-4000个字节
create table stu2(name varchar2(30),sex char(1),pid char(18),addr varchar2(100));
编解码:
查看数据库的编码的格式:
select userenv('language') from dual;
dual虚表
select userenv('language') from dual;
编译:字符-》字节码
UTF-8一个中文占用3个字节
解码:
字节码-》字符
GBK:1个中文占用2个字节
nchar(size):
size:代表字符长度
create table t4(nname nchar(5));
long
最多放2G字节
clob:
最多放4G字节
数值类型
number(p,s)
number(p):
不超过p为整数:
小数位:四舍五入
number(p,s)
p>s>0
整数不超过p-s为
小数位s为
超过,四舍五入
不足:用0补齐
s<0<p
整数位:不超过p-s为
对小数点左侧的s为清零,四舍五入
小数位:没有小数位
直接清零
number
整数小数自适应
较少用
numeric(size)
等同number(size)
int整数
https://blog.csdn.net/IT_jinxing/article/details/77159519
Oracle中数据类型number(m,n)中m表示的是所有有效数字的位数,n表示的是小数位的位数。m的范围是1-38,即最大38位。
1> .NUMBER类型细讲:
oraclenumber datatype 语法:NUMBER[(precision [, scale])]
简称:precision --> p
scale --> s
NUMBER(p, s)
范围: 1 <= p <= 38,
-84 <= s <= 127
保存数据范围: -1.0e-130 <= number value < 1.0e+126
保存在机器内部的范围: 1 ~ 22 bytes
有效位:从左边第一个不为0的数算起的位数。
s的情况:
s > 0
精确到小数点右边s位,并四舍五入。然后检验有效位是否 <= p。
s < 0
精确到小数点左边s位,并四舍五入。然后检验有效位是否 <= p + |s|。
s = 0
此时NUMBER表示整数。
eg:
Actual Data Specified As Stored As
----------------------------------------
123.89 NUMBER 123.89
123.89 NUMBER(3) 124
123.89 NUMBER(6,2) 123.89
123.89 NUMBER(6,1) 123.9
123.89 NUMBER(4,2) exceeds precision (有效位为5, 5 > 4)
123.89 NUMBER(6,-2) 100
.01234 NUMBER(4,5) .01234 (有效位为4)
.00012 NUMBER(4,5) .00012
.000127 NUMBER(4,5) .00013
.0000012 NUMBER(2,7) .0000012
.00000123 NUMBER(2,7) .0000012
1.2e-4 NUMBER(2,5) 0.00012
1.2e-5 NUMBER(2,5) 0.00001
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error (有效位为5+2 > 6)
1234.9876 NUMBER(6) 1235 (s没有表示s=0)
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error (有效位为8 > 7)
123456789 NUMBER(5,-4) 123460000
1234567890 NUMBER(5,-4) Error (有效位为10 > 9)
12345.58 NUMBER(*, 1) 12345.6
0.1 NUMBER(4,5) Error (0.10000, 有效位为5 > 4)
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
日期:
date
select sysdate from dual;
--格式dual虚表
insert into t3 values(to_date('1999-09-07','yyyy-mm-dd'));
select to_char('birthday,'yyyy-mm-dd') from t3;
select to_char(bithday,'yyyy-mm-dd hh m:mi:ss') from t3;
二进制数据(图片影音)
raw(size)
size:2000个字节
long raw
blob
练习:
员工 emp(id,name,sex,birthday,photo,salary)
插入2条数据
查询