Oracle第二章——Oracle数据类型

当创建一个表时,需要为表的各个列指定数据类型,Oracle的数据类型主要有5种,字符类型、数值类型、日期时间类型、LOB类型和伪列。

一、字符类型

  1、CHAR类型

    定长字符串,长度为1~2000字节,如果定义时未指定大小,默认为1,使用时,若存储的值大小小于指定的长度,则用空格填充剩余长度,

    若大于指定长度,则报错。示例:CHAR(20),若此时存储一个长度为10的字符串,则还是占用20个字节的空间。(此外,还可以用

    CHAR(20CHAR)的方式进行定义,这种方式的意思是存储多少个字符,而不是字节)。

  2、VARCHAR2类型

    可变字符串,长度为1~4000字节,定义时需指定大小,使用时,若存储的值大小小于指定的长度,则长度缩小为值的大小,若大于指定长度,

    则报错。(Oracle也有VARCHAR类型,但该类型有可能会被在未来的版本中被重新定义,所以不推荐使用)示例:VARCHAR2(20),

    若此时存储一个长度为10的字符串,则占用10个字节的空间。(也可以使用VARCHAR2(20CHAR)的方式定义,意思同CHAR类型)。

  3、NCHAR类型

    存储Unicode字符的定长字符串,既存储双字节字符类型数据,每个字符占用2个字节,其他特性与CHAR类型相似。示例:NCHAR(20),

    若此时存储一个长度为10的字符串,则占用40个字节的空间。

  4、NVARCHAR2类型

    存储Unicode字符的可变字符串,其他特性与VARCHAR2类型相似。示例:NVARCHAR2(20),若此时存储一个长度为10的字符串,

    则占用20个字节的空间。

二、数值类型

  1、NUMBER类型

    NUMBER类型可以存储正数、负数、0、定点数和浮点数。格式为NUMBER(P,S),其中P为精度,表示数值的有效位数(从左边第一个不为0

    的数字算起,不包括小数点和负号为有效位数),在1~38之间。S为范围,表示小数点右边数字的位数,在-84~127之间。使用规则:

    将值精确到小数点右边S位并四舍五入,判断有效位数是否<=P。以下结合几个示例进行说明:

    (1)、NUMBER(3):当要存储的值是100时,精确到小数点右边0位并四舍五入后值为100,有效位数为3,可以存储。当值是3.563时,

        精确到小数点右边0位并四舍五入后值为4,有效位数为1,可以存储。当值是2350.5时,精确到小数点右边0位并四舍五入后值为2351,

        有效位数为4,不可以存储。

    (2)、NUMBER(3,2):当要存储的值是100时,精确到小数点右边2位并四舍五入后值为100.00,有效位数为5,不可以存储。当值是3.563时,

        精确到小数点右边2位并四舍五入后值为3.56,有效位数为3,可以存储。当值是2350.5时,精确到小数点右边2位并四舍五入后

        值为2350.50,有效位数为6,不可以存储。

    (3)、NUMBER(3,-2):当S为负数时,较为特殊,会将值左边|S|(|S|为S的绝对值)位的值进行四舍五入后取0且不计入有效位数,

        如:当要存储的值是100时,实际值为100,有效位数为1,可以存储。当值是3.5时,实际值为0,有效位数为1,可以存储。

        当值是2350.5时,实际值为2400,有效位数为2,可以存储。

  2、INTEGER类型

    是NUMBER的子类型,等同于NUMBER(38,0),用于储存整数。

  3、FLOAT类型

    是NUMBER的子类型,格式为FLOAT(n),n在1~126之间,这个值是二进制的精度,最大值126转换为十进制大概为38。

三、日期时间类型

  1、DATE类型

    存储日期和时间的类型,使用7个字节的固定长度,存储世纪、年、月、日、时、分、秒,最小时间为公元前4712年1月1日,最大时间为

    公元9999年12月31日。可以使用SYSDATE函数获取当前时间的DATE类型。

  2、TIMESTAMP类型

    存储日期和时间的类型,使用7到12字节长度,秒数精确到小数秒(不指定精度的情况下为小数点后6位,指定精度可以达到9位),

    且包含时区信息。可以使用SYSTIMESTAMP函数获取当前时间的TIMESTAMP类型。

四、LOB类型

  1、CLOB类型

    存储大量字符数据,可以存储单字节字符数据和多字节字符数据,主要用于存储非结构化XML文档。

  2、BLOB类型

    存储二进制对象,如图片、视频和音乐。

  3、BFILE类型

    存储一个定位器,该定位器指向一个服务器文件系统的二进制文件,最大为4G。

  4、NCLOB类型

    与CLON类似,不过NCLON可同时支持固定宽度字符集和可变宽度字符集,最大为4G。

  操作LOB类型数据可以使用PL/SQL提供的DBMS_LOB程序包来完成,使用LOB类型要合理分配好表空间,否则会对性能造成影响。

