一、Oracle数据中常用的数据类型
1.number(p[,s]):表示数字类型。
p:表示数字的有效长度
s:表示小数点后的位数。
整数位最大位数: p-s
reg:number(5,2):最大值999.99。
number(2):最大值为99
2.char 表示定长字符串类型。
不规定 默认为1个字节。
规定:char(n)
最大字节数:2000个。
定长:在存储时,不满规定个数时,也会占用内存规定的字节数。
reg: char(10),当存了"a"时,也占用内存10个字节。
3.varchar2 表示可变字符串类型
规定:varchar2(n):
可变,会按照实际存储的字节数占用内存,不可以超出规定长度。
最大字节数4000.
4.long类型:
最多存2G的字节数
5.clob类型:
最多存4G的字节数。
6.date类型:日期类型
默认格式: dd-mon-rr
占用7个字节。
7.timestamp:时间戳类型
可以精确到时分秒。
二、null 关键字 NOT null 非空约束
1.建表期间,可以对某一字段进行非空约束,在insert时 ,此字段必须是要有数据。
reg: create table temp(
id number(4),
name varchar2()not null,
) ;
在insert时 name字段必须有值。
2.没有进行非空约束的字段都可以插入数据null
3.表中存在数据,不可以新增字段为非空字段。
4.对表中的任何字段进行非空约束的修改,eg:alter table tname modify colName null;
5.空值操作:
null:表示为空
(1)表中的任何字段,默认情况下都可以为null值
(2)not null 表示非空是一种约束,表示不能为空,必须有有效值
(3)插入数据时
reg: insert into emp (ename,empno) values('张三',2001)--此条记录中其他字段都是null
reg: insert into emp (empno,ename) values(2002,null)--此条记录中ename字段为null,别的字段也是null
(4)修改数据时
a.当空值为条件时
update emp set ename='zhangsan' where comm is null;
b.当被设置为空值时
update emp set ename=null where comm is null;
(5)当空值参与计算时,任何值加null都是null,null也不等于null
(6)空值操作函数
a. nvl(p1,p2)
如果p1的值为null,就用p2补上,否则使用p1
eg:计算员工的年收入
select ename,sal*12+nvl(comm,0) from emp;
eg:统计每个员工的奖金,如果没有奖金就发放50元
select nvl(comm,50) from emp;
b. nvl2(p1,p2,p3)
如果p1是null是用p3,如果不是null使用p2
eg:统计员工的额外补助,如果有奖金,补助50元,没有奖金补助10元
select nvl2(comm,comm+50,10) from emp;
三、default关键字:
1.建表期间,可以对某一字段设置默认值,在insert期间 ,如果不对此字段进行传值,那么此记录的这个字段就是默认值。
reg : create table temp(
id number(4),
name varchar(30)not null,
gender char(1) default 'm',
);
insert into temp (id,name) values(1001,'zhansna');
此记录的gender的值为'm'