本文主要是介绍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专有的数据类型,除非特别选择,否则不可见。
这篇关于OCP学习:DDL和模式对象001的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!