五、伪列

  伪列的定义:类似于表中的列,但并未实际存储在表中,无法对伪列进行增删改。

  1、ROWID

    表中的每一行都有一个地址,可以唯一的标识数据库中的一行,ROWID可以返回这个地址,可以用来作为查询条件查询唯一行,提高查询效率,

    还可以查看行在表中是如何存储的。

  2、ROWNUM

    ROWNUM伪列可以为查询结果从1开始进行排序,可以用来限制返回行数,Oracle的分页就是使用ROWNUM实现的。需注意,使用ROWNUM

    必须包含1,否则无法查出数据,也就是说,ROWNUM=1可以查询出结果集中第一行的数据,但ROWNUM=2是无法查询任何数据的,

    还有ROWNUM>2也是无法查询出任何数据的,但使用ROWNUM<2就可以查询出两条数据,这是因为ROWNUM是一个从1开始的伪列,

    Oracle认为ROWNUM>n(n为大于1的自然数)的条件不成立,所有无法查出数据。

  (关于伪列的更多资料可以查看官方文档:http://docs.oracle.com/cd/E11882_01/server.112/e41084/pseudocolumns.htm#SQLRF0025

时间: 2024-12-14 17:23:18

Oracle第二章——Oracle数据类型的相关文章

第二章 Oracle数据库应用

第二章   Oracle数据库应用2.1 表空间和用户权限下管理    2.1.1 表空间        2.1.1.1 分类:            永久性表空间            临时性表空间            撤销表空间        2.1.1.2 表空间的目的            对不同的用户分配不同的空间            将不同的数据文件创建到不同的磁盘        2.1.1.3 创建表空间            2.1.1.3.1 语法:            

第二章 Mysql数据类型简介

第二章 Mysql数据类型简介 ·     第一节:整数类型.浮点数类型和定点数类型 整型: ·TinyInt   (1字节) ·SmallInt   (2字节) ·MediumInt  (3字节) ·Int和Integer(4字节) ·BigInt    (8字节) 浮点数和定点数: ·Float   (4字节) ·Double  (8字节) ·Decimal(M,D) <定点数>(M表示总长度<包含小数点>,D表示小数位数) ·      第二节:日期与时间类型 ·Year  

第二章:数据类型和运算符

第二章:数据类型和运算符 计算机中的进制 **标识符 总的命名规则:见名知意.如果有多个单词组成,首单词小写,其余单词的首字母大写(驼峰命名法).1.首字母只能是字母,下划线和$2.其余字母可以字母,下划线,$和数字3.不能使用预留关键字4.严格区分大小写 数据类型*** 基本数据类型 整型 byte(1个字节) short(2个字节) int(4个字节) long(8个字节) 浮点型 float(4个字节) double(8个字节) 字符型 char(2个字节)采用Unicode码 布尔型 b

第二章 变量,数据类型和运算符

第二章 &变量,数据类型和运算符 英文新识: double 双精度浮点 string  字符串 character  字母 integer  整数 Scanner  扫描仪 score  分数         name  名字     boolean  布尔   true  真          false  假 语法新知: double score =98.5; //声明双精度浮点型变量score存储分数 String name="张大侠";        //声明字符串型变

第二章 python数据类型

第一节    数字和字符串类型 123和“123”一样吗 () [] {} 计算机是用来辅助人们的,在程序设计中也映射了现实世界的分类,以便于抽象的分析. 数字 字符串 列表 元组 字典 我们通过数据类型去查看一些简单的数据类型,python会自动识别数据的类型 >>> num1=123 >>> type(123) <type 'int'> >>> type(num1) <type 'int'> >>> num

第二章 Mysql 数据类型简介

第一节:整数类型.浮点数类型和定点数类型 1,整数类型 2,浮点数类型和定点数类型 M 表示:数据的总长度(不包括小数点):D 表示:小数位:例如 decimal(5,2) 123.45存入数据的时候,按四舍五入计算 第二节:日期与时间类型 第三节:字符串类型 第四节:二进制类型

Java第二章:数据类型和运算符

今天刚上课,杨老师讲了进制之间的相互转换:16进制:1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.已经掌握,就一笔带过! 十进制整数,如:99, -500, 0 八进制整数,要求以 0 开头,如:0 15 十六进制数,要求 0x 或 0X 开头,如:0x 15 JAVA是强类型语言,标识符的命名规则: 只能是字母,_,数字,$组成,并且第一位不能是数字!不能使用关键字,严格区分大小写,驼峰命名法,做到见名知意! java中的数据类型: 基本数据类型:4类8种,整数型:byte(1字

第二章 js数据类型和变量

一.驼峰命名法 第一个单词首字母大写,如果有多个单词的话其他的单词首字母大写. eg:nickName 二.prototype现象 新的命名规范. 常用的:以下划线为首字母(变量为对象的私有成员变量) 三.js中基本的数据类型 1.String:字符串 2.Number:数字 3.Boolean:布尔类型,只有false和true两种取值. 四.String 单引号或者双引号都是可以被识别的,但是应该统一用同一种. 引号中间支持转义符,可以在字符串中插入/n,能被识别. 五.字符串转换 很多时候

第二章 变量 数据类型 运算符

一. 1.Java常用数据类型 整型   int    int i=1; 双精度浮点型   double   double  n=1.0; 字符型   char   char   g='女'; 字符串型   String   String  m="nn"; 二.变量名规则 1.变量必须以字母,下划线"_"或$开头 2.变量可以包括数字,但不能以数字开头 3.除了"_"或"$"符号外,变量名不能包含任何特殊字符 4.不能使用Ja