预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共41页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第三章数据类型、表和数据库计算机科学与工程学院2013年3月数据类型、表和数据库1.字符型用来存储字符串或字符数据,主要类型有VARCHAR2、CHAR和LONG。(1)VARCHAR2(size)和NVARCHAR2(size)用来存储可变长的字符串或字符型数据,在使用时,须指明其最大字节数据,默认值和最小值均为1,最大为4000个字符。NVARCHAR2中存储中文字时,一个中文字当一个字符来处理.NVARCHAR2(10)是可以存进去10个汉字的,如果用来存英文也只能存10个字符。VARCHAR2中一个中文字当两个字符来处理,VARCHAR2(10)的话,则只能存进5个汉字,英文则可以存10个.NCHAR、NVARCHAR是以UNICODE-16存储,每个字符固定两个字节.例:varchar2(10)‘小王’oracle分配4个字符存放‘小王’,这样节省空间。即最多可以存放10个字符,但实际长度只有4个字符,因此只分配4个字符的空间.①createtables3(snochar(10),snamevarchar2(15))②insertintos3values(2010,'王');③insertintos3values(2010,'abcd');④select*froms3wherelength(sname)=4;⑤select*froms3wherelength(sno)=4;Sno为定长字符型,所以无论存放多少个字符,其长度都为10,因此查寻学号长度为4的数据,并没有结果。Oracle的数据类型(2)2.数字型数字型用于存储整数或实数。主要有:number、BINARY_INTEGER(1)NUMER(P,S)范围为:-10-38——1038,用于存储数字数据,包括整数或浮点数。在实际应用中,应指定该类型数据长度(p)和小数的位数(s)。在Oracle中其指定的长度不包含小数点和符号位。例:number(5,2):表示一小数有5位有效数,2位小数,范围为:-999.99——999.99例:number(5):表示5位整数,范围为:-99999——99999(2)BINARY_INTEGER它是PL/SQL的一个数据类型,它用于带符号的整数值,以2的补码的二进制形式进行存储。3.日期型(1)DATE类型:用于存储日期和时间信息,包括年、月、日、时、分、秒。(2)timestamp:是对date数据类型的扩展,精度比date高4.RAW和LONGRAWRAW和LONGRAW用来存储二进制数据。(1)RAWRAW是一种变长二进制数据类型,必须指定存储二进制数的最大字节数,最多存储2000字节信息。(2)LONGRAWLONGRAW能存储多达2G的二进制信息。5.ROWID数据库表中的每一行(ROW)都有一个地址,通过查询伪列ROWID获得该行地址。该伪列的值为16进制字符串,该串的数据类型为ROWID。其字符值的形式为:BLOCK.ROW.FILE。6.布尔型在表中无布尔型的字段类型,只有在PL/SQL中可以定义BOOLEAN型,它的值为TRUE、FALSE、NULL。在定义BOOLEAN型变量时可限定变量为NOTNULL,但此时必须为该变量初始化。7.复合类型(1)记录记录定义的格式如下:TYPERecord_typeISRECORD(Field1Datatype1[NOTNULL][:=Expression1],Field2Datatype2[NOTNULL][:=Expression2],…);在上述格式中Record_type是一种定义的记录类型。如果要定义记录类型的变量与已建立的某一关系表结构一致,可使用下列定义:Record_typenametable_name%ROWTYPE;(2)表PL/SQL中的表类似于C语言中的数组,并与其数组的处理方式类似,但实现方法不同。表必须定义该表类型,再声明一个属于该类型的变量,然后才能引用。定义表类型的格式如下:TYPETable_typeISTABLEOFtypeINDEXBYBINARY_INTEGER;一个PL/SQL表类似于数据库中的一个只有两列的表,一列的类型为BINARY_INTEGER,另一列的类型为定义中指定的类型。8.LOB类型LOB类型用来存储大型的对象,它可以是一个二进制数值或字符型值,其最大长度为4GB。LOB可包含没有结构特征的数据,对它的访问比对LONG或LONGRAW数据的访问更为有效,对它的限制更少。9.自定义子类型PL/SQL中除可使用预定义的子类型外,用户自己可以定义子类型,其格式为:SUBTYPEnew_typeISorig