以下是详细讲解“oracle常用数据类型说明”的完整攻略。
概述
Oracle 是目前世界上最流行的数据库之一,其数据类型非常丰富,可以满足各种数据存储的需求。在使用 Oracle 数据库时,掌握其常用数据类型的特点和使用方法,对于数据存储和检索是非常有帮助的。
常用数据类型说明
数值类型
数据类型 | 存储空间 | 描述 |
---|---|---|
NUMBER(p,s) | p/2-1字节 | 十进制数,p表示数字总位数,s表示小数点后的位数,最大精度是38位。 |
FLOAT(p) | p/2-1字节 | 浮点数,p表示二进制总位数。精度范围是不超过126位。 |
BINARY_FLOAT | 4字节 | 浮点数,范围是10的-38次方到10的38次方。 |
BINARY_DOUBLE | 8字节 | 浮点数,范围是10的-308次方到10的308次方。 |
DECIMAL(p,s) | p/2-1字节 | 十进制数,p表示数字总位数,s表示小数点后的位数,最大精度是38位。 |
INTEGER | 4字节 | 整型数,范围是-2147483648到2147483647。 |
SMALLINT | 2字节 | 短整型数,范围是-32768到32767。 |
NUMBER(1,-1) | 1字节 | 存储’Y’或’N’的长度为1的布尔型。 |
字符类型
数据类型 | 描述 |
---|---|
CHAR(m) | 定长字符串类型,m表示最大字符数(1~2000),不足的用空格填充。 |
VARCHAR2(m) | 可变长字符串类型,m表示最大允许字符数(1~4000),varchar2的存储空间比char类型更为节省。 |
LONG(n) | 长字符串类型,n表示最大允许字符数(1~2^31)。 |
CLOB(n) | 非常长的字符串类型,n表示最大允许字符数(1~2^31)。 |
NCHAR(m) | 宽字符定长类型,m表示最大字符数(1~2000),支持Unicode字符集,每个字符占用2个字节,不足的用空格填充。 |
NVARCHAR2(m) | 宽字符可变长类型,m表示最大允许字符数(1~4000),支持Unicode字符集。 |
NCLOB(n) | 非常长的宽字符串类型,n表示最大允许字符数(1~2^31),支持Unicode字符集。 |
VARCHAR(n CHAR) | 可变字符串,n表示最大的字符数目,CHAR仅是对COLLATION部分的声明,无实际意义。 |
日期和时间类型
数据类型 | 描述 |
---|---|
DATE | 存储日期和时间,精确到秒(YYYY-MM-DD HH24:MI:SS),范围从4712年1月1日到9999年12月31日。 |
TIMESTAMP | 存储日期和时间,有更高的精确度,精确到纳秒级别,精度范围从1970年1月1日到2100年12月31日。 |
TIMESTAMP WITH TIME ZONE | 存储带有时区的日期和时间(YYYY-MM-DD HH24:MI:SS TIMEZONE),精度范围从1970年1月1日到2100年12月31日。 |
INTERVAL YEAR TO MONTH | 存储时间跨度(+-9999年,+-11月)。 |
INTERVAL DAY TO SECOND | 存储时间跨度(+-106751991,+-23:59:59.999999)。 |
二进制类型
数据类型 | 描述 |
---|---|
RAW(n) | 存储二进制数据,n表示最大允许字节数,取值范围为1~2000字节。 |
BLOB(n) | 存储二进制大对象,n表示最大允许字节数,取值范围为1~2^31字节。 |
LONG RAW(n) | 存储非常大的二进制数据,n表示最大允许字节数,取值范围为1~2^31字节。 |
BFILE | 存储二进制文件对象(例如图片、音频、视频等)的指针,文件实际存储在操作系统上。 |
示例说明
示例一:插入数据时使用数据类型
在向数据表中插入数据时,需要明确每个字段的数据类型,以保证数据的真实性和安全性。例如,在向一个名称为“students”的表中插入学生信息时,可以使用以下 SQL 语句:
INSERT INTO students(id, name, age, sex, address)
VALUES (1, 'Tom', 18, 'Male', 'Beijing, China');
其中,id为数字类型,name、sex、address为字符类型,age为数字类型。
示例二:创建数据表时使用数据类型
在创建数据表时,需要定义每个字段的数据类型、长度等属性,以及其他约束条件,如主键、外键、唯一性等。例如,在创建一个名称为“students”的表时,可以使用以下 SQL 语句:
CREATE TABLE students(
id NUMBER(10) PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
age NUMBER(3),
sex VARCHAR2(6) CHECK(sex IN ('Male', 'Female')),
address VARCHAR2(200)
);
其中,id为数字类型,同时作为主键;name、sex、address为字符类型,其中name为必填项;age为数字类型,可以为空。性别必须是 Male 或 Female。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:oracle常用数据类型说明 - Python技术站