OCP学习:DDL和模式对象001

1 命名模式对象

命令规则:

  • 名称可以是1~30个字符长(数据库链接名除外,它可以达到128个字符长)。
  • 保留字(如SELECT)不能用作对象名称。
  • 所有名称必须以A~Z的字母开头。
  • 名称中的字母只能是字母、数字、下划线(_)、美元符号($)或者井字符号(#)。
  • 小写字母将自动转换为大学字母。

通过将名称括在双引号内,所有这些规则(除长度之外)都可以打破,但在后面使用对象时,也一定要用双引号指定它。注意:同样的限制也适用于列名称。

2 对象名称空间

对象的唯一标识符是前缀为模式名的对象名称。名称空间定义了一组对象类型,在这个组中,所有名称都必须由模式和名称唯一标识。不同名称空间中的对象可以共享相同的名称。

共享相同名称空间的对象类型
表|私有同义词|程序包
视图|独立的过程|物化视图
序列|独立的存储函数|用户定义类型
用于自己名称空间的对象类型
索引|约束|群集
数据库触发器|私有数据库链接|维度

在同一个模式中,表、视图和同义词不能同名。

3 可用的数据类型

适用于字母数字类型的数据类型:

  • VARCHAR2 可变长度的字符数据,从1B到4KB。数据保存在数据库字符集中。
  • NVARCHAR2 和VARCHAR2一样,但是数据保存在国家语言字符集(它是许可的Unicode字符集之一)中。
  • CHAR 固定长度的字符数据,从1B到2KB,它保存在数据库字符集中。如果数据不够列的长度,就会用空格进行填充。

适用于数字类型的数据类型:

  • NUMBER 数字数据,可以指定它的精度和小数位数。精度范围是138,小数位数范围是从-84127。
  • FLOAT 这是一个ANSI数据类型,精度为126位二进制、38位十进制的浮点数。Oracle还提供了BINARY_FLOAT 和BINARY_DOUBLE 作为备选。
  • INTEGER 相当于NUMBER,小数位数为零。

适用于时间类型的数据类型:

  • DATE 它的长度为零(如果列为空)或者7个字节。所有DATE数据都包含世纪、年、月、日、时、分和秒。其有效范围为公元前4712年1月1日至公元9999年12月31日。
  • TIMESTAMP 如果列为空,那么它的长度为零,或者达到11字节(这取决于指定的精度)。与DATA类似,但对秒而言,其精度最多为9位,默认为6位。
  • TIMESTAMP WITH TIMEZONE 和 TIMESTAMP 一样,但在保存数据时可以指定时区。根据精度,长度可能达到13个字节。该数据类型让Oracle通过将两个时间规范UTC来确认他们之间的差,即使这两个时间在不同的时区。
  • TIMESTAMP WITH LOCAL TIMEZONE 和 TIMESTAMP 一样,但数据在保存时被规范化为数据库时区。当检索时,将其规范化为选择它的用户进程所在的时区。
  • INTERVAL YEAR TO MONTH 用于记录两个DATE或TIMESTAMP之间以年和月为单位的时间间隔。
  • INTERVAL DAY TO SECOND 用于记录两个DATE或者TIMESTAMP之间以天和秒为单位的时间间隔。

适用于大数据对象的数据类型:

  • CLOB 保存在数据库字符集中的字符数据,大小没有限制:4GB乘以数据库块的大小。
  • NCLOB 和 CLOB 一样,但数据保存在可选的国家语言字符集(它是许可的Unicode字符集之一)中。
  • BLOB 和CLOB一样,但二进制数据不会被Oracle Net 执行字符集转换。
  • BFILE 定位器,它指向保存在数据库服务器的操作系统上的文件。文件的大小限制为4GB。
  • LONG 数据库字符集中的字符数据,大小可达2GB。LONG的所有功能(甚至更多)都由CLOB提供。在表中只能有一个LONG列。
  • LONG RAW 和LONG一样,但Oracle Net 不会转换二进制数据。所有LONG RAW列都应该转换为BLOB。

RAW和ROWID数据类型:

  • RAW 可变长度的二进制数据,从1B到4KB。和CHAR和VARCHAR2数据类型不同,在SELECT时,Oracle Net 不会将RAW数据从数据库的字符集转换为用户进程的字符集,或者在INSERT时进行反向转换。
  • ROWID 以64为基数编码的值,它是一个指向表中行的位置的指针。它里面是物理地址。ROWID是Oracle专有的数据类型,除非特别选择,否则不可见。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值