chap6管理和维护表.ppt_第1页
chap6管理和维护表.ppt_第2页
chap6管理和维护表.ppt_第3页
chap6管理和维护表.ppt_第4页
chap6管理和维护表.ppt_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

chap6管理和维护表,6.1表的概述,在Oracle数据库中,每个关系表都由许多列组成。给每一列指派特定的数据类型来定义将在这个列中存储得数据类型。,一、标量数据类型,1、CHAR最多可以以固定长度的格式存储2000个字符或字节。默认指定为以字符形式进行存储,这个数据类型是固定长度的,并且当位数不够时,需要在其右边添加空格来补满。CREATETABLEtest(namechar(20)2、VARCHAR和VARCHAR2最多可以以可变长度来存储4000B,因此不需要空格来作补充。VARCHAR2比VARCHAR更适合使用,由于兼容性的原因,所以仍然在Oracle数据库中保留着VARCHAR。CREATETABLEtest(namevarchar2(20),一、标量数据类型,3、NCHARNLS(nationallanguagesupport,国际语言支持)的数据类型仅可以存储由数据库NLS字符集定义的Unicode字符集。该数据类型最多可以存储2000B。NCHAR的列在位数不够时需要在右边填充空格。CREATETABLEtest(nameNchar(20)注意:在Oracle9i数据库及其更新的版本中,仅使用Unicode数据类型4、NVARCHAR2NLS的数据类型与VARCHAR2数据类型等价。这个数据类型最多可存储4000B。CREATETABLEtest(nameNvarchar2(20)注意:在Oracle9i数据库及其更新的版本中,仅使用Unicode数据类型,一、标量数据类型,5、NUMBER用于存储零、正数、定长负数以及浮点数。以NUMBER(P,S)的形式来定义数字的精度和范围。p表示精度(1-38),它表示存储在列中数字的总长度是p位。s表示范围,它表示小数点后的位数。该取值范围可以从-84到127。#使用精度5来定义一个正数(如12345)CREATETABLEtest(namenumber(5)#使用精度5和范围2来定义一个数字。如12.34。CREATETABLEtest(namenumber(5,2)6、LONGLONG类型的列存储可变长度的字符串,最多可以存储2GB的数据。LONG类型的列有很多在VARCHAR2类型列中所具有的特征。可以使用LONG类型的列来存储LONG类型的文本字符串。LONG数据类型的使用是为了向前兼容的需要。建议使用LOB数据类型来代替LONG类型。例如:CREATETABLEtest(namelong),一、标量数据类型,7、DATE用于在数据库中存储日期和时间。存储时间的精度可以达到1/100s。不提供时区的相关信息。CREATETABLEtest(nameDATE)8、TIMESTAMP使用年、月、日、小时、分钟、秒域来对日期/时间提供更详细的支持。最多可以使用9位数字的精度来存储秒(受底层操作系统支持的限制)。这个数据类型没有时区的相关信息,CREATETABLEtest(timestamp_columnTIMESTAMP);,一、标量数据类型,9、RAW用于存储raw类型的二进制数据。最多可以存储2000B。建议使用BLOB来代替它。CREATETABLEtest(raw_columnRAW(2000);10、LONGRAW用于存储raw类型的二进制数据。最多可以存储2GB的数据。建议使用BLOB来代替它。CREATETABLEtest(raw_columnLONGRAW);,一、标量数据类型,11、CLOB用于存储基于字符的大对象。可存储4GB。CREATETABLEtest(clob_columnCLOB);13、BLOB最多可以存储4GB数据的二进制大对象,比如照片、PPT、二进制图像等。CREATETABLEtest(blob_columnBLOB);,一、标量数据类型,14、BFILE存储指向数据库外部文件的定位符。外部文件最大为4GB。CREATETABLEtest(bfile_columnBFILE);,二、集合数据类型-嵌套表,一种数据挖掘模型配置,该配置中表的一个列包含一个表。1、嵌套表的定义嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。考查一个包含部门信息的表,在任何时间内每个部门会有很多项目正在实施。在一个严格的关系模型中,将需要建立两个独立的表department和project。,二、集合数据类型-嵌套表,2举例说明嵌套表的使用假设有一个关于动物饲养员的表,希望其中具有他们饲养的动物的信息。用一个嵌套表,就可以在同一个表中存储饲养员和其饲养的全部动物的信息。1)创建类型animal_ty:此类型中,对于每个动物都包含有一个记录,记载了其品种、名称和出生日期信息。CREATETYPEanimal_tyASOBJECT(breedvarchar2(25),namevarchar2(25),birthdatedate);2)创建animals_nt:此类型将用作一个嵌套表的基础类型。CREATETYPEanimal_ntastableofanimal_ty;3)创建表breeder:饲养员的信息表createtablebreeder(breedernamevarchar2(25),animalsanimal_nt)nestedtableanimalsstoreasanimals_nt_tab;,二、集合数据类型-嵌套表,3、向嵌套表中插入记录insertintobreedervalues(mary,animal_nt(animal_ty(dog,butch,31-MAR-97),animal_ty(dog,rover,31-MAR-97),animal_ty(dog,julio,31-MAR-97);insertintobreedervalues(jane,animal_nt(animal_ty(cat,an,31-MAR-97),animal_ty(cat,jame,31-MAR-97),animal_ty(cat,killer,31-MAR-97);commit;,二、集合数据类型-嵌套表,4、查询嵌套表selectname,birthdatefromtable(selectanimalsfrombreeder);selectname,birthdatefromtable(selectanimalsfrombreederwherebreedername=mary)wherename=dog;,二、集合数据类型(2)-VARRY,固定长度(长度使用extend方法增加)一维数组(相当于类,有其方法和构造方法【类型名】)序号连续对象类型createorreplacetypetype_nameasvarry(3)ofvarchar(20)或者在程序的定义区中声明:typetype_nameisvarry(3)ofvarchar(20);初始化:object_nametype_name:=type_name();赋值:object_name(i):=n;,三、关系数据类型-游标Cursor,1概念游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。,三、关系数据类型-游标Cursor,2类型Cursor类型包含三种:隐式Cursor显式CursorRefCursor(动态Cursor),四、ROWID,1.rowid的介绍1)SQLselectROWIDfromBruce_testwhererownumCREATETABLEs_dept(idNUMBER(7)CONSTRAINTs_dept_id_pkPRIMARYKEY,nameVARCHAR2(25)CONSTRAINTs_dept_name_nnNOTNULL,region_idNUMBER(7)CONSTRAINTs_dept_region_id_fkREFERENCESregion(id),CONSTRAINTs_dept_name_region_id_ukUNIQUE(name,region_id);,通过子查询建表的例子,SQLCREATETABLEemp_41ASSELECTid,last_name,userid,start_dateFROMs_empWHEREdept_id=41;,在SQLDeveloper中创建表,OracleSQLDeveloper提供了所见即所得的数据表设计器窗口,可以通过导航面板的树状视图,展开数据库连接节点,右击数据表节点,选择新建表.菜单项,将显示表设计器窗口。在创建表窗口中,可以通过添加列按钮添加新的列,从下拉列表框中选择列数据类型及约束,并可单击DDL标签页来查看创建表的数据定义语言。,创建表时的命名规则和注意事项,命名规则1)表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,#2)大小写不区分3)不用SQL里的保留字,一定要用时可用双引号把字符串括起来4)用和实体或属性相关的英文符号长度有一定的限制注意事项:1)建表时可以用中文的字段名,但最好还是用英文的字段名2)创建表时要把较小的不为空的字段放在前面,可能为空的字段放在后面3)建表时如果有唯一关键字或者唯一的约束条件,建表时自动建了索引4)一个表的最多字段个数也是有限制的,254个.,约束名的命名规则和语法,约束名的命名规则约束名如果在建表的时候没有指明,系统命名规则是SYS_Cn(n是数字)约束名字符串的命名规则同于表和字段名的命名规则,创建invoice表并指定主键,CREATETABLEinvoice(invoice_idNUMBERPRIMARYKEY,-自动编号,唯一,不为空vendor_idNUMBERNOTNULL,-供应商IDinvoice_numberVARCHAR2(50)NOTNULL,-发票编号invoice_dateDATEDEFAULTSYSDATE,-发票日期invoice_totalNUMBER(9,2)NOTNULL,-发票总数payment_totalNUMBER(9,2)DEFAULT0-付款总数),在列属性中使用CONSTRAINT关键字,CREATETABLEinvoice(-自动编号,唯一,不为空invoice_idNUMBERCONSTRAINTinvoice_pkPRIMARYKEY,-供应商IDvendor_idNUMBERCONSTRAINTvendor_id_nnNOTNULL,-发票编号invoice_numberVARCHAR2(50)CONSTRAINTvendor_number_nnNOTNULL,-发票日期invoice_dateDATEDEFAULTSYSDATE,-发票总数invoice_totalNUMBER(9,2)CONSTRAINTinvoice_total_nnNOTNULL,-付款总数payment_totalNUMBER(9,2)DEFAULT0);,在表级别使用CONSTRAINT关键字,CREATETABLEinvoice(invoice_idNUMBER,-自动编号,唯一,不为空vendor_idNUMBER,-供应商IDinvoice_numberVARCHAR2(50),-发票编号invoice_dateDATEDEFAULTSYSDATE,-发票日期invoice_totalNUMBER(9,2),-发票总数payment_totalNUMBER(9,2)DEFAULT0,-付款总数CONSTRAINTinvoice_pkPRIMARYKEY(invoice_id),CONSTRAINTvendor_id_unUNIQUE(vendor_id);,外键的定义,1vendor表的定义代码CREATETABLEvendors(vendor_idNUMBER,-供应商idvendor_nameVARCHAR2(50)NOTNULL,-供应商名称CONSTRAINTvendors_pkPRIMARYKEY(vendor_id),-主键CONSTRAINTvendor_name_uqUNIQUE(vendor_name)-唯一性约束),外键的定义2在invoice表中为vendor_id列创建外键关联,CREATETABLEinvoice(invoice_idNUMBER,-自动编号,唯一,不为空vendor_idNUMBERREFERENCESvendors(vendor_id),-供应商IDinvoice_numberVARCHAR2(50),-发票编号invoice_dateDATEDEFAULTSYSDATE,-发票日期invoice_totalNUMBER(9,2),-发票总数payment_totalNUMBER(9,2)DEFAULT0,-付款总数CONSTRAINTinvoiceid_vendorid_pkPRIMARYKEY(invoice_id,vendor_id),CONSTRAINTvendor_id_unUNIQUE(vendor_id);,外键的定义3在invoice表级别创建外键关联,CREATETABLEinvoice(invoice_idNUMBER,-自动编号,唯一,不为空vendor_idNUMBER,-供应商IDinvoice_numberVARCHAR2(50),-发票编号invoice_dateDATEDEFAULTSYSDATE,-发票日期invoice_totalNUMBER(9,2),-发票总数payment_totalNUMBER(9,2)DEFAULT0,-付款总数CONSTRAINTinvoiceid_vendorid_pkPRIMARYKEY(invoice_id,vendor_id),CONSTRAINTvendor_id_unUNIQUE(vendor_id),CONSTRAINTinvoice_fk_vendorsFOREIGNKEY(vendor_id)REFERENCESvendors(vendor_id)ONDELETECASCADE);,6.2.2创建临时表,一、认识临时表目前所有使用Oracle作为数据库支撑平台的应用,大部分数据量比较庞大的系统,即表的数据量一般情况下都是在百万级以上的数据量。当然在Oracle中创建分区是一种不错的选择,但是当发现应用有多张表关联的时候,并且这些表大部分都是比较庞大,而关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小并且查询得到这个结果集的速度非常快,那么这个时候考虑在Oracle中创建“临时表”。,6.2.2创建临时表,对临时表的理解在Oracle中创建一张表,这个表不用于其他的什么功能,主要用于自己的软件系统一些特有功能才用的,而当你用完之后表中的数据就没用了。Oracle的临时表创建之后基本不占用表空间,如果你没有指定临时表(包括临时表的索引)存放的表空的时候,你插入到临时表的数据是存放在ORACLE系统的临时表空间中(TEMP)。,6.2.2创建临时表,二、临时表的创建创建Oracle临时表,可以有两种类型的临时表:1会话级的临时表2事务级的临时表,6.2.2创建临时表,1)会话级的临时表因为会话级临时表中的数据和当前会话有关系,当当前SESSION不退出的情况下,临时表中的数据就还存在,而当退出当前SESSION的时候,临时表中的数据就全部没有了,当然这个时候如果以另外一个SESSION登陆的时候是看不到另外一个SESSION中插入到临时表中的数据的。即两个不同的SESSION所插入的数据是互不相干的。当某一个SESSION退出之后临时表中的数据就被截断(truncatetable,即数据清空)了。,6.2.2创建临时表,会话级的临时表创建方法:CreateGlobalTemporaryTableTable_Name(Col1Type1,Col2Type2.)OnCommitPreserveRows;举例:createglobaltemporarytableStudent(Stu_idNumber(5),Class_idNumber(5),Stu_NameVarchar2(8),Stu_Memovarchar2(200)onCommitPreserveRows;,6.2.2创建临时表,2事务级临时表事务级临时表是指该临时表与事务相关,当进行事务提交或者事务回滚的时候,临时表中的数据将自行被截断,其他的内容和会话级的临时表的一致(包括退出SESSION的时候,事务级的临时表也会被自动截断)。,6.2.2创建临时表,事务级临时表的创建方法:CreateGlobalTemporaryTableTable_Name(Col1Type1,Col2Type2.)OnCommitDeleteRows;举例:createglobaltemporarytableClasses(Class_idNumber(5),Class_NameVarchar2(8),Class_Memovarchar2(200)onCommitdeleteRows;,6.2.2创建临时表,3两种类型临时表的区别会话级临时表采用oncommitpreserverows;而事务级则采用oncommitdeleterows;用法上,会话级别只有当会话结束临时表中的数据才会被截断,而且事务级临时表则不管是commit、rollback或者是会话结束,临时表中的数据都将被截断。,6.2.2创建临时表,4什么时候使用临时表1)当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中2)程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等。,6.2.2创建临时表,5临时表的不足之处1)不支持lob对象,这也许是设计者基于运行效率的考虑,但实际应用中确实需要此功能时就无法使用临时表了。2)不支持主外键关系所以,由于以上原因,可以自己创建临时表,以弥补oracle临时表的不足之处。,阅读材料:,临时表创建方法:1、以常规表的形式创建临时数据表的表结构,但要在每一个表的主键中加入一个SessionID列以区分不同的会话。(可以有lob列和主外键)2、写一个用户注销触发器,在用户结束会话的时候删除本次会话所插入的所有记录(SessionID等于本次会话ID的记录)。3、程序写入数据时,要顺便将当前的会话ID(SessionID)写入表中。4、程序读取数据时,只读取与当前会话ID相同的记录即可。功能增强的扩展设计:1、可以在数据表上建立一个视图,视图对记录的筛选条件就是当前会话的SessionID。2、数据表中的SessionID列可以通过Trigger实现,以实现对应用层的透明性。3、高级用户可以访问全局数据,以实现更加复杂的功能。扩展临时表的优点:1、实现了与Oracle的基于会话的临时表相同的功能。2、支持SDO_GEOMETRY等lob数据类型。3、支持表间的主外键连接,且主外键连接也是基于会话的。4、高级用户可以访问全局数据,以实现更加复杂的功能。,6.3维护参数,1initransinitrans用于对数据块的行级并行操作的控制。首先介绍事务槽的概念,事务槽在数据块头中,存储了有关事务的控制信息。数据块中的每行数据有一个锁位,该锁位号与事务槽相同,数据库服务器就是通过每行的锁位找到数据块头中的事务槽,利用数据槽中的事务信息完成对该行数据的操作。每个事务只使用一个事务槽。设initrans值为2,则数据库服务器在一个数据块中最多有两个并行的事务可以独立、并行的通过自己的事务槽,实现对共享数据块中的行数据的事务操作。,2MAXTRANS,MAXTRANS指的是如果INITRANS空间不够用了,就会自动扩展ITL,直到最大值也就是MAXTRANS值为止,预设是255。但是,如果BLOCK空间已经不足,也有可能无法持续扩充到255个ITS空间喔。maxtrains定义了数据块中数据槽的最大值。事务表会根据需要动态扩展,最大达到MAXTRANS个条目(假设块上有足够的自由空间)。所分配的每个事务条目需要占用块首部中的2324字节的存储空间。如果有大量的并发访问使用的这个块,则参数不能太小,否则资源竞争将导致系统并发性能下降。,3PCTFREE,要形容一个BLOCK的运作,我们可以把一个BLOCK想成一个水杯。侍者把水倒入放在我们面前的水杯,要多满呢,我们要求他倒9分满好了,这时候PCTFREE代表着设定为10,意思就是说,当BLOCK使用到达90%的时候,就不可以在使用了,这个BLOCK应该从FREELIST列表中移除(un-link)。为何要保留10%的空间呢?这是为了提供update数据时所可能增加的空间使用,如果空间保留的太小,就容易发生rowchaining。,如果希望在对象创建后更改pctfree参数,可通过下列命令SQLaltertablet1pctfree20;Tablealtered.可通过dba_tables,dba_indexes查看pct_free的参数值,示例如下SQLselecttable_name,pct_freefromuser_tableswheretable_name=T1TABLE_NAMEPCT_FREE-T120,4pctused,当一个block经历delete操作使已使用空间降到pctused值后,此块重新被加入freelist,后续的insert将会用到这个block。,总结:,pctfree很重要,但对于查询系统基本上可以设置为0pctused由于10g以后oracle都采用位图对段和数据块进行管理了,这个参数基本可以淘汰initrans,很重要,但如果不是特别设置,不要去修改。maxtrans,至少10g以上不用了,属于淘汰行列。,6.4维护列,添加列语法:ALTERTABLEtable_nameADD(new_column_namedatatypeDEFAULTvalueNOTNULL);例子:ALTERTABLEemployeeADD(phoneVARCHAR2(10),hiredateDATEDEFAULTSYSDATENOTNULL);注意:为表添加列时应注意,如果表中已经有数据,那么新列不能用NOTNULL约束,除非为新列设置缺省值,在默认情况下,新插入列的值为NULL。,1添加列,语法:ALTERTABLEtable_nameADD(new_column_namedatatypeDEFAULTvalueNOTNULL);例子:ALTERTABLEemployeeADD(phoneVARCHAR2(10),hiredateDATEDEFAULTSYSDATENOTNULL);注意:为表添加列时应注意,如果表中已经有数据,那么新列不能用NOTNULL约束,除非为新列设置缺省值,在默认情况下,新插入列的值为NULL。,2修改列名,语法:ALTERTABLEtable_nameRENAMECOLUMNoldnameTOnewname;举例:ALTERTABLEemployeeRENAMECOLUMNenameTOemployee_name;,3修改列类型,语法:ALTERTABLEtable_nameMODIFYcolumn_namenew_datatype;举例:ALTERTABLEemployeeMODIFYenameCHAR(20);注意:可以增大字符类型列的长度和数值类型列的精度;如果字符类型列、数值类型列中的数据满足新的长度、精度,则可以缩小类型的长度、精度;如果不改变字符串的长度,可以将VARCHAR2类型和CHAR类型转换;如果更改数据类型为另一种非同系列类型,则列中数据必须为NULL。,删除列,当某些列不再需要时,可以将其删除。但是不能将表中所有列删除。删除列的方法有两种,一种是直接删除,另一种是将列先标记为UNUSED,然后进行删除。1)直接删除列2)将列标记为UNUSED状态,直接删除列,可以使用ALTERTABLEDROPCOLUMN语句直接删除列。可以删除一列或多列,同时删除与列相关的索引和约束。如果删除的列是一个多列约束的组成部分,则必须使用CASCADECONSTRAINTS选项。例子:删除employess表中的sno,phone,hiredate列,语句为:ALTERTABLEscDROPCOLUMNsnoCASCADECONSTRAINTS;ALTERTABLEemployeeDROP(phone,hiredate);,将列标记为UNUSED状态,删除列时,将删除表中每个记录的相应列值,同时释放存储空间。因此,如果要删除一个大的表中的列,由于需要对每个记录进行处理,并写入重做日志文件,需要很长的处理时间。为了避免在数据库使用高峰期间由于删除列的操作而占用过多的资源,可以暂时将列置为UNUSED状态。将列标记为UNUSED状态使用ALTERTABLESETUNUSED语句。对用户来说,被标记为UNUSED状态的列像被删除了一样,无法查询该列,但实际上该列仍然存在,并占用存储空间。可以在数据库空闲时,使用ALTERTABLEDROPUNUSEDCOLUMNS语句删除处于UNUSED状态的所有列。,将列标记为UNUSED状态,例子:将employee表中sage、sname、resume列设置为UNUSED状态ALTERTABLEplayerSETUNUSEDCOLUMNsage;ALTERTABLEplayerSETUNUSEDCOLUMN(sname,resume);ALTERTABLEplayerDROPUNUSEDCOLUMNS;,6.5删除和截断表,droptabletablename;truncatetabletablename;deletetabletablename;,1删除表,删除表droptabletablename;特性:它删除表中所有的数据行和表的结构。它也删除表的所有索引。如果没有备份,所删除的数据无法恢复。它提交所有的挂起的事务。所有基于该表的视图和别名依然保留但已无效。,2截断表,截断表truncatetabletablename;特性:它删除表中所有的数据行,但保留表的结构。如果没有备份,所删除的数据无法恢复。该语句释放表所占用的磁盘空间。它并不触发表的删除触发器。,3删除表内容,deletetabletablename;delete语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.,小结,1truncate和delete只删除数据不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index).2delete语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.truncate,drop是ddl,操作立即生效,原数据不放到rollbacksegment中,不能回滚.操作不触发trigger.3速度,一般来说:drop;truncate;delete4安全性:小心使用drop和truncate,尤其没有备份的时候.否则哭都来不及5使用上,想删除部分数据行用delete,注意带上where子句.回滚段要足够大.,6.6分区表,当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。表分区的具体作用:Oracle的分区表功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。,1范围分区,范围分区将数据基于范围映射到每一个分区,这个范围是你在创建分区时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期。举个例子:可能会将销售数据按照月份进行分区。当使用范围分区时,请考虑以下几个规则:1、每一个分区都必须有一个VALUESLESSTHEN子句,它指定了一个不包括在该分区中的上限值。分区键的任何值等于或者大于这个上限值的记录都会被加入到下一个高一些的分区中。2、所有分区,除了第一个,都会有一个隐式的下限值,这个值就是此分区的前一个分区的上限值。3、在最高的分区中,MAXVALUE被定义。MAXVALUE代表了一个不确定的值。这个值高于其它分区中的任何分区键的值,也可以理解为高于任何分区中指定的VALUELESSTHEN的值,同时包括空值,例1按id值,SQLcreatetablefnn_test12(3KPI_IDVARCHAR2(10),4KPI_NAMEVARCHAR2(60),5FA_BIL_CODEVARCHAR2(10),9PAYOUT_RATENUMBER(10,2),10ACCT_YEARVARCHAR2(4)11)12partitionbyrange(KPI_ID)13(14partitionPART1valueslessthan(10000),15partitionPART2valueslessthan(20000),16partitionPART3valueslessthan(30000),17partitionPART4valueslessthan(40000)18);,例2按时间,SQLcreatetablefnn_test22(3KPI_CODEVARCHAR2(10),4KPI_NAMEVARCHAR2(60),5FA_BIL_CODEVARCHAR2(10),9PAYOUT_RATENUMBER(10,2),10ACCT_YEARVARCHAR2(4)11)12partitionbyrange(ACCT_YEAR)13(14partitionPART_2009valueslessthan(2010),15partitionPART_2010valueslessthan(2011)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论