一、Oracle数据库中的数据类型
1.1、关于mysql数据库中的数据类型
* int 整数型
* bigint 长整型
* float 单精度浮点型
* double 双精度浮点型
* char 字符型【长度不可变】
* varchar 字符型【长度可变】
* date 日期类型
* blob 二进制大对象【Binary Large OBject, 存储图片、声音、视频...】
* clob 字符大对象【Character Large OBject,可以存储4G+的字符串】
1.2、关于oracle数据库中的数据类型
* number
-number(3) 整数型:3表示长度,最大值是999
- number(3,2) 浮点型:3是有效数字的个数,2是小数位的个数
- 案例:
create table t_product(
price number(3,2)
);
insert into t_product(price) values(10); //ORA-01438: 值大于为此列指定的允许精度
insert into t_product(price) values(1); //可以
insert into t_product(price) values(1.2356); //可以
* char 字符型【长度不可变】
* varchar2 字符型【长度可变】
* date 日期类型
* blob 二进制大对象【Binary Large OBject,存储图片、声音、视频...】
* clob 字符大对象【Character Large OBject,可以存储4G+的字符串】
1.3、关于blob类型:
create table t_movie(
id number(10) primary key,
name varchar2(32),
image blob
);
当一张表中的某个字段的数据类型是blob的时候,该字段插入数据的时候不能使用insert语句,
insert语法无法完成,必须使用编程语言中提供的IO流来完成插入操作。
1.4、char和varchar的区别
* char是定长字符串
* varchar是可变长度字符串
* 假设在建表的时候,给name字段设置的数据类型是char(10),将来向这个name字段中插入"jack"的时候,
底层实际上存储的是:“jack+6个空格"。使用不恰当的时候会浪费存储空间。
* 假设在建表的时候,给name字段设置的数据类型是varchar(10),将来向这个name字段中插入"jack"的时候,
底层实际上存储的是:“jack"。它会根据数据的实际长度进行空间的分配。
* char和varchar怎么选择使用?
- 当某个字段中存储的数据长度是不变的,例如:性别、生日这样的字段还是采用char类型来定义,
效率高,也不会浪费空间。
- 当这个字段的长度不固定的时候,例如,这个字段是用来存储一个人的简介的时候,建议采用varchar类型。
1.5.varchar和varchar2的区别
* varchar是SQL语句当中的标准,所有的数据库都支持。
* varchar2是varchar第二代,是Oracle数据库中特有的,其它数据库中没有。
* varchar采用一个字节编码
* varchar2采用两个字节编码,所以varchar2可以容纳更多国家的语言。varchar2的容量较大。
* 在实际开发中尽量使用标准,使用varchar,即使在程序中使用了varchar,到Oracle数据库中也会自动变成varchar2
二、数据处理函数<