




已阅读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 SQL selectROWIDfromBruce testwhererownum 2 ROWID AAABnlAAFAAAAAPAAA2 ROWID的格式如下 数据对象编号文件编号块编号行编号OOOOOOFFFBBBBBBRRRAAABnl是数据对象编号AAF是相关文件编号AAAAAP是块编号AAA是行编号 四 ROWID 6 2创建表 Oracle创建表的步骤1创建表空间createtablespacespace demodatafile d test size5 M K 务必加上autoextendon 打开自动扩展容量功能 6 2创建表 2创建用户createuserrfdidentifiedbyrfd520defaulttablespacespace demo 为用户设置默认空间temporarytablespacetempspace 临时空间3权限的授予grantconnect resourcetorfd4创建表并操作表前提是要切换到用户名下 6 2 1创建普通表 CREATETABLE表名称 字段名1字段类型 DEFAULT默认值 字段名2字段类型 DEFAULT默认值 字段名N字段类型 DEFAULT默认值 CREATETABLE表名称AS 子查询 如果子查询写的是SELECT FROMemp 表示把表结构和表内容一起复制如果子查询写的是SELECT FROMWHERE1 2 加入了一个永远不成立的条件 则表示只复制表结构 不复制内容 由实体关系图到创建表的例子s dept 前提条件 已有region表且含唯一关键字的字段idSQL CREATETABLEs 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 通过子查询建表的例子 SQL CREATETABLEemp 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个条目 假设块上有足够的自由空间 所分配的每个事务条目需要占用块首部中的23 24字节的存储空间 如果有大量的并发访问使用的这个块 则参数不能太小 否则资源竞争将导致系统并发性能下降 3PCTFREE 要形容一个BLOCK的运作 我们可以把一个BLOCK想成一个水杯 侍者把水倒入放在我们面前的水杯 要多满呢 我们要求他倒9分满好了 这时候PCTFREE代表着设定为10 意思就是说 当BLOCK使用到达90 的时候 就不可以在使用了 这个BLOCK应该从FREELIST列表中移除 un link 为何要保留10 的空间呢 这是为了提供update数据时所可能增加的空间使用 如果空间保留的太小 就容易发生rowchaining 如果希望在对象创建后更改pctfree参数 可通过下列命令SQL altertablet1pctfree20 Tablealtered 可通过dba tables dba indexes查看pct free的参数值 示例如下SQL selecttable name pct freefromuser tableswheretable name T1 TABLE NAMEPCT FREE T120 4pctused 当一个block经历delete操作使已使用空间降到pctused值后 此块重新被加入freelist 后续的insert将会用到这个block 总结 pctfree很重要 但对于查询系统基本上可以设置为0pctused由于10g以后oracle都采用位图对段和数据块进行管理了 这个参数基本可以淘汰initrans 很重要 但如果不是特别设置 不要去修改 maxtrans 至少10g以上不用了 属于淘汰行列 6 4维护列 添加列语法 ALTERTABLEtable nameADD new column namedatatype DEFAULTvalue NOTNULL 例子 ALTERTABLEemployeeADD phoneVARCHAR2 10 hiredateDATEDEFAULTSYSDATENOTNULL 注意 为表添加列时应注意 如果表中已经有数据 那么新列不能用NOTNULL约束 除非为新列设置缺省值 在默认情况下 新插入列的值为NULL 1添加列 语法 ALTERTABLEtable nameADD new column namedatatype DEFAULTvalue NOTNULL 例子 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值 SQL createtablefnn 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按时间 SQL createtablefnn test22 3KPI CODEVARCHAR2 10 4KPI NAMEVARCHAR2 60 5FA BIL CODEVARCHAR2 10 9PAYOUT RATENUMBER 10 2 10ACCT YEARVARCHAR2 4 11 12partitionbyrange ACCT YEAR 13 14partitio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林防疫基本知识培训课件
- 工勤技能试题及答案
- 2025年红白理事会工作职责与招聘考试模拟题详解
- 2025年物流师职业资格考试全真模拟卷及答案解析
- 2025年初级产品经理面试宝典与案例分析题集
- 湖北省利川市第五中学2026届化学高三第一学期期末达标测试试题含解析
- 2025年初入教育行业者教学技能面试模拟题集解析
- 2025年心理咨询师专业笔试模拟卷及解析
- 2025年乡村振兴大课堂村级专干招聘笔试模拟题及备考策略
- 2025年农业科技发展前沿动态及趋势分析预测题
- 膝关节体格检查专家讲座
- 江苏城市规划收费标准
- 花生膜下滴灌技术
- 第4章 动车组车体检修动车组维护与检修
- 宫颈环扎护理查房
- 某某公司省长市长质量奖申报自述材料
- 2022年名师工作室工作计划
- 电影预算表格(双语)
- 人教版高一物理必修一全套课件
- 无轨胶轮车管理规定
- 物业证明格式范本
评论
0/150
提交评论