OCP学习:DDL和模式对象001

2024-05-11 07:08
文章标签 学习 模式 对象 ddl 001 ocp

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978836

相关文章

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

java中VO PO DTO POJO BO DO对象的应用场景及使用方式

《java中VOPODTOPOJOBODO对象的应用场景及使用方式》文章介绍了Java开发中常用的几种对象类型及其应用场景,包括VO、PO、DTO、POJO、BO和DO等,并通过示例说明了它... 目录Java中VO PO DTO POJO BO DO对象的应用VO (View Object) - 视图对象

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)