Oracle数据类型.ppt
《Oracle数据类型.ppt》由会员分享,可在线阅读,更多相关《Oracle数据类型.ppt(40页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Oracle数据类型数据类型SsmOracle数据类型概述LONGNVARCHAR2VARCHAR2NCHARCHARRAWBLOBLONG RAWNUMBERBINARY_FLOATBINARY_DOUBLEBFILECLOBNCLOBDATETIMESTAMPTIMESTAMPWITH TIME ZONETIMESTAMPWITH LOCAL TIME ZONEINTERVALYEAR TO MONTHINTERVALDAY TO SECONDROWIDUROWID字符类型字符类型数值类型数值类型二进制类型二进制类型日期和时间日期和时间类型类型LONG类型类型LOB类型类型ROWID/UR
2、OWID类型类型Ssm字符类型 概述Oracle中的字符数据类型包括CHAR、VARCHAR2以及带“N”的相应变体(NCHAR和NVARCHAR2),这些字符数据类型能存储2000字节或4000字节的文本。这些文本会由数据库根据需要在不同的字符集(character set)之间进行转换。CHAR、VARCHAR2、NCHAR、NVARCHAR2都是以同样的格式进行存储。Ssm字符类型 NLS(国家语言支持)NLS全称是National Language Support。NLS是数据库的一个非常强大的特性,控制着数据的许多方面,最重要的两个方面是: 文本数据持久存储在磁盘上时如何编码 透明地
3、将数据从一个字符集转换到另一个字符集Ssm字符类型 如何查看当前的数据库字符集设定 SELECT * FROM nls_database_parameters WHERE parameter=NLS_CHARACTERSETSsm字符类型 CHARCHAR是定长字符串类型,总会用空格填充来达到其最大长度。CHAR字段最多可以存储2000字节的信息。正常情况下,size的单位默认为BYTE。CHAR(size BYTE|CHAR)Ssm字符类型 VARCHAR2VARCHAR2是变长字符串类型,不会用空格填充至最大长度。此类型最多可存储4000字节的信息。VARCHAR2(size BYTE|C
4、HAR)为什么称为VARCHAR2而不是VARCHAR?也有一个数据类型是VARCHAR,然而,Oracle公司声称他们将来可能会改变VARCHAR的字段行为,我们无法知道“改变后的”VARCHAR将会如何。所以,当前应尽量避免使用VARCHARSsm字符类型 NCHAR/NVARCHAR2两种数据类型用于包含UNICODE格式数据的字符串,以支持某些应用中对多字节数据的需求。两者的存储字符数上界分别是2000/4000字节。 NVARCHAR2和NCHAR与相应的VARCHAR2和CHAR的区别在于: 文本采用数据库的国家字符集来存储和管理,而不是默认字符集 长度总是字符数,而CHAR/VA
5、RCHAR2可能会指定是字节还是字符Ssm字符类型 判断:vchar_col列可以存储多少字符(每字符4字节)? 1000字符VARCHAR2中存储的字节数上界是4000。如果选择的字符集中每个字符都要使用4个字节来表示,那么vchar_col字段只能放下1000个字符CREATE TABLE T ( vchar_col VARCHAR2(4000 CHAR);Ssm字符类型 判断:是否可以如下定义vchar_col列? 不可以NVARCHAR2中存储的字节数上界也是4000。但是定义时长度参数总是表示字符数,没有字节(BYTE)还是字符(CHAR)的选择问题CREATE TABLE T (
6、vchar_col NVARCHAR2(4000 CHAR);Ssm数值类型 NUMBEROracle9i Release 2及以前的版本只支持一种适合存储数值数据的固有数据类型。在所有的Oracle版本中NUMBER都得到支持 NUMBER类型精度可达38位。可以存储小到10e-130、大到(但不包括) 10e126的任何数值Ssm数值类型 NUMBER 精度(precision)也称为总位数,取值范围138,默认值为38,也可以用字符*表示38 小数位数(scale)也称为小数点右边的位数,合法值-48127,默认值取决于是否指定了精度。如果没有指定精度,小数位数则默认有最大的取值区间。如
7、果指定了精度,小数位数默认为0NUMBER(precision,scale)Ssm数值类型 判断:num_col字段是否可以存储小数? 可以如果没有指定精度,小数位数则默认有最大的取值区间,换句话说,定义NUMBER的列会存储浮点数(有小数)CREATE TABLE T ( num_col NUMBER);Ssm数值类型 判断:num_col字段是否可以存储小数? 不可以如果指定小数位数为0,那么相应字段只能存储整数数据(没有小数)CREATE TABLE T ( num_col NUMBER(5);Ssm数值类型 判断:num_col字段是否可以存储123456? 不可以123456含有6位
8、数字,超过了定义时所规定的精度(5位)。因此,可以使用精度来保证某些数据完整性约束。CREATE TABLE T ( num_col NUMBER(5,0);Ssm数值类型 判断:向num_col插入123.456,Oracle是否会报错? 不会小数位数可以用于控制数值的“舍入”。尽管123.456超过了5位,但是Oracle会利用小数位数将123.456”舍入”为只有两位小数,这就得到了123.46,再根据精度来验证123.46,满足精度要求CREATE TABLE T ( num_col NUMBER(5,2);Ssm数值类型 判断:向num_col插入1234,Oracle是否会报错?
9、会数值1234.00的总位数超过了5位。指定小数位数为2时,小数点左边最多只能有3位,右边有两位。因此,1234超过了定义的精度。NUMBER(5,2)列的存储范围是-999.99999.99CREATE TABLE T ( num_col NUMBER(5,2);Ssm数值类型 判断:是否可以如下定义num_col字段? 可以将小数位数定义为负值,作用在于允许对小数点左边的值舍入CREATE TABLE T ( num_col NUMBER(5,-2);Ssm数值类型 判断:向num_col插入123.456,数据库会最终存储的数值是多少? 100就像NUMBER(5,2)将值舍入为最接近的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据类型
限制150